Skip to content

Pipeline Bootstrapper

Authenticates the log10x account, validates launch arguments, and starts the specified pipeline (run, compile).

Config Files

To configure the Pipeline Bootstrapper unit, Edit these files:

Run

Run

Launch a run pipeline to report, receive and optimize log/trace events in edge and cloud environments.

Below is the default configuration from: bootstrap/config.yaml.

Edit Online

Edit Pipeline Bootstrapper Config Locally

# 🔟❎ run bootstrap configuration

# This config file specifies bootstrap options for the run pipeline.
# To learn more see https://doc.log10x.com/run/bootstrap

# To learn more see https://doc.log10x.com/config/

tenx: run

# =============================== Launch Settings ==============================

# 'licenseKey' specifies a signed JWT license token used for authenticating against the 10x service
licenseKey: $=TenXEnv.get("TENX_LICENSE_KEY", "NO-LICENSE")

# 'licenseFile' specifies a path to a file containing the signed JWT license token.
# Preferred over 'licenseKey' on production hosts: the token does not appear in 'ps' output.
licenseFile: $=TenXEnv.get("TENX_LICENSE_FILE")

# 'airgapped' suppresses every call to the 10x SaaS gateway: the license is verified locally against the embedded
# public key, and ALL outbound calls to the 10x SaaS gateway are suppressed (no DNS, no TCP).
# Use for deployments where security review forbids vendor phone-home.
airgapped: $=TenXEnv.get("TENX_AIRGAPPED", "false")

# 'includePaths' specifies folders on disk for resolving relative config file/folder references in addition to the working folder
includePaths: []

# 'quiet' disables printing version information to the console.
# quiet: true

# 'jarFiles' specifies .jar files to dynamically load for use by compile, input and output API extensions.
jarFiles: []

# 'metricEndpoint' specifies the Prometheus endpoint to report usage/health metrics (enterprise version only).
# metricEndpoint: https://prometheus.log10x.com/api/v1/write

# 'disabledArgs' specifies a list of launch arguments that are disallowed from either command line or user config files.
disabledArgs: []

# 'debugEnvVars' list environment variables to debug
debugEnvVars: []
Compile

Compile

Launch a compile pipeline to scan source code and binary files to generate symbol unit and library files.

Below is the default configuration from: bootstrap/config.yaml.

Edit Online

Edit Pipeline Bootstrapper Config Locally

# 🔟❎ compile bootstrap configuration

# This config file specifies bootstrap options for the compile pipeline.
# To learn more see https://doc.log10x.com/compile/bootstrap

# To learn more see https://doc.log10x.com/config/

tenx: compile

# =============================== Launch Settings ==============================

# 'licenseKey' specifies a signed JWT license token used for authenticating against the 10x service
licenseKey: $=TenXEnv.get("TENX_LICENSE_KEY", "NO-LICENSE")

# 'licenseFile' specifies a path to a file containing the signed JWT license token.
# Preferred over 'licenseKey' on production hosts: the token does not appear in 'ps' output.
licenseFile: $=TenXEnv.get("TENX_LICENSE_FILE")

# 'airgapped' suppresses every call to the 10x SaaS gateway: the license is verified locally against the embedded
# public key, and ALL outbound calls to the 10x SaaS gateway are suppressed (no DNS, no TCP).
airgapped: $=TenXEnv.get("TENX_AIRGAPPED", "false")

# 'includePaths' specifies folders on disk for resolving relative config file/folder references in addition to the working folder
includePaths: []

# 'quiet' disables printing version information to the console.
# quiet: true

# 'jarFiles' specifies .jar files to dynamically load for use by compile, input and output API extensions.
jarFiles: []

# 'metricEndpoint' specifies the Prometheus endpoint to report usage/health metrics (enterprise version only).
# metricEndpoint: https://prometheus.log10x.com/api/v1/write

# specifies a list of launch arguments that are disallowed from either command line or user config files.
disabledArgs: []

Options

Specify the options below to configure the Pipeline Bootstrapper:

Name Description
tenx Name of pipeline to execute
licenseFile Path to a file containing the 10x license JWT
licenseKey 10x license JWT (inline)
airgapped Run without contacting the 10x service
metricEndpoint 10x service Prometheus metrics endpoint
runtimeName Name to report to the 10x service endpoint for this runtime instance
runtimeAttributes List of attributes to add to all metrics reporting
includePaths Pipeline include folders
jarFiles Jar files to load
quiet Disable printing binary version information to the console
disabledArgs Limit argument values that can be set by users
debugEnvVars List environment variables to debug

tenx

Name of pipeline to execute.

Type Required Names
String [tenx, pipeline]

Target pipeline to execute.

For example, to specify the run pipeline and a YAML config file containing launch arguments, use:

$ tenx run @~/my.yaml

The YAML file may specify the pipeline name via a 'tenx' entry, allowing the 'pipeline' argument to be omitted from the command line.

For example (my.yaml):

tenx: run # set the pipeline to 'run'
apiKey: <my-key>
...

Allows for launching the run pipeline via:

$ tenx @~/my.yaml

licenseFile

Path to a file containing the 10x license JWT.

Type Default Names
String "" [licenseFile, TENX_LICENSE_FILE]

Path to a file containing the signed 10x license JWT. Preferred over licenseKey for production: the token is not visible in ps output and is easy to rotate by replacing the file.

Download a license from your account.

If both licenseFile and licenseKey are provided, the file wins.

licenseKey

10x license JWT (inline).

Type Default Names
String "" [licenseKey, TENX_LICENSE_KEY]

The signed 10x license JWT, passed inline. Discouraged on the command line because the value is visible in ps output; prefer licenseFile in production.

Download a license from your account.

airgapped

Run without contacting the 10x service.

Type Default Names
Boolean false [airgapped, TENX_AIRGAPPED]

When true, the license is verified locally (signature + claims) and no calls are made to the 10x service — no startup validation, no metrics reporting, no user-attribute enrichment. Suitable for fully airgapped deployments where the engine has no path to the vendor SaaS.

When false (default), the engine additionally validates the license against the 10x service at startup; a non-2xx response refuses to start.

demo and limited license types cannot run airgapped — if airgapped: true is set with one of these license types, a warning is logged and the engine runs in online mode anyway.

metricEndpoint

10x service Prometheus metrics endpoint.

Type Default
String https://prometheus.log10x.com/api/v1/write

Specifies the address of the Prometheus remote write endpoint to write pipeline usage and health metrics.

This argument is only settable in the 10x 'on-premises' build.

runtimeName

Name to report to the 10x service endpoint for this runtime instance.

Type Default
String ""

Specifies a logical name used as a tag value for pipeline metrics. This value identifies instances of the 10x run/compile pipelines when reporting to the 10x service. For example, for a 10x Receiver with optimization enabled for Fluent Bit forwarders collecting events from a broker user-app, this value can be set to: receive_fluentbit_broker.

runtimeAttributes

List of attributes to add to all metrics reporting.

Type Default
List []

Specifies a list of key-value pairs in the format key:value to be added as tags to pipeline metrics reported to the 10x service. These tags enable finer-grained filtering and analysis in monitoring systems like Prometheus. Multiple attributes can be combined into a single string using a semicolon (;), e.g., key1:val1;key2:val2.

If a key does not start with tenx_, the prefix tenx_ is automatically prepended to ensure consistency in tag naming conventions. For example, a provided attribute app:my-app will be reported as tenx_app:my-app

  runtimeAttributes:
    - app:reporter
    - env:edge

includePaths

Pipeline include folders.

Type Default
List [working directory of current process]

Specifies folders on disk for resoling relative references within include directives.

jarFiles

Jar files to load.

Type Default
List []

Specifies a list of .jar files to load into the host JVM for use by compile, input and output API extensions.

This argument is not supported in the edge runtime flavor.

quiet

Disable printing binary version information to the console.

Type Default
Boolean false

Disable printing build/version information to the console upon launch.

disabledArgs

Limit argument values that can be set by users.

Type Default
List []

specifies a list of launch arguments that are disallowed from either command line or user config files. This argument provides a method of limiting the target pipeline, source and and command line settable by the user.

This mechanism enables pipeline launchers such as the Quarkus launcher to limit user input received via REST requests to a target subset of 'safe' arguments.

For example, adding procOutCommand to this list ensures that no external process outputs can be launched by the runtime.

An optional regex pattern can limit arguments to a certain subset of values in the form of: <arg-name>[:pattern] (e.g., specific process names). Multiple patterns can be specified per argument.

Matching the source argument determines which source locations to inspect (e.g., folders, files, GitHub repos). For example, an admin may place .yaml config files containing preset Fluent Bit outputs in /etc/log10x/, excluding their enclosed arguments from limits set by this list, while disallowing users to directly set them via the command-line or by sourcing them from their local/GitHub config files (see example below).

To limit:

The target pipeline (e.g., run, compile):

  disabledArgs:
  - "pipeline:^run" # disallow compile

Target arguments (e.g., process outputs):

  - "procOutCommand:^fluent-bit$"   # limit to Fluent Bit only
  # - procOutArgs: <specify-regex>  # further limit args for Fluent Bit

Control which argument sources to inspect:

  - "source:^github.*"             # inspect of all arguments sourced from GitHub against this list
  - "source:^(?!/etc/log10x/).*"   # inspect of all arguments sourced from config files NOT contained in: /etc/log10x/

debugEnvVars

List environment variables to debug.

Type Default
List []

Specifies a list of env var names for which to log information relating to how they are resolved.

For example, the following call: L1Env.get("myVar", "myDefault") can be resolved from a number of sources ranging from launch arguments, to OS/JVM properties and a default value (e.g., myDefault).

Setting this value to myVar will log INFO level information detailing how the value of the myVar was resolved.


This unit is defined in bootstrap/unit.yaml.