Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

README.md

Converter Component

The converter enhances the user provided configuration.

Autoconfigure logic

The autoconfigure logic is applied within the Convert function. It takes in a *confmap.Conf and will modify it based on the logic described below.

Feature Configuration

The converter supports selective enabling and disabling of features through the otelcollector.converter.features configuration option.

Available Features

  • infraattributes: Adds the infra attributes processor to pipelines with Datadog exporters
  • prometheus: Adds a prometheus receiver to collect internal telemetry metrics
  • pprof: Adds the pprof extension for profiling capabilities
  • zpages: Adds the zpages extension for debugging information
  • health_check: Adds the health check extension for health monitoring
  • ddflare: Adds the Datadog flare extension for diagnostic information
  • datadog: Adds the OSS Datadog extension to send Fleet Automation data

Configuration Examples

# Default: all features enabled
otelcollector:
  converter:
    enabled: true
    features: ["infraattributes", "prometheus", "pprof", "zpages", "health_check", "ddflare"]

# Enable only specific features
otelcollector:
  converter:
    enabled: true
    features: ["infraattributes", "prometheus"]

# Disable all features
otelcollector:
  converter:
    enabled: true
    features: []

Environment Variable

You may also set these features using an environment variable:

export DD_OTELCOLLECTOR_CONVERTER_FEATURES="infraattributes,prometheus,pprof"

Extensions

The converter looks for the pprof, health_check, zpages, ddflare and datadog extensions. If these are already defined in the service pipeline, it makes no changes. If any of these extensions are not defined, it will add the extensions config (name: <extension_name>/dd-autoconfigured) and add the component in the services extension pipeline.

Infra Attributes Processor

The converter will check for any pipelines which have the dd exporter without the infraattributes processor. If it finds any matches, it will add the infra attributes config (name: infraattributes/dd-autoconfigured) and add the processor to the pipeline. It adds the processor in last place in the processors slice.

Prometheus Receiver

The converter will check to see if a prometheus receiver is defined which points to the service internal telemetry metrics address. It then checks that this receiver is used in the same pipeline as all configured datadog exporters.

If it finds datadogexporters which are not defined in a pipeline with the prometheus receiver, it adds the prometheus config (name: prometheus/dd-autoconfigured), and then create it's own pipeline metrics/dd-autoconfigured/<dd exporter name> which contains the prometheus receiver and the datadog exporter.

For any prometheus receiver collecting collector health metrics, and sending these to Datadog, it will update the job name to datadog-agent. This ensures the health metrics are tagged by service:datadog-agent and differentiable from collector health metrics.

API Key and API Site

If api_key is unset, set to an empty string or set to a secret, the converter will fetch the api key from the agent configuration. It will also fetch the the site from the agent config if unset in collector.

Opting out of converter

It is possible to opt out of the converter by setting env var DD_OTELCOLLECTOR_CONVERTER_ENABLED or agent config otelcollector.converter.enabled to false (true by default). Please note that by doing so, you are removing functionality including flare collection from otel-agent, health metrics from collector, or infra level tagging on your telemetry data. If you want to opt out of some components, you can disable all and add the components that you require manually:

Extensions

Please refer to the following example in order to manually set the pprof, health_check, zpages and datadog extensions: extensions.yaml. Please refer to the extensions README.md for additional information about the components:

  • pprof: Enables collecting collector profiles at a defined endpoint.
  • health_check: Enables an HTTP url that can be probed to check the status of the OpenTelemetry Collector.
  • zpages: Enables an extension that serves zPages, an HTTP endpoint that provides live data for debugging different components
  • ddflare: Enables otel-agent information to be collected in the datadog-agent flare.
  • datadog: Enables collector configuration and build info to be viewed in both Datadog Infrastructure Monitoring and Fleet Automation.

Prometheus Receiver

The Prometheus receiver scrapes prometheus endpoints. This is used to collect the collectors internal health metrics, by adding a job that scrapes the service telemetry metrics endpoint (configurable via service::telemetry::metrics). Please refer to the following example in order to manually set the prometheus receiver: prometheus.yaml. Please refer to the receivers README.md for additional information about the component.

Infra Attributes Processor

The infraattributes processor is used to add infra level tags collected by the datadog-agent to your telemetry data. Please refer to the following example in order to manually set the infraattributes processor: infraattributes.yaml. Please refer to the processors README.md for additional information about the component.