Stdout/err Output
Writes TenXObject instance and template field values to stdout.
Configuration
To configure the Stdout/err output module, Edit these settings.
Below is the default configuration from: stdout/config.yaml.
ewogICJ0eXBlIiA6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIiA6IHsKICAgICJpbmNsdWRlIiA6IHsKICAgICAgInR5cGUiIDogInN0cmluZyIKICAgIH0sCiAgICAidGVueCIgOiB7CiAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICB9LAogICAgInN0ZG91dCIgOiB7CiAgICAgICJ0eXBlIiA6ICJhcnJheSIsCiAgICAgICJpdGVtcyIgOiB7CiAgICAgICAgInR5cGUiIDogIm9iamVjdCIsCiAgICAgICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiA6IGZhbHNlLAogICAgICAgICJwcm9wZXJ0aWVzIiA6IHsKICAgICAgICAgICJ0YXJnZXQiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJUYXJnZXQgcGlwZSB0byB3cml0ZSB0b1xuXG5PdXRwdXQgZGV2aWNlIHRvIHdyaXRlIHRvLiBQb3NzaWJsZSB2YWx1ZXM6IFNZU1RFTV9PVVQgb3IgU1lTVEVNX0VSUiIKICAgICAgICAgIH0sCiAgICAgICAgICAiZmllbGRzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJhcnJheSIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJMaXN0IG9mIFRlblhPYmplY3QgZmllbGQgbmFtZXMgdG8gZW5jb2RlXG5cblNwZWNpZmllcyBhIGxpc3Qgb2YgVGVuWE9iamVjdCBpbnRyaW5zaWMvY2FsY3VsYXRlZC9leHRyYWN0ZWQgZmllbGQgbmFtZXMgdG8gZXh0cmFjdCBhbmQgd3JpdGUgdG8gdGhlIG91dHB1dC4iLAogICAgICAgICAgICAiaXRlbXMiIDogewogICAgICAgICAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICAiZmlsdGVyIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiQSBKYXZhU2NyaXB0IGV4cHJlc3Npb24gYW4gVGVuWE9iamVjdCBtdXN0IGV2YWx1YXRlIGFzICd0cnV0aHknIGFnYWluc3QgdG8gYmUgd3JpdHRlbiB0byB0aGlzIG91dHB1dFxuXG5TcGVjaWZpZXMgYSBKYXZhU2NyaXB0IGV4cHJlc3Npb24gdGhhdCBhbiBUZW5YT2JqZWN0IG11c3QgZXZhbHVhdGUgYXMgdHJ1dGh5IHRvIHdyaXRlIGl0cyBpbnN0YW5jZS90ZW1wbGF0ZSBmaWVsZCB2YWx1ZXMgdG8gdGhpcyBvdXRwdXQuIEZvciBleGFtcGxlLCAnc3Rkb3V0RmlsdGVyOiB0aGlzLnRpbWVzdGFtcCcgd2lsbCBvbmx5IGVtaXQgW3RpbWVzdGFtcGVkXShodHRwczovL2RvYy5sb2cxMHguY29tL2FwaS9qcy8jVGVuWEJhc2VPYmplY3QrdGltZXN0YW1wZWQpIFRlblhPYmplY3RzLiIKICAgICAgICAgIH0sCiAgICAgICAgICAid3JpdGVPYmplY3RzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiSWYgdHJ1ZSwgZW5jb2RlIFRlblhPYmplY3RzIFtzdGRvdXRGaWVsZHNdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vcnVuL291dHB1dC9ldmVudC9zdGRvdXQvI3N0ZG91dGZpZWxkcykgdG8gdGhpcyBvdXRwdXRcblxuRGV0ZXJtaW5lIHdoZXRoZXIgdG8gd3JpdGUgW3N0ZG91dEZpZWxkc10oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9ydW4vb3V0cHV0L2V2ZW50L3N0ZG91dC8jc3Rkb3V0ZmllbGRzKSB2YWx1ZXMgb2YgYW4gVGVuWE9iamVjdCBwYXNzZWQgdG8gdGhpcyBvdXRwdXQuIFRoaXMgY29uZmlndXJhdGlvbiBpcyB0eXBpY2FsbHkgZGVmaW5lZCB1c2luZyBhIEphdmFTY3JpcHQgZXhwcmVzc2lvbi4gRm9yIGV4YW1wbGUsIHNldHRpbmcgJ3N0ZG91dFdyaXRlT2JqZWN0cycgdG8gJyQ9VGVuWEVudi5nZXQoXCJzdGRvdXRcIiknIGVuYWJsZXMvZGlzYWJsZXMgdGhlIG91dHB1dCBkZXBlbmRpbmcgb24gd2hldGhlciBhIGxhdW5jaCBhcmd1bWVudCwgZW52aXJvbm1lbnQgdmFyaWFibGUsIG9yIEpWTSAtRCBvcHRpb24gZXZhbHVhdGVzIGFzIHRydXRoeS4gKERlZmF1bHQ6IHRydWUpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogInRydWUiCiAgICAgICAgICB9LAogICAgICAgICAgIndyaXRlVGVtcGxhdGVzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiSWYgdHJ1ZSwgd3JpdGUgbmV3IFRlblhUZW1wbGF0ZXMgdG8gdGhpcyBvdXRwdXRcblxuQ29udHJvbHMgd2hldGhlciB0byB3cml0ZSB0ZW1wbGF0ZSB2YWx1ZXMgb2YgVGVuWE9iamVjdHMgcGFzc2VkIHRvIHRoaXMgb3V0cHV0LiBUaGUgb3V0cHV0IHdpbGwgb25seSBlbWl0IFRlblhUZW1wbGF0ZXMgdGhhdCB0aGUgcGlwZWxpbmUgZGlkIG5vdCBsb2FkIGF0IHN0YXJ0dXAgdmlhIHRoZSBbdGVtcGxhdGVGaWxlXShodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi90ZW1wbGF0ZS8jdGV0ZW1wbGF0ZWZpbGVzbXBsYXRlZmlsZSkgYXJndW1lbnQsIGFuZCB3aWxsIG9ubHkgZW1pdCBhbiBUZW5YVGVtcGxhdGUgb25jZSBiYXNlZCBvbiBpdHMgW3RlbXBsYXRlSGFzaF0oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9hcGkvanMvI1RlblhCYXNlT2JqZWN0K3RlbXBsYXRlSGFzaCkgdmFsdWUuIChEZWZhdWx0OiBmYWxzZSkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiAiZmFsc2UiCiAgICAgICAgICB9LAogICAgICAgICAgImVuY29kZSIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLAogICAgICAgICAgICAiYWRkaXRpb25hbFByb3BlcnRpZXMiIDogZmFsc2UsCiAgICAgICAgICAgICJwcm9wZXJ0aWVzIiA6IHsKICAgICAgICAgICAgICAidHlwZSIgOiB7CiAgICAgICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiVGhlIG91dHB1dCBmb3JtYXQgaW4gd2hpY2ggdG8gZW5jb2RlIFRlblhPYmplY3QgdmFsdWVzLiBQb3NzaWJsZSB2YWx1ZXM6W2pzb24sIGRlbGltaXRlZF1cblxuU3BlY2lmaWVzIGhvdyB0byBlbmNvZGUgW3N0ZG91dEZpZWxkc10oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9ydW4vb3V0cHV0L2V2ZW50L3N0ZG91dC8jc3Rkb3V0ZmllbGRzKSB2YWx1ZXMgdG8gdGhpcyBvdXRwdXQuIFBvc3NpYmxlIHZhbHVlczogLSAqKmpzb24qKjogZm9ybWF0cyBuYW1lcyBhbmQgdmFsdWVzIGZvciB0aGUgY3VycmVudCBUZW5YT2JqZWN0IGFzOiB7XCJmaWVsZFwiOlwic3RyXCIsXCJmaWVsZDJcIjoxLCBcImZpZWxkM1wiOiB0cnVlfSAtICoqZGVsaW1pdGVkKio6IGZvcm1hdHMgdmFsdWVzIGZvciB0aGUgY3VycmVudCBUZW5YT2JqZWN0IGFzOiBcInN0clwiLDEsdHJ1ZSAgICBUaGUgW3N0ZG91dEVuY29kZURlbGltaXRlcl0oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9ydW4vb3V0cHV0L2V2ZW50L3N0ZG91dC8jc3Rkb3V0ZW5jb2RlZGVsaW1pdGVyKSBhcmd1bWVudCBkZXRlcm1pbmVzIHRoZSBzZXBhcmF0b3IgdG8gdXNlLiAoRGVmYXVsdDogZGVsaW1pdGVkKSIsCiAgICAgICAgICAgICAgICAiZGVmYXVsdCIgOiAiZGVsaW1pdGVkIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgImRlbGltaXRlciIgOiB7CiAgICAgICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiVGhlIGRlbGltaXRlciBwbGFjZWQgYmV0d2VlbiBrZXkgYW5kIHZhbHVlcyBwYWlycyBpZiAnc3Rkb3V0RW5jb2RlVHlwZScgaXMgJ2RlbGltaXRlZCdcblxuU2V0cyB0aGUgY2hhciBkZWxpbWl0ZXIgdG8gc2VwYXJhdGUgVGVuWE9iamVjdCBmaWVsZCB2YWx1ZXMgd2hlbiBbc3Rkb3V0RW5jb2RlVHlwZV0oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9ydW4vb3V0cHV0L2V2ZW50L3N0ZG91dC8jc3Rkb3V0ZW5jb2RldHlwZSkgaXMgYGRlbGltaXRlZGAuIChEZWZhdWx0OiAgKSIsCiAgICAgICAgICAgICAgICAiZGVmYXVsdCIgOiAiICIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICJncm91cERlbGltaXRlciIgOiB7CiAgICAgICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiU3RyaW5nIGRlbGltaXRlciB0byB1c2Ugd2hlbiBzZXBhcmF0aW5nIGluZGl2aWR1YWwgMTB4IGV2ZW50cyBpbnNpZGUgYSBncm91cFxuXG5TZXRzIHRoZSBzdHJpbmcgZGVsaW1pdGVyIHVzZWQgdG8gc2VwYXJhdGUgaW5kaXZpZHVhbCAxMHggZXZlbnRzIGluc2lkZSBhIGdyb3VwIHdoZW4gZW5jb2RlZCB0byBhIHN0cmVhbS9ldmVudCBvdXRwdXQiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgImVuY29kZWRMaW5lUHJlZml4IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiVGhlIGxpbmUgcHJlZml4IHByZXBlbmRlZCB0byB0aGUgZW5jb2RlZCBldmVudCBpZiAnc3Rkb3V0RW5jb2RlVHlwZScgaXMgJ2RlbGltaXRlZCdcblxuU2V0cyB0aGUgY2hhciB3aGljaCBpcyBwcmVwZW5kZWQgdG8gdGhlIGVtaXR0ZWQgVGVuWE9iamVjdCBmaWVsZCB2YWx1ZXMgd2hlbiBbc3Rkb3V0RW5jb2RlVHlwZV0oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9ydW4vb3V0cHV0L2V2ZW50L3N0ZG91dC8jc3Rkb3V0ZW5jb2RldHlwZSkgaXMgYGRlbGltaXRlZGAuIChEZWZhdWx0OiB+KSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6ICJ+IgogICAgICAgICAgfSwKICAgICAgICAgICJsb2c0ajIiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgImJvb2xlYW4iLAogICAgICAgICAgICAgICJzdHJpbmciCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJJZiB0cnVlLCB3cml0ZSB1c2luZyBsb2c0ajIgYXBwZW5kZXJcblxuQ29udHJvbHMgd2hldGhlciB0byB3cml0ZSB0byBmaWxlIHVzaW5nIGFuIFtPdXRwdXRTdHJlYW1dKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vYXBpL291dHB1dC8jb3V0cHV0c3RyZWFtKSBvciBhIFtsb2c0ajIgYXBwZW5kZXJdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vYXBpL291dHB1dC8jbG9nNGoyKS4gKEFjY2VwdHMgYm9vbGVhbiBvciBzdHJpbmcgd2l0aCAkPSBwcmVmaXggZm9yIHJ1bnRpbWUgZXZhbHVhdGlvbikgKERlZmF1bHQ6IGZhbHNlKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6IGZhbHNlCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicmVxdWlyZWQiIDogWwogICAgICAgICAgInRhcmdldCIKICAgICAgICBdCiAgICAgIH0KICAgIH0KICB9LAogICJhZGRpdGlvbmFsUHJvcGVydGllcyIgOiBmYWxzZQp9
# 🔟❎ 'run' stdout output configuration
# Configure stdout/err streams for writing TenXObject instance and template values.
# To learn more see https://doc.log10x.com/run/output/event/stdout
# Set the 10x pipeline to 'run'
tenx: run
# =============================== Dependencies ================================
include: run/modules/output/event/stdout
# ============================= Stdout Options ================================
# Multiple stdout outputs can be defined below
stdout:
# ---------------------------10x Encoding Output ----------------------------
# Encode TenXObjects: https://doc.log10x.com/run/transform/#template-encoding
# 'target' can be SYSTEM_OUT or SYSTEM_ERR
- target: SYSTEM_OUT
# 'filter' sets a JavaScript expression that TenXObjects must evaluate as truthy to write to the output.
# To learn more see https://doc.log10x.com/run/output/regulate/#filter-expressions
filter: isObject
# 'fields' defines the fields to write for each TenXObject sent to this output.
# To learn more see https://doc.log10x.com/run/output/stream/#outputfields
fields:
- encode() # https://doc.log10x.com/api/js/#TenXObject+encode
# ----------------------------- Decode Output -------------------------------
# Template-decode TenXObjects: https://doc.log10x.com/run/transform/#expand
- target: SYSTEM_OUT
filter: isEncoded # https://doc.log10x.com/api/js/#TenXBaseObject+isEncoded
fields:
- text # https://doc.log10x.com/api/js/#TenXBaseObject+text
# ---------------------------- Template Output ------------------------------
# Writes TenXTemplate values: https://doc.log10x.com/run/transform/#template
- target: SYSTEM_OUT
# 'writeTemplates' controls whether to write new TenXObjects templates to stdout.
# To learn more see https://doc.log10x.com/run/output/event/stdout/#stdoutwritetemplates
writeTemplates: true
# ----------------------------- Summary Output ------------------------------
# Writes aggregated TenXSummaries: https://doc.log10x.com/run/aggregate/
- target: SYSTEM_OUT
filter: isSummary # https://doc.log10x.com/api/js/#TenXBaseObject+isSummary
fields:
- $=yield TenXEnv.get("enrichmentFields") # https://doc.log10x.com/run/initialize/#enrichmentFields
- summaryVolume # https://doc.log10x.com/api/js/#TenXSummary+summaryVolume
- summaryBytes # https://doc.log10x.com/api/js/#TenXSummary+summaryBytes
- summaryTotals # https://doc.log10x.com/api/js/#TenXSummary+summaryTotals
Options
Specify the options below to configure multiple Stdout/err output:
| Name | Description | Category |
|---|---|---|
| stdoutTarget | Target pipe to write to | Stdout |
| stdoutFields | List of TenXObject field names to encode | Encoding |
| stdoutFilter | A JavaScript expression an TenXObject must evaluate as 'truthy' against to be written to this output | Encoding |
| stdoutWriteObjects | If true, encode TenXObjects [stdoutFields](https://doc.log10x.com/run/output/event/stdout/#stdoutfields) to this output | Encoding |
| stdoutWriteTemplates | If true, write new TenXTemplates to this output | Encoding |
| stdoutEncodeType | The output format in which to encode TenXObject values. Possible values:[json, delimited] | Encoding |
| stdoutEncodedLinePrefix | The line prefix prepended to the encoded event if 'stdoutEncodeType' is 'delimited' | Encoding |
| stdoutEncodeDelimiter | The delimiter placed between key and values pairs if 'stdoutEncodeType' is 'delimited' | Encoding |
| stdoutEncodeGroupDelimiter | String delimiter to use when separating individual 10x events inside a group | Encoding |
| stdoutLog4j2 | If true, write using log4j2 appender | Advanced |
Stdout
stdoutTarget
Target pipe to write to.
| Type | Required | Category |
|---|---|---|
| String | ✔ | Stdout |
Output device to write to. Possible values: SYSTEM_OUT or SYSTEM_ERR.
Encoding
stdoutFields
List of TenXObject field names to encode.
| Type | Default | Category |
|---|---|---|
| List | [] | Encoding |
Specifies a list of TenXObject intrinsic/calculated/extracted field names to extract and write to the output.
stdoutFilter
A JavaScript expression an TenXObject must evaluate as 'truthy' against to be written to this output.
| Type | Default | Category |
|---|---|---|
| String | "" | Encoding |
Specifies a JavaScript expression that an TenXObject must evaluate as truthy to write its instance/template field values to this output. For example, 'stdoutFilter: this.timestamp' will only emit timestamped TenXObjects.
stdoutWriteObjects
If true, encode TenXObjects [stdoutFields](https://doc.log10x.com/run/output/event/stdout/#stdoutfields) to this output.
| Type | Default | Category |
|---|---|---|
| String | true | Encoding |
Determine whether to write stdoutFields values of an TenXObject passed to this output. This configuration is typically defined using a JavaScript expression. For example, setting 'stdoutWriteObjects' to '$=TenXEnv.get("stdout")' enables/disables the output depending on whether a launch argument, environment variable, or JVM -D option evaluates as truthy.
stdoutWriteTemplates
If true, write new TenXTemplates to this output.
| Type | Default | Category |
|---|---|---|
| String | false | Encoding |
Controls whether to write template values of TenXObjects passed to this output. The output will only emit TenXTemplates that the pipeline did not load at startup via the templateFile argument, and will only emit an TenXTemplate once based on its templateHash value.
stdoutEncodeType
The output format in which to encode TenXObject values. Possible values:[json, delimited].
| Type | Default | Category |
|---|---|---|
| String | delimited | Encoding |
Specifies how to encode stdoutFields values to this output. Possible values:
- json: formats names and values for the current TenXObject as: {"field":"str","field2":1, "field3": true}
- delimited: formats values for the current TenXObject as: "str",1,true The stdoutEncodeDelimiter argument determines the separator to use.
stdoutEncodedLinePrefix
The line prefix prepended to the encoded event if 'stdoutEncodeType' is 'delimited'.
| Type | Default | Category |
|---|---|---|
| String | ~ | Encoding |
Sets the char which is prepended to the emitted TenXObject field values when stdoutEncodeType is delimited.
stdoutEncodeDelimiter
The delimiter placed between key and values pairs if 'stdoutEncodeType' is 'delimited'.
| Type | Default | Category |
|---|---|---|
| String | Encoding |
Sets the char delimiter to separate TenXObject field values when stdoutEncodeType is delimited.
stdoutEncodeGroupDelimiter
String delimiter to use when separating individual 10x events inside a group.
| Type | Default | Category |
|---|---|---|
| String | "" | Encoding |
Sets the string delimiter used to separate individual 10x events inside a group when encoded to a stream/event output.
Advanced
stdoutLog4j2
If true, write using log4j2 appender.
| Type | Default | Category |
|---|---|---|
| Boolean | false | Advanced |
Controls whether to write to file using an OutputStream or a log4j2 appender.
This module is defined in stdout/module.yaml.