Use the information on this page to create and manage pipelines in Telemetry Pipeline v3.Documentation Index
Fetch the complete documentation index at: https://docs.chronosphere.io/llms.txt
Use this file to discover all available pages before exploring further.
Requirements
To use Telemetry Pipeline v3, you must meet the following requirements:- You must have a Kubernetes cluster running Kubernetes v1.24 or later.
- You must have Helm v3 or later installed.
- You must add the OpenTelemetry Helm charts to your cluster.
- You must have yq installed.
Create a pipeline
To create a pipeline in Telemetry Pipeline v3, first build a pipeline configuration file, then deploy the pipeline collector.Build a pipeline configuration file
Pipelines in Telemetry Pipeline v3 support the same source plugins, destination plugins, and processing rules as v2 pipelines. However, v3 pipelines use a new configuration format. Use one of these methods to build a pipeline configuration file.- Web interface
- Manual file creation
You can build a pipeline configuration file in the Telemetry Pipeline web interface,
then export that file to use in your Kubernetes cluster.
- Sign in to the Telemetry Pipeline web interface.
-
Open the project where you want to create a pipeline. If none of your projects
have Telemetry Pipeline v3 enabled, contact Chronosphere Support.
To determine whether a project is using v2 or v3 of Telemetry Pipeline, check the items listed in the sidebar navigation menu in the Telemetry Pipeline web interface. If Core Instances is displayed in the navigation menu, the active project is using v2, not v3.
- Go to Pipelines, then click New Pipeline.
- Under Pipeline Name, enter a name for your pipeline.
- Use the FluentBit Pipeline Builder and Configuration tabs to configure the source plugins, destination plugins, and processing rules for your pipeline.
- After you finish building your configuration file, click Copy Config to copy those configuration settings to your clipboard, or click Download Config to download a YAML configuration file.
Configuration format for v3 pipelines
The configuration format for v3 pipelines is a superset of the configuration format for v2 pipelines. You can convert a v2 configuration file into a v3 configuration file by inserting thepipeline section from your v2 file into the corresponding
section of a v3 file.
Configuration file template
Configuration file template
You can replace the highlighted lines with the contents of a v2 configuration file.
If you insert the
pipeline section from a v2 file into a v3 file, make sure to
appropriately indent the inserted content within its parent object.pipeline-config.yaml
Deploy the pipeline collector
After you’ve built a pipeline configuration file, follow these steps to deploy the pipeline collector.-
Run the following command to deploy an OpenTelemetry Collector:
Replace the following values:
VERSION: The version of the pipeline collector to use.FILE: The configuration file to apply to your pipeline.NAMESPACE: The namespace where you want to deploy the pipeline collector. To deploy the pipeline collector in a new namespace, include the--create-namespaceflag.
To deploy multiple pipelines in the same Kubernetes cluster, use a separate namespace for each pipeline. -
Run the following command to verify that the pipeline collector was deployed:
Replace
NAMESPACEwith the namespace where you deployed the pipeline collector.
Update a pipeline
To update a pipeline, use the samehelm upgrade otel-pipeline command that
you used to deploy the pipeline collector, but replace
the corresponding values of any attributes you want to update.
Upgrade the pipeline collector
To upgrade the pipeline collector, replaceVERSION with the latest version of the
pipeline collector.
Update pipeline configuration
To update a pipeline’s configuration, replaceFILE with the name of your updated
pipeline configuration file.
Uninstall a pipeline
To uninstall a pipeline from your cluster, follow these steps:-
Run the following Helm command:
Replace
NAMESPACEwith the namespace where you deployed the pipeline collector. -
In Pipeline CLI, run the following command:
Replace
NAMEwith the name or UUID of the pipeline to delete.
Additional settings
Use the information in this section to configure additional settings for v3 pipelines in Telemetry Pipeline.Configure autoscaling
Telemetry Pipeline v3 supports horizontal pod autoscaling (HPA). To enable HPA, include the following flags when you run thehelm upgrade otel-pipeline
command to deploy or update
a pipeline:
Enable health checks
To enable health checks, configure the OpenTelemetryhealth_check extension
in your pipeline’s configuration file.
The OpenTelemetry Helm chart uses this extension for its liveness and readiness
probes.
For a standard v3 pipeline that uses the recommended OpenTelemetry Helm chart
settings, set the value of endpoint to 0.0.0.0:13133:
pipeline-config.yaml
Use Kubernetes metadata for pipeline and agent names
By default, pipeline names are derived from a literal value set in pipeline configuration files, and the agents associated with each pipeline receive automatically generated names. You can override this behavior by using environment variables to assign pipeline and agent names derived from Kubernetes metadata.-
When you run the
helm upgrade otel-pipelinecommand to deploy or update a pipeline, include the following flags:This creates two environment variables:POD_NAMEis derived frommetadata.name. Because pipelines assign one agent to each Pod, using Pod metadata for agent names guarantees that each agent has a unique name.DEPLOYMENT_NAMEis derived frommetadata.labels['app.kubernetes.io/instance'].
-
In the
extensions.chronosphere.pipelinesection of your pipeline’s configuration file, updatepipeline_nameandagent_nameto use the following values:pipeline-config.yamlAgent names must be unique within a pipeline. Never assign a value toagent_namethat would attempt to assign the same name to multiple agents.
Route data from Fluent Bit to OpenTelemetry
In both Telemetry Pipeline v2 and v3, pipeline plugins and processing rules are built using Fluent Bit. In Telemetry Pipeline v3, that Fluent Bit configuration is wrapped in an OpenTelemetry Collector. You can route data from the underlying Fluent Bit pipeline to the OpenTelemetry Collector for further processing.-
In the
receivers.fluentbit.fb_config.pipeline.outputssection of your pipeline’s configuration file, add anhttpoutput with the following settings:pipeline-config.yaml -
In the
processorssection of your pipeline’s configuration file, add thememory_limiterandbatchprocessors.Thememory_limiterprocessor must execute before any other OpenTelemetry processors, which means it must always be the first processor in theprocessorslist.pipeline-config.yaml -
Add
memory_limiterandbatchto theservice.pipelines.logs.processorssection of your pipeline’s configuration file:pipeline-config.yaml -
Use the
helm upgrade otel-pipelineto deploy or update your pipeline, and add the following flags:These values set the resource limits for thememory_limiterprocessor. You can replace the example values with the values of your choosing.
service section of
your pipeline’s configuration file. It’s also possible to use standard Fluent
Bit-based plugins alongside the http plugin that routes data to OpenTelemetry.
However, any data routed through standard Fluent Bit-based plugins won’t be
affected by OpenTelemetry processors and exporters.
Internal telemetry
You can configure internal telemetry for v3 pipelines in theservice.telemetry
section of pipeline configuration files.
Example configuration
Example configuration
pipeline-config.yaml
Logs and traces
Telemetry Pipeline v3 uses the standard OpenTelemetry Collector configuration settings for internal logs and traces.Metrics
Telemetry Pipeline v3 overrides the standard OpenTelemetry Collector configuration settings for internal metrics. Instead, metrics use the following configuration settings:| Key | Description | Default |
|---|---|---|
control_plane_metrics_enabled | Whether to send internal metrics to the Telemetry Pipeline backend. | true |
control_plane_metrics_interval | The interval for sending metrics to the Telemetry Pipeline backend. | 60s |
control_plane_metrics_timeout | The timeout for sending metrics to the Telemetry Pipeline backend. | 30s |
prometheus_enabled | Whether to enable the local Prometheus endpoint. | true |
prometheus_port | The port for the Prometheus endpoint where metrics are available. | 8888 |
Resource attributes
Telemetry Pipeline v3 adds a custom internal telemetry type for resource attributes. These resource attributes are used to enrich other internal telemetry data, which means the values of these resource attributes will affect the internal logs, traces, and metrics emitted by your pipeline. You can add custom key/value pairs in theservice.telemetry.resource section of
your pipeline’s configuration file to enrich your pipeline’s internal telemetry with
custom resource attributes. These keys and value must be strings, and key names must
not overlap with the names of the keys that Telemetry Pipeline automatically assigns
to pipelines.
Any key/value pairs included in
service.telemetry.resource are sent to the Telemetry
Pipeline backend to enrich internal telemetry. Don’t include sensitive data in
these key/value pairs.| Key | Description | Default value |
|---|---|---|
pipeline_name | The name of your pipeline. | The equivalent value specified in service.extensions.chronosphere.pipeline |
agent_name | The names of the agents associated with your pipeline. Agent names must be unique within a pipeline. Never assign a value to agent_name that would attempt to assign the same name to multiple agents. | The equivalent value specified in service.extensions.chronosphere.pipeline |
project_id | The ID of the Telemetry Pipeline project to which your pipeline belongs. | The equivalent value specified in service.extensions.chronosphere.pipeline |
host.name | Your host name. | Auto-detected value of your host name, if possible |
service.name | The name of your pipeline collector. | chrono-telemetry-pipeline |
service.version | The version of your pipeline collector. | The current version of your pipeline collector |
Supported Pipeline CLI commands
Telemetry Pipeline v3 supports the following Pipeline CLI commands.The steps to install and
authenticate in Pipeline CLI are unchanged in
Telemetry Pipeline v3.
Command list
Command list
get pipelines
Returns a list of deployed pipelines.get pipeline
Returns information about a pipeline.Add the flag
--only-config to return only the contents of that pipeline’s
configuration file.NAME with the name or UUID of your pipeline.get agents
Returns a list of agents connected to a pipeline.NAME with the name or UUID of your pipeline.get agent
Returns information about a specified agent.copy
UUID with the UUID of an agent.get project
Returns the name of the active Pipeline CLI project.delete pipelines
Removes all pipelines associated with the active project from the list of pipelines
in the Telemetry Pipeline web interface.If you run this command without using Helm to
uninstall the pipelines from your cluster first, any active
pipelines will reappear in the Telemetry Pipeline web interface. However, this command
permanently removes any inactive pipelines from the Telemetry Pipeline web interface.
delete pipeline
Removes the specified pipeline from the list of pipelines in the Telemetry
Pipeline web interface.If you run this command for an active pipeline without
uninstalling the pipeline from your cluster from your cluster
first, the pipeline will reappear in the Telemetry Pipeline web interface.
However, this command permanently removes any inactive pipelines from the Telemetry
Pipeline web interface.
NAME with the name or UUID of the pipeline to delete.
