HTTP Output
Defines an HTTP output to write TenXObject instance and template field values.
Configuration
To configure the HTTP output module, Edit these settings.
Below is the default configuration from: http/config.yaml (* Required Fields).
ewogICJ0eXBlIiA6ICJvYmplY3QiLAogICJwcm9wZXJ0aWVzIiA6IHsKICAgICJpbmNsdWRlIiA6IHsKICAgICAgInR5cGUiIDogInN0cmluZyIKICAgIH0sCiAgICAidGVueCIgOiB7CiAgICAgICJ0eXBlIiA6ICJzdHJpbmciCiAgICB9LAogICAgIm91dHB1dEh0dHAiIDogewogICAgICAidHlwZSIgOiAiYXJyYXkiLAogICAgICAiaXRlbXMiIDogewogICAgICAgICJ0eXBlIiA6ICJvYmplY3QiLAogICAgICAgICJhZGRpdGlvbmFsUHJvcGVydGllcyIgOiBmYWxzZSwKICAgICAgICAicHJvcGVydGllcyIgOiB7CiAgICAgICAgICAidXJsIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiSG9zdCBIVFRQL0hUVFBTIGFkZHJlc3MgdG8gY29ubmVjdCBhbmQgd3JpdGUgdG9cblxuU3BlY2lmaWVzIGFuIEhUVFAvSFRUUFMgYWRkcmVzcyB0byB0cmFuc21pdCBUZW5YT2JqZWN0IGluc3RhbmNlL3RlbXBsYXRlIGZpZWxkIHZhbHVlcyIKICAgICAgICAgIH0sCiAgICAgICAgICAiaGVhZGVycyIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAiYXJyYXkiLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiUmVxdWVzdCBIVFRQIGhlYWRlciBwYWlyc1xuXG5TcGVjaWZpZXMgYSBsaXN0IG9mIEhUVFAgaGVhZGVyIHZhbHVlcyB0byBhY2NvbXBhbnkgcmVxdWVzdHMgaW4gdGhlIGZvcm0gb2YgPG5hbWU+PTx2YWx1ZT4gKGUuZy4sIGhlYWRlcjE9aGVsbG8pIiwKICAgICAgICAgICAgIml0ZW1zIiA6IHsKICAgICAgICAgICAgICAidHlwZSIgOiAic3RyaW5nIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIm1ldGhvZCIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkhUVFAgcmVxdWVzdCBtZXRob2RcblxuSFRUUCBtZXRob2QgdG8gdXNlIChlLmcuLCBHRVQsIFBPU1QsIERFTEVURSkuIChEZWZhdWx0OiBQT1NUKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6ICJQT1NUIgogICAgICAgICAgfSwKICAgICAgICAgICJmaWVsZHMiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgImFycmF5IiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIkxpc3Qgb2YgVGVuWE9iamVjdCBmaWVsZCBuYW1lcyB0byBlbmNvZGVcblxuU3BlY2lmaWVzIGEgbGlzdCBvZiBUZW5YT2JqZWN0IGludHJpbnNpYy9jYWxjdWxhdGVkL2V4dHJhY3RlZCBmaWVsZCBuYW1lcyB0byBleHRyYWN0IGFuZCB3cml0ZSB0byB0aGUgb3V0cHV0LiIsCiAgICAgICAgICAgICJpdGVtcyIgOiB7CiAgICAgICAgICAgICAgInR5cGUiIDogInN0cmluZyIKICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgICJmaWx0ZXIiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJBIEphdmFTY3JpcHQgZXhwcmVzc2lvbiBhbiBUZW5YT2JqZWN0IG11c3QgZXZhbHVhdGUgYXMgJ3RydXRoeScgYWdhaW5zdCB0byBiZSB3cml0dGVuIHRvIHRoaXMgb3V0cHV0XG5cblNwZWNpZmllcyBhIEphdmFTY3JpcHQgZXhwcmVzc2lvbiB0aGF0IGFuIFRlblhPYmplY3QgbXVzdCBldmFsdWF0ZSBhcyB0cnV0aHkgdG8gd3JpdGUgaXRzIGZpZWxkL3RlbXBsYXRlIGZpZWxkIHZhbHVlcyB0byB0aGlzIG91dHB1dC4gRm9yIGV4YW1wbGUsICdvdXRwdXRIdHRwRmlsdGVyOiB0aGlzLnRpbWVzdGFtcCcgd2lsbCBvbmx5IGVtaXQgW3RpbWVzdGFtcGVkXShodHRwczovL2RvYy5sb2cxMHguY29tL2FwaS9qcy8jVGVuWEJhc2VPYmplY3QrdGltZXN0YW1wZWQpIFRlblhPYmplY3RzLiIKICAgICAgICAgIH0sCiAgICAgICAgICAid3JpdGVPYmplY3RzIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiSWYgdHJ1ZSwgZW5jb2RlIFRlblhPYmplY3RzIFtvdXRwdXRIdHRwRmllbGRzXShodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi9vdXRwdXQvZXZlbnQvaHR0cC8jb3V0cHV0aHR0cGZpZWxkcykgdG8gdGhpcyBvdXRwdXRcblxuRGV0ZXJtaW5lIHdoZXRoZXIgdG8gd3JpdGUgW291dHB1dEh0dHBGaWVsZHNdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vcnVuL291dHB1dC9ldmVudC9odHRwLyNvdXRwdXRodHRwZmllbGRzKSB2YWx1ZXMgb2YgYW4gVGVuWE9iamVjdCBwYXNzZWQgdG8gdGhpcyBvdXRwdXQuIFRoaXMgY29uZmlndXJhdGlvbiBpcyB0eXBpY2FsbHkgZGVmaW5lZCB1c2luZyBhIEphdmFTY3JpcHQgZXhwcmVzc2lvbi4gIFRvIGVuYWJsZS9kaXNhYmxlIHRoZSBvdXRwdXQgZGVwZW5kaW5nIG9uIHdoZXRoZXIgYSBsYXVuY2ggYXJndW1lbnQsIGVudmlyb25tZW50IHZhcmlhYmxlLCBvciBKVk0gLUQgb3B0aW9uIGV2YWx1YXRlcyBhcyB0cnV0aHksIHVzZTogYGBgIHlhbWwgICBvdXRwdXRIdHRwV3JpdGVPYmplY3RzOiAkPVRlblhFbnYuZ2V0KFwibXlIdHRwQWRkcmVzc1wiKSBgYGAgVG8gbGVhcm4gbW9yZSBzZWUgW1RlblhFbnYuZ2V0XShodHRwczovL2RvYy5sb2cxMHguY29tL2FwaS9qcy8jVGVuWEVudi5nZXQpLiAoRGVmYXVsdDogdHJ1ZSkiLAogICAgICAgICAgICAiZGVmYXVsdCIgOiAidHJ1ZSIKICAgICAgICAgIH0sCiAgICAgICAgICAid3JpdGVUZW1wbGF0ZXMiIDogewogICAgICAgICAgICAidHlwZSIgOiBbCiAgICAgICAgICAgICAgInN0cmluZyIsCiAgICAgICAgICAgICAgIm51bGwiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJtYXJrZG93bkRlc2NyaXB0aW9uIiA6ICJJZiB0cnVlLCB3cml0ZSBuZXcgVGVuWFRlbXBsYXRlcyB0byB0aGlzIG91dHB1dFxuXG5Db250cm9scyB3aGV0aGVyIHRvIHdyaXRlIHRlbXBsYXRlIHZhbHVlcyBvZiBUZW5YT2JqZWN0cyBwYXNzZWQgdG8gdGhpcyBvdXRwdXQuIFRoZSBvdXRwdXQgd2lsbCBvbmx5IGVtaXQgVGVuWFRlbXBsYXRlcyB0aGF0IHRoZSBwaXBlbGluZSBkaWQgbm90IGxvYWQgYXQgc3RhcnR1cCB2aWEgdGhlIFt0ZW1wbGF0ZUZpbGVdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vcnVuL3RlbXBsYXRlLyN0ZW1wbGF0ZWZpbGVzKSBhcmd1bWVudCwgYW5kIHdpbGwgb25seSBlbWl0IGFuIFRlblhUZW1wbGF0ZSBvbmNlIGJhc2VkIG9uIGl0c1t0ZW1wbGF0ZUhhc2hdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vYXBpL2pzLyNUZW5YQmFzZU9iamVjdCt0ZW1wbGF0ZUhhc2gpIHZhbHVlLiAoRGVmYXVsdDogZmFsc2UpIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogImZhbHNlIgogICAgICAgICAgfSwKICAgICAgICAgICJlbmNvZGVUeXBlIiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiVGhlIG91dHB1dCBmb3JtYXQgaW4gd2hpY2ggdG8gZW5jb2RlIFRlblhPYmplY3QgdmFsdWVzLiBQb3NzaWJsZSB2YWx1ZXM6W2pzb24sIGRlbGltaXRlZF1cblxuU3BlY2lmaWVzIGhvdyB0byBlbmNvZGUgW291dHB1dEh0dHBGaWVsZHNdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vcnVuL291dHB1dC9ldmVudC9odHRwLyNvdXRwdXRodHRwZmllbGRzKSB2YWx1ZXMgdG8gdGhpcyBvdXRwdXQuIFBvc3NpYmxlIHZhbHVlczogLSAqKmpzb24qKjogZm9ybWF0cyBuYW1lcyBhbmQgdmFsdWVzIGZvciB0aGUgY3VycmVudCBUZW5YT2JqZWN0IGFzOiB7XCJmaWVsZFwiOlwic3RyXCIsXCJmaWVsZDJcIjoxLCBcImZpZWxkM1wiOiB0cnVlfSAtICoqZGVsaW1pdGVkKio6IGZvcm1hdHMgdmFsdWVzIGZvciB0aGUgY3VycmVudCBUZW5YT2JqZWN0IGFzOiBcInN0clwiLDEsdHJ1ZSAgICBUaGUgW291dHB1dEh0dHBFbmNvZGVEZWxpbWl0ZXJdKGh0dHBzOi8vZG9jLmxvZzEweC5jb20vcnVuL291dHB1dC9ldmVudC9odHRwLyNvdXRwdXRodHRwZW5jb2RlZGVsaW1pdGVyKSBhcmd1bWVudCBkZXRlcm1pbmVzIHRoZSBzZXBhcmF0b3IgdG8gdXNlLiAoRGVmYXVsdDogZGVsaW1pdGVkKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6ICJkZWxpbWl0ZWQiCiAgICAgICAgICB9LAogICAgICAgICAgImVuY29kZWRMaW5lUHJlZml4IiA6IHsKICAgICAgICAgICAgInR5cGUiIDogWwogICAgICAgICAgICAgICJzdHJpbmciLAogICAgICAgICAgICAgICJudWxsIgogICAgICAgICAgICBdLAogICAgICAgICAgICAibWFya2Rvd25EZXNjcmlwdGlvbiIgOiAiVGhlIGxpbmUgcHJlZml4IHByZXBlbmRlZCB0byB0aGUgZW5jb2RlZCBldmVudCBpZiAnb3V0cHV0SHR0cEVuY29kZVR5cGUnIGlzICdkZWxpbWl0ZWQnXG5cblNldHMgdGhlIGNoYXIgd2hpY2ggaXMgcHJlcGVuZGVkIHRvIHRoZSBlbWl0dGVkIFRlblhPYmplY3QgZmllbGQgdmFsdWVzIHdoZW4gW291dHB1dEh0dHBFbmNvZGVUeXBlXShodHRwczovL2RvYy5sb2cxMHguY29tL3J1bi9vdXRwdXQvZXZlbnQvaHR0cC8jb3V0cHV0aHR0cGVuY29kZXR5cGUpIGlzIGBkZWxpbWl0ZWRgLiAoRGVmYXVsdDogKSIsCiAgICAgICAgICAgICJkZWZhdWx0IiA6ICIiCiAgICAgICAgICB9LAogICAgICAgICAgImVuY29kZURlbGltaXRlciIgOiB7CiAgICAgICAgICAgICJ0eXBlIiA6IFsKICAgICAgICAgICAgICAic3RyaW5nIiwKICAgICAgICAgICAgICAibnVsbCIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm1hcmtkb3duRGVzY3JpcHRpb24iIDogIlRoZSBkZWxpbWl0ZXIgcGxhY2VkIGJldHdlZW4ga2V5IGFuZCB2YWx1ZXMgcGFpcnMgaWYgJ291dHB1dEh0dHBFbmNvZGVUeXBlJyBpcyAnZGVsaW1pdGVkJ1xuXG5TZXRzIHRoZSBjaGFyIGRlbGltaXRlciB0byBzZXBhcmF0ZSBUZW5YT2JqZWN0IGZpZWxkIHZhbHVlcyB3aGVuIFtvdXRwdXRIdHRwRW5jb2RlVHlwZV0oaHR0cHM6Ly9kb2MubG9nMTB4LmNvbS9ydW4vb3V0cHV0L2V2ZW50L2h0dHAvI291dHB1dGh0dHBlbmNvZGV0eXBlKSBpcyBgZGVsaW1pdGVkYC4gKERlZmF1bHQ6ICApIiwKICAgICAgICAgICAgImRlZmF1bHQiIDogIiAiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicmVxdWlyZWQiIDogWwogICAgICAgICAgInVybCIKICAgICAgICBdCiAgICAgIH0KICAgIH0KICB9LAogICJhZGRpdGlvbmFsUHJvcGVydGllcyIgOiBmYWxzZQp9
# 🔟❎ 'run' HTTP log4j2 output configuration
# Configure HTTP outputs to write TenXObject instance and template values.
# To learn more see https://doc.log10x.com/run/output/event/http/
# Set the 10x pipeline to 'run'
tenx: run
# =============================== Dependencies ================================
include: run/modules/output/event/http
# ============================== HTTP Options =================================
# Multiple HTTP outputs can be defined below
outputHttp:
# ----------------------------- Object Output ------------------------------
# 'writeObjects' controls whether to write TenXObject field values to output.
- writeObjects: false # (❗ REQUIRED)
# ---------------------------- HTTP Options -----------------------------
# 'url' sets the target HTTP host to write TenXObject instance/template values.
# For example, the URL below posts to the Datadog log intake endpoint:
# https://http-intake.logs.datadoghq.com/v1/input?host=myHost&ddsource=tenx&service=loggingApp&ddtags=env:Dev
url: http://127.0.0.1:8000
# 'headers' are added to each HTTP request. For example,
# 'DD-API-KEY=TenXEnv.get("apiKey"),DD-APPLICATION-KEY=TenXEnv.get("appKey")
# can be used to authenticate the Datadog intake example above.
headers: [
Content-Type=application/json
]
#'method' sets the HTTP method to use (e.g. GET, POST, DELETE)
method: POST
# --------------------------- Encoding Options ----------------------------
# '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()
# 'encodeType' specifies how 'fields' are encoded to output. Possible values: [json,delimited].
# To learn more see https://doc.log10x.com/run/output/event/outputStream/#outputstreamencodetype
encodeType: json
# ---------------------------- Template Output ----------------------------
# The HTTP output below writes new template of TenXObjects written to http url.
# To learn more about TenXTemplates, see https://doc.log10x.com/run/template
# ---------------------------General Options -----------------------------
# 'writeTemplates' controls whether to write new templates to this output.
- writeTemplates: false # (❗ REQUIRED)
# ---------------------------- HTTP Options -------------------------------
url: http://127.0.0.1:8000
# 'headers' are added to each HTTP request the output makes.
headers: [
Content-Type=application/json
]
#'method' sets the HTTP method to use (e.g. GET, POST, DELETE)
method: POST
Options
Specify the options below to configure multiple HTTP output:
| Name | Description |
|---|---|
| outputHttpUrl | Host HTTP/HTTPS address to connect and write to |
| outputHttpHeaders | Request HTTP header pairs |
| outputHttpMethod | HTTP request method |
| outputHttpFields | List of TenXObject field names to encode |
| outputHttpFilter | A JavaScript expression an TenXObject must evaluate as 'truthy' against to be written to this output |
| outputHttpWriteObjects | If true, encode TenXObjects [outputHttpFields](https://doc.log10x.com/run/output/event/http/#outputhttpfields) to this output |
| outputHttpWriteTemplates | If true, write new TenXTemplates to this output |
| outputHttpEncodeType | The output format in which to encode TenXObject values. Possible values:[json, delimited] |
| outputHttpEncodedLinePrefix | The line prefix prepended to the encoded event if 'outputHttpEncodeType' is 'delimited' |
| outputHttpEncodeDelimiter | The delimiter placed between key and values pairs if 'outputHttpEncodeType' is 'delimited' |
outputHttpUrl
Host HTTP/HTTPS address to connect and write to.
| Type | Required |
|---|---|
| String | ✔ |
Specifies an HTTP/HTTPS address to transmit TenXObject instance/template field values.
outputHttpHeaders
Request HTTP header pairs.
| Type | Default |
|---|---|
| List | [] |
Specifies a list of HTTP header values to accompany requests in the form of
outputHttpMethod
HTTP request method.
| Type | Default |
|---|---|
| String | POST |
HTTP method to use (e.g., GET, POST, DELETE).
outputHttpFields
List of TenXObject field names to encode.
| Type | Default |
|---|---|
| List | [] |
Specifies a list of TenXObject intrinsic/calculated/extracted field names to extract and write to the output.
outputHttpFilter
A JavaScript expression an TenXObject must evaluate as 'truthy' against to be written to this output.
| Type | Default |
|---|---|
| String | "" |
Specifies a JavaScript expression that an TenXObject must evaluate as truthy to write its field/template field values to this output. For example, 'outputHttpFilter: this.timestamp' will only emit timestamped TenXObjects.
outputHttpWriteObjects
If true, encode TenXObjects [outputHttpFields](https://doc.log10x.com/run/output/event/http/#outputhttpfields) to this output.
| Type | Default |
|---|---|
| String | true |
Determine whether to write outputHttpFields values of an TenXObject passed to this output. This configuration is typically defined using a JavaScript expression.
To enable/disable the output depending on whether a launch argument, environment variable, or JVM -D option evaluates as truthy, use:
To learn more see TenXEnv.get.
outputHttpWriteTemplates
If true, write new TenXTemplates to this output.
| Type | Default |
|---|---|
| String | false |
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 itstemplateHash value.
outputHttpEncodeType
The output format in which to encode TenXObject values. Possible values:[json, delimited].
| Type | Default |
|---|---|
| String | delimited |
Specifies how to encode outputHttpFields 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 outputHttpEncodeDelimiter argument determines the separator to use.
outputHttpEncodedLinePrefix
The line prefix prepended to the encoded event if 'outputHttpEncodeType' is 'delimited'.
| Type | Default |
|---|---|
| String |
Sets the char which is prepended to the emitted TenXObject field values when outputHttpEncodeType is delimited.
outputHttpEncodeDelimiter
The delimiter placed between key and values pairs if 'outputHttpEncodeType' is 'delimited'.
| Type | Default |
|---|---|
| String |
Sets the char delimiter to separate TenXObject field values when outputHttpEncodeType is delimited.
This module is defined in http/module.yaml.