Plugin: otel.plugin Module: otel
This plugin ingests OpenTelemetry metrics and logs via the OTLP/gRPC protocol.
It receives OTLP-formatted data from any OpenTelemetry-compatible source (collectors, SDKs, instrumented applications) and automatically creates Netdata charts for visualization and alerting.
For logs, it stores them in systemd-compatible journal files with configurable rotation and retention policies.
The plugin listens on a gRPC endpoint (default 127.0.0.1:4317) for incoming OTLP data.
It supports both metrics and logs signals. Metrics are mapped to Netdata charts using configurable
mapping rules. Logs are stored in journal files for querying via the Netdata Logs tab.
This collector is only supported on the following platforms:
This collector only supports collecting metrics from a single instance of this integration.
The plugin starts automatically and listens on 127.0.0.1:4317 for incoming OTLP/gRPC connections.
The default configuration for this integration does not impose any limits on data collection.
The default configuration for this integration is not expected to impose a significant performance impact on the system.
An OpenTelemetry Collector, SDK, or instrumented application configured to send OTLP data to the Netdata agent’s gRPC endpoint.
The plugin is configured via otel.yaml in the Netdata configuration directory.
| Option | Description | Default | Required |
|---|---|---|---|
| endpoint.path | gRPC endpoint to listen on for incoming OTLP data. | 127.0.0.1:4317 | no |
| endpoint.tls_cert_path | Path to TLS certificate file. Enables TLS when provided. | no | |
| endpoint.tls_key_path | Path to TLS private key file. Required when TLS certificate is provided. | no | |
| endpoint.tls_ca_cert_path | Path to TLS CA certificate file for client authentication. | no | |
| metrics.chart_configs_dir | Directory with YAML files for mapping OTLP metrics to Netdata charts. | otel.d/v1/metrics/ | no |
| metrics.buffer_samples | Number of samples to buffer for collection interval detection. | 10 | no |
| metrics.throttle_charts | Maximum number of new charts to create per collection interval. | 100 | no |
| logs.journal_dir | Directory to store journal files for ingested logs. | yes | |
| logs.size_of_journal_file | Maximum file size before rotating to a new journal file. | 100MB | no |
| logs.entries_of_journal_file | Maximum log entries per journal file. | 50000 | no |
| logs.duration_of_journal_file | Maximum time span within a single journal file. | 2 hours | no |
| logs.number_of_journal_files | Maximum number of journal files to keep. | 10 | no |
| logs.size_of_journal_files | Maximum total size of all journal files. | 1GB | no |
| logs.duration_of_journal_files | Maximum age of journal files. | 7 days | no |
The configuration file name for this integration is otel.yaml.
You can edit the configuration file using the edit-config script from the
Netdata config directory.
cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config otel.yaml
Listen on default endpoint with default settings.
endpoint:
path: "127.0.0.1:4317"
metrics:
chart_configs_dir: otel.d/v1/metrics/
buffer_samples: 10
logs:
journal_dir: /var/log/netdata/otel-journals
Listen with TLS enabled for secure connections.
endpoint:
path: "0.0.0.0:4317"
tls_cert_path: /etc/netdata/ssl/cert.pem
tls_key_path: /etc/netdata/ssl/key.pem
metrics:
chart_configs_dir: otel.d/v1/metrics/
buffer_samples: 10
logs:
journal_dir: /var/log/netdata/otel-journals
Metrics are dynamically created based on the OpenTelemetry data received. The specific metrics depend on the OTLP sources sending data to the plugin.
There are no alerts configured by default for this integration.
Want a personalised demo of Netdata for your use case?