JavaScript Processor
The JavaScript API controls initialization, enrichment, filtering, and serialization of TenXObjects.
Custom code executes in these contexts:
| Context | Description | Example |
|---|---|---|
| Input | Validate launch arguments and initialize text/GeoIP lookups | HttpInput |
| Object | Enrich TenXObjects, update counters/dictionaries, filter unnecessary instances | HttpObject |
| Summary | Enrich TenXSummaries produced by an aggregator using text/GeoIP lookups, counters and dictionaries | HttpSummary |
| Unit | Initialize pipeline units at startup via constructor() and perform cleanup at shutdown via close() |
SymbolLoader |
| Regulator | Filter 'noisy' telemetry based on node-specific and environment-wide policies to prevent over-billing. | Policy |
| Output | Customize encoding of TenXObjects/Summaries to stream (e.g., stdout) and time-series (e.g., Prometheus) outputs. | Fluent Bit |
| Log4j | Customize encoding of TenXObjects to log4j appenders. | Filebeat |
Modules
-
Function JavaScripts
Define custom JavaScript functions.
-
Input JavaScripts
Initialize inputs at runtime using JavaScript.
-
Object JavaScripts
Initialize TenXObject instances at runtime using JavaScript.
-
Output JavaScripts
Initialize outputs at runtime using JavaScript.
-
Summary JavaScripts
Initialize TenXSummary instances at runtime using JavaScript.
-
Template JavaScripts
Initialize TenXTemplate instances at runtime using JavaScript.
-
Unit JavaScripts
Initialize pipeline units at runtime using JavaScript.
-
Unit Shutdown JavaScripts
Execute JavaScript when pipeline units shut down.
This unit is defined in script/unit.yaml.