Skip to content

Pipeline Bootstrapper

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

Configuration

To configure the Pipeline Bootstrapper unit, Edit these settings:

Run

Run

Launch a run pipeline to report, regulate 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 ==============================

# 'apiKey' specifies an api key used authenticating against the 10x service
apiKey: $=TenXEnv.get("TENX_API_KEY", "NO-API-KEY")

# '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 ==============================

# 'apiKey' specifies an api key used authenticating against the 10x service
apiKey: $=TenXEnv.get("TENX_API_KEY", "NO-API-KEY")

# '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
apiKey 10x api key
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

apiKey

10x api key.

Type Required Names
String [apiKey, TENX_API_KEY]

Specifies an api key used for authenticating against the 10x service. This value is accessible from your account settings.

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 Edge Optimizer for Fluent Bit forwarders collecting events from a broker user-app, this value can be set to: optimize_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.