OpenTelemetry Collector Contrib
The following document describes how to natively configure the OpenTelemetry Collector Contrib distribution with the Middleware platform.
Use the OpenTelemetry Collector Contrib to build your own custom distributions with the OpenTelemetry Collector Builder, send host data without using the Middleware Host Agent, or send host data from a technology that doesnt have a native Middleware Integration.
The Kubernetes OpenTelemetry Collector Contrib distribution is not available and in development.
Linux Installation
Step 1: Install DEB or RPM
Download the opentelemetry-collector
with the same package manager you used to install the MW Agent.
Step 2: Use otelcol-contrib
Use the otelcol-contrib (opentelemetry-collector-contrib)
distribution instead of the otelcol (opentelemetry-collector)
for the OpenTelemetry Collector.
When prompted to download otelcol
, download one of the following instead:
# AMD64 otelcol-contrib_0.92.0_linux_amd64.deb # ARM64 otelcol-contrib_0.92.0_linux_arm64.deb
# AMD64 otelcol-contrib_0.92.0_linux_amd64.rpm # ARM64 otelcol-contrib_0.92.0_linux_arm64.rpm
Step 3: Follow OTel Config
Once you have installed Linux, proceed to the Configuration Section.
Docker Installation
Step 1: Install DockerHub or ghcr.io
Download the opentelemetry-collector with the same container registry you used to install the MW Agent.
Step 2: Use otelcol-contrib
Ensure the container image refers to the opentelemetry-collector-contrib
and not core opentelemetry-collector
.
Check your container image with the following commands:
otelcol --version # and opentelemetry-collector-contrib --version
Step 3: Follow OTel Config
Once you have installed Docker, proceed to the Configuration Section.
Configuration
Step 1: Configure Collector
Follow the OTel Configuration Instructions to configure the opentelemetry-collector-contrib
You must fully configure the OTel Collector before adding more code to the processors
, exporters
and service
section.
Step 2: Add to Processors
Add the following code to the processors
section:
processors: resourcedetection: detectors: [ env, system ] timeout: 2s system: hostname_sources: [ os ] resource/middleware: attributes: - action: upsert key: mw.account_key
Step 3: Add to Exporters
Add the following code to the exporters
section:
exporters: otlp/middleware: endpoint: "your-endpoint.middleware.io:443" headers: authorization: "<MW_API_KEY>" sending_queue: enabled: true num_consumers: 100 queue_size: 10000
Step 4: Add to Service
Add the following code within the pipelines section:
service: pipelines: traces: receivers: [ <your-receivers-list-for-traces> ] processors: [ resourcedetection, resource/middleware, <your-processor-list-for-traces> ] exporters: [ otlp/middleware, <your-exporters-list-for-traces> ] metrics: receivers: [ <your-receivers-list-for-metrics> ] processors: [ resourcedetection, resource/middleware ]
Limitations
Metrics such as bandwidth and disk speed are not currently collected by the OpenTelemetry Collector and will contain 0
in those fields. This will impact the Infrastructure page as well as any custom dashboard containing these metrics.
Need assistance or want to learn more about Middleware? Contact our support team in Slack.