The only agent that thinks for itself

Autonomous Monitoring with self-learning AI built-in, operating independently across your entire stack.

Metrics, Logs & Traces
Machine learning & MCP
5% CPU, 150MB RAM
3GB disk, >1 year retention
800+ integrations, zero config
Dashboards, alerts out of the box
> Discover Netdata Agents

Centralized metrics streaming and storage

Aggregate metrics from multiple agents into centralized Parent nodes for unified monitoring across your infrastructure.

Stream from unlimited agents
Long-term data retention
High availability clustering
Data replication & backup
Scalable architecture
Enterprise-grade security
> Learn about Parents

Fully managed cloud platform

Access your monitoring data from anywhere with our SaaS platform. No infrastructure to manage, automatic updates, and global availability.

Zero infrastructure management
99.9% uptime SLA
Global data centers
Automatic updates & patches
Enterprise SSO & RBAC
SOC2 & ISO certified
> Explore Netdata Cloud

Deploy Netdata Cloud in your infrastructure

Run the full Netdata Cloud platform on-premises for complete data sovereignty and compliance with your security policies.

Complete data sovereignty
Air-gapped deployment
Custom compliance controls
Private network integration
Dedicated support team
Kubernetes & Docker support
> Learn about Cloud On-Premises

Powerful, intuitive monitoring interface

Modern, responsive UI built for real-time troubleshooting with customizable dashboards and advanced visualization capabilities.

Real-time chart updates
Customizable dashboards
Dark & light themes
Advanced filtering & search
Responsive on all devices
Collaboration features
> Explore Netdata UI

Monitor on the go

Native iOS and Android apps bring full monitoring capabilities to your mobile device with real-time alerts and notifications.

iOS & Android apps
Push notifications
Touch-optimized interface
Offline data access
Biometric authentication
Widget support
> Download apps

The future of infrastructure observability

See our strategic direction across AI-native observability, full-stack signals, operational intelligence, and enterprise platform maturity.

AI-native observability
Full-stack signal coverage
Operational intelligence
Enterprise platform maturity
Agent releases every 6 weeks
Cloud continuous delivery
> Explore Product Roadmap

Best energy efficiency

True real-time per-second

100% automated zero config

Centralized observability

Multi-year retention

High availability built-in

Zero maintenance

Always up-to-date

Enterprise security

Complete data control

Air-gap ready

Compliance certified

Millisecond responsiveness

Infinite zoom & pan

Works on any device

Native performance

Instant alerts

Monitor anywhere

AI-native observability

Continuous delivery

Open source foundation

80% Faster Incident Resolution

AI-powered troubleshooting from detection, to root cause and blast radius identification, to reporting.

True Real-Time and Simple, even at Scale

Linearly and infinitely scalable full-stack observability, that can be deployed even mid-crisis.

90% Cost Reduction, Full Fidelity

Instead of centralizing the data, Netdata distributes the code, eliminating pipelines and complexity.

See and Map Your Entire Network

Live topology, flow analytics, and SNMP device and trap monitoring — unified with your full-stack observability.

Control Without Surrender

SOC 2 Type 2 certified with every metric kept on your infrastructure.

Integrations

800+ collectors and notification channels, auto-discovered and ready out of the box.

800+ data collectors
Auto-discovery & zero config
Cloud, infra, app protocols
Notifications out of the box
> Explore integrations
Real Results
46% Cost Reduction

Reduced monitoring costs by 46% while cutting staff overhead by 67%.

— Leonardo Antunez, Codyas

Zero Pipeline

No data shipping. No central storage costs. Query at the edge.

From Our Users
"Out-of-the-Box"

So many out-of-the-box features! I mostly don't have to develop anything.

— Simon Beginn, LANCOM Systems

No Query Language

Point-and-click troubleshooting. No PromQL, no LogQL, no learning curve.

Enterprise Ready
67% Less Staff, 46% Cost Cut

Enterprise efficiency without enterprise complexity—real ROI from day one.

— Leonardo Antunez, Codyas

SOC 2 Type 2 Certified

Zero data egress. Only metadata reaches the cloud. Your metrics stay on your infrastructure.

Full Coverage
800+ Collectors

Auto-discovered and configured. No manual setup required.

Any Notification Channel

Slack, PagerDuty, Teams, email, webhooks—all built-in.

Built for the People Who Get Paged

Because 3am alerts deserve instant answers, not hour-long hunts.

Every Industry Has Rules. We Master Them.

See how healthcare, finance, and government teams cut monitoring costs 90% while staying audit-ready.

Monitor Any Technology. Configure Nothing.

Install the agent. It already knows your stack.
From Our Users
"A Rare Unicorn"

Netdata gives more than you invest in it. A rare unicorn that obeys the Pareto rule.

— Eduard Porquet Mateu, TMB Barcelona

99% Downtime Reduction

Reduced website downtime by 99% and cloud bill by 30% using Netdata alerts.

— Falkland Islands Government

Real Savings
30% Cloud Cost Reduction

Optimized resource allocation based on Netdata alerts cut cloud spending by 30%.

— Falkland Islands Government

46% Cost Cut

Reduced monitoring staff by 67% while cutting operational costs by 46%.

— Codyas

Real Coverage
"Plugin for Everything"

Netdata has agent capacity or a plugin for everything, including Windows and Kubernetes.

— Eduard Porquet Mateu, TMB Barcelona

"Out-of-the-Box"

So many out-of-the-box features! I mostly don't have to develop anything.

— Simon Beginn, LANCOM Systems

Real Speed
Troubleshooting in 30 Seconds

From 2-3 minutes to 30 seconds—instant visibility into any node issue.

— Matthew Artist, Nodecraft

20% Downtime Reduction

20% less downtime and 40% budget optimization from out-of-the-box monitoring.

— Simon Beginn, LANCOM Systems

Pay per Node. Predictable Pricing.

Predictable per-node pricing for infrastructure monitoring. No per-metric or per-GB ingest charges for metrics and logs.

Free tier—forever
No metric limits or caps
Retention you control
Cancel anytime
> See pricing plans

What's Your Monitoring Really Costing You?

Most teams overpay by 40-60%. Let's find out why.

Expose hidden metric charges
Calculate tool consolidation
Customers report 30-67% savings
Results in under 60 seconds
> See what you're really paying

Your Infrastructure Is Unique. Let's Talk.

Because monitoring 10 nodes is different from monitoring 10,000.

On-prem & air-gapped deployment
Volume pricing & agreements
Architecture review for your scale
Compliance & security support
> Start a conversation

Monitoring That Sells Itself

Deploy in minutes. Impress clients in hours. Earn recurring revenue for years.

30-second live demos close deals
Zero config = zero support burden
Competitive margins & deal protection
Response in 48 hours
> Apply to partner

Per-Second Metrics at Homelab Prices

Same engine, same dashboards, same ML. Just priced for tinkerers.

Community: Free forever · 5 nodes · non-commercial
Homelab: $90/yr · unlimited nodes · fair usage
> Get the Homelab Plan

$1,000 Per Referral. Unlimited Referrals.

Your colleagues get 10% off. You get 10% commission. Everyone wins.

10% of subscriptions, up to $1,000 each
Track earnings inside Netdata Cloud
PayPal/Venmo payouts in 3-4 weeks
No caps, no complexity
> Get your referral link
Cost Proof
40% Budget Optimization

"Netdata's significant positive impact" — LANCOM Systems

Calculate Your Savings

Compare vs Datadog, Grafana, Dynatrace

Savings Proof
46% Cost Reduction

"Cut costs by 46%, staff by 67%" — Codyas

30% Cloud Bill Savings

"Reduced cloud bill by 30%" — Falkland Islands Gov

Enterprise Proof
"Better Than Combined Alternatives"

"Better observability with Netdata than combining other tools." — TMB Barcelona

Real Engineers, <24h Response

DPA, SLAs, on-prem, volume pricing

Why Partners Win
Demo Live Infrastructure

One command, 30 seconds, real data—no sandbox needed

Zero Tickets, High Margins

Auto-config + per-node pricing = predictable profit

Homelab Ready
Free Video Course

8-episode Netdata tutorial by LearnLinux.tv

80k+ GitHub Stars

3rd most starred monitoring project

Worth Recommending
Product That Delivers

Customers report 40-67% cost cuts, 99% downtime reduction

Zero Risk to Your Rep

Free tier lets them try before they buy

AI Support Assistant, Available 24/7

Nedi has access to all official documentation, source code, and resources. Ask any question about Netdata—responds in your language.

Deployment & configuration
Troubleshooting & sizing
Alerts & notifications
Evidence-based answers
> Ask Nedi now

Never Fight Fires Alone

Docs, community, and expert help—pick your path to resolution.

Learn.netdata.cloud docs
Discord, Forums, GitHub
Premium support available
> Get answers now

60 Seconds to First Dashboard

One command to install. Zero config. 850+ integrations documented.

Linux, Windows, K8s, Docker
Auto-discovers your stack
> Read our documentation

80,000+ Engineers Strong

690+ contributors. 1.5M daily downloads. One mission: simplify observability.

Per-Second. 90% Cheaper. Data Stays Home.

Side-by-side comparisons: costs, real-time granularity, and data sovereignty for every major tool.

See why teams switch from Datadog, Prometheus, Grafana, and more.

> Browse all comparisons
Edge-Native Observability, Born Open Source
Per-second visibility, ML on every metric, and data that never leaves your infrastructure.
Founded in 2016
690+ contributors worldwide
Remote-first, engineering-driven
Open source first
> Read our story
Promises We Publish—and Prove
12 principles backed by open code, independent validation, and measurable outcomes.
Open source, peer-reviewed
Zero config, instant value
Data sovereignty by design
Aligned pricing, no surprises
> See all 12 principles
Edge-Native, AI-Ready, 100% Open
80k+ stars. Full ML, AI, and automation—GPLv3+, not premium add-ons.
80,000+ GitHub stars
GPLv3+ licensed forever
ML on every metric, included
Zero vendor lock-in
> Explore our open source
Build Real-Time Observability for the World
Remote-first team shipping per-second monitoring with ML on every metric.
Remote-first, fully distributed
Open source (80k+ stars)
Challenging technical problems
Your code on millions of systems
> See open roles
Meet the Team Behind Netdata
Conferences, meetups, and tradeshows where you can see Netdata in action and talk to the engineers who build it.
Live demos and deep dives
Book 1-on-1 meetings
Talks and panel sessions
Event recaps and photos
> See all events
Talk to a Netdata Human in <24 Hours
Sales, partnerships, press, or professional services—real engineers, fast answers.
Discuss your observability needs
Pricing and volume discounts
Partnership opportunities
Media and press inquiries
> Book a conversation
Your Data. Your Rules.
On-prem data, cloud control plane, transparent terms.
Trust & Scale
80,000+ GitHub Stars

One of the most popular open-source monitoring projects

SOC 2 Type 2 Certified

Enterprise-grade security and compliance

Data Sovereignty

Your metrics stay on your infrastructure

Validated
University of Amsterdam

"Most energy-efficient monitoring solution" — ICSOC 2023, peer-reviewed

ADASTEC (Autonomous Driving)

"Doesn't miss alerts—mission-critical trust for safety software"

Community Stats
690+ Contributors

Global community improving monitoring for everyone

1.5M+ Downloads/Day

Trusted by teams worldwide

GPLv3+ Licensed

Free forever, fully open source agent

Why Join?
Remote-First

Work from anywhere, async-friendly culture

Impact at Scale

Your work helps millions of systems

OpenTelemetry icon

OpenTelemetry

OpenTelemetry

Plugin: otel.plugin Module: otel

Overview

Receive OpenTelemetry metrics, logs, and traces from an OpenTelemetry Collector over OTLP/gRPC or OTLP/HTTP. The plugin converts supported metrics into Netdata charts, indexes logs for exploration in the Logs tab, and indexes traces for exploration in the Traces tab.

The plugin accepts gauges, sums, explicit-bucket histograms, and summaries. It does not currently ingest exponential histograms. Monotonic cumulative and delta sums are rate-normalized; non-monotonic cumulative sums behave as gauges.

For a maintained Collector configuration and end-to-end verification steps, see Ingest OpenTelemetry Metrics, Logs, and Traces. The separate OpenTelemetry Logs integration explains how received logs appear in Netdata, and Trace Storage and Retention explains how received traces are stored and kept.

The plugin starts automatically and listens for OTLP/gRPC on port 4317. It can also listen for OTLP/HTTP on port 4318, but this listener is off by default: set receivers.otlp.protocols.http.enabled to true to turn it on. Point the Collector’s otlp_grpc exporter, or its otlp_http exporter when the OTLP/HTTP listener is on, at the matching port. Keep the exporter’s default protobuf encoding and gzip compression: the plugin rejects other compression algorithms, and with encoding: json it rejects any request that carries a NaN or infinite metric value.

Each metric name becomes a Netdata chart context prefixed with otel.. YAML mapping rules can match a metric name and instrumentation scope, select a data point attribute for dimension names, and override chart timing. User mapping files take priority over the stock hostmetrics mappings compiled into the plugin. Metrics without a matching mapping still create charts using default settings.

Mapping file optionDescription
instrumentation_scope.nameRegular expression matching the instrumentation scope name
instrumentation_scope.versionRegular expression matching the instrumentation scope version
dimension_attribute_keyData point attribute whose value becomes the dimension name
interval_secsPer-metric chart update interval override
grace_period_secsPer-metric gap-filling grace period override

Invalid user mapping files are logged and skipped without disabling the stock mappings. Charts expire after their configured inactivity period.

This collector is only supported on the following platforms:

  • Linux
  • macOS

This collector only supports collecting metrics from a single instance of this integration.

Default Behavior

Auto-Detection

The plugin starts automatically and listens on 127.0.0.1:4317 for OTLP/gRPC connections. When you turn on the OTLP/HTTP listener, it also listens on 127.0.0.1:4318 for OTLP/HTTP connections.

Limits

Each export request is limited to 4 MiB, both as received and after decompression. The plugin rejects a larger request as a whole. Each export request can create at most 100 new charts by default. This is a per-request throttle, not a total cardinality limit. By default, log timestamps are accepted from up to 24 hours in the past through 10 minutes in the future; records without a timestamp use their arrival time. A span is accepted when it started no more than 24 hours ago and ends no more than 10 minutes in the future. Log and trace retention are each bounded by whichever limit is reached first: retained file count, retained indexed-data size, or age.

Performance Impact

Resource use depends on the number and cardinality of received metrics, log and span volume, retention, and query activity. Keep unbounded attributes out of metric identities and dimension names.

Setup

Prerequisites

A Netdata installation that includes the OpenTelemetry plugin

Official Linux packages, static builds, containers, and supported macOS packages include the plugin. Linux source installs using netdata-installer.sh require a compatible Rust toolchain and --enable-plugin-otel; on macOS, the installer enables the plugin automatically when it finds a compatible Rust toolchain.

An OTLP data source

An OpenTelemetry Collector that exports metrics, logs, or traces to the Agent: the otlp_grpc exporter to port 4317, or the otlp_http exporter to port 4318 after you turn on the OTLP/HTTP listener. The default loopback endpoints accept only a Collector on the same host.

Configuration

Options

Edit otel.yaml with edit-config. A user file can contain only the fields that differ from the stock configuration. Configuration resolves in this order: stock file, user file, then environment variables. Restart the Netdata Agent after changing otel.yaml or any NETDATA_OTEL_CFG_* environment variable.

The absolute paths shown below are the defaults for standard Linux packages. The installed stock configuration resolves its configuration and log directories for the installation layout, so macOS and custom-prefix installations use different paths. Use edit-config with otel.yaml to inspect the installed values.

Environment overrides use the NETDATA_OTEL_CFG_ prefix. Names are the uppercase option path with dots replaced by underscores. For example, receivers.otlp.protocols.grpc.tls.cert_file becomes NETDATA_OTEL_CFG_RECEIVERS_OTLP_PROTOCOLS_GRPC_TLS_CERT_FILE, and receivers.otlp.protocols.http.enabled becomes NETDATA_OTEL_CFG_RECEIVERS_OTLP_PROTOCOLS_HTTP_ENABLED. For the default rotation and retention entries, omit the default path segment: logs.retention.default.max_age becomes NETDATA_OTEL_CFG_LOGS_RETENTION_MAX_AGE, and traces.retention.default.max_age becomes NETDATA_OTEL_CFG_TRACES_RETENTION_MAX_AGE.

Configuration is strict. Unknown YAML fields, unknown NETDATA_OTEL_CFG_* variables, malformed values, and the former experimental schema prevent the plugin from starting. The effective configuration is logged at startup; remote_storage.uri is redacted in that log.

In a YAML file, an option set to null keeps its current value. To turn a listener on or off, set its enabled option. The OTLP/gRPC listener is on and the OTLP/HTTP listener is off by default. At least one of the two listeners must stay enabled.

Older files configure the OTLP/gRPC listener in an endpoint: section: endpoint.path, endpoint.tls_cert_path, endpoint.tls_key_path, and endpoint.tls_ca_cert_path, and the matching NETDATA_OTEL_CFG_ENDPOINT_* variables. These names still work and log a deprecation warning. If a file or the environment sets an option under both names, the plugin logs a warning and uses the receivers name.

OptionDescriptionDefaultRequired
receivers.otlp.protocols.grpc.enabledTurns the OTLP/gRPC listener on or off.yesno
receivers.otlp.protocols.grpc.endpointAddress (host:port) on which the OTLP/gRPC listener accepts connections.127.0.0.1:4317no
receivers.otlp.protocols.grpc.tls.cert_filePath to the server TLS certificate for the OTLP/gRPC listener. Set it together with receivers.otlp.protocols.grpc.tls.key_file.no
receivers.otlp.protocols.grpc.tls.key_filePath to the server TLS private key for the OTLP/gRPC listener. Set it together with receivers.otlp.protocols.grpc.tls.cert_file.no
receivers.otlp.protocols.grpc.tls.client_ca_filePath to a CA certificate used to verify client certificates on the OTLP/gRPC listener.no
receivers.otlp.protocols.http.enabledTurns the OTLP/HTTP listener on or off. The listener is off by default.nono
receivers.otlp.protocols.http.endpointAddress (host:port) on which the OTLP/HTTP listener accepts connections.127.0.0.1:4318no
receivers.otlp.protocols.http.tls.cert_filePath to the server TLS certificate for the OTLP/HTTP listener. Set it together with receivers.otlp.protocols.http.tls.key_file.no
receivers.otlp.protocols.http.tls.key_filePath to the server TLS private key for the OTLP/HTTP listener. Set it together with receivers.otlp.protocols.http.tls.cert_file.no
receivers.otlp.protocols.http.tls.client_ca_filePath to a CA certificate used to verify client certificates on the OTLP/HTTP listener.no
metrics.chart_configs_dirDirectory containing user metric mapping YAML files./etc/netdata/otel.d/v1/metricsno
metrics.interval_secsDefault Netdata chart update interval in seconds.10no
metrics.grace_period_secsTime after the last data point before the plugin begins filling chart gaps.60no
metrics.expiry_duration_secsTime without data after which a chart is removed.900no
metrics.max_new_charts_per_requestMaximum number of new charts one OTLP export request can create.100no
base_dirAbsolute root directory for locally stored OpenTelemetry logs and traces./var/log/netdata/otel/v2no
remote_storage.enabledUpload retained OpenTelemetry logs and traces to configured remote object storage.nono
remote_storage.uriRemote storage URI. Supported schemes are fs and s3.fs:///var/log/netdata/otel/v2/remoteno
remote_storage.read_cache_max_sizeMaximum size of the local download cache, shared by logs and traces, for data fetched back from remote storage during queries.1GBno
auth.enabledRequire the X-Scope-OrgID header (gRPC metadata or HTTP header) to select a log or trace tenant.nono
logs.rotation.default.max_file_sizeWrite-ahead log file size that triggers rotation.25MBno
logs.rotation.default.max_entriesWrite-ahead log entry count that triggers rotation.50000no
logs.retention.default.max_filesMaximum retained indexed-file count.100000no
logs.retention.default.max_total_sizeMaximum retained indexed-data size.1GBno
logs.retention.default.max_ageMaximum retained indexed-file age.7 daysno
traces.rotation.default.max_file_sizeTrace write-ahead log file size that triggers rotation.25MBno
traces.rotation.default.max_entriesTrace write-ahead log span count that triggers rotation.50000no
traces.retention.default.max_filesMaximum retained indexed trace-file count.100000no
traces.retention.default.max_total_sizeMaximum retained indexed trace-data size.1GBno
traces.retention.default.max_ageMaximum retained indexed trace-file age, measured on the start time of its newest span.7 daysno

receivers.otlp.protocols.grpc.endpoint

The default IPv4 loopback address accepts only local senders. To accept remote senders, bind a non-loopback address and protect the listener with TLS or mutual TLS and network access controls.

receivers.otlp.protocols.grpc.tls.client_ca_file

Setting a CA certificate enables mutual TLS and therefore also requires the server certificate and key. Clients must present a certificate signed by this CA.

receivers.otlp.protocols.http.endpoint

The default IPv4 loopback address accepts only local senders. To accept remote senders, bind a non-loopback address and protect the listener with TLS or mutual TLS and network access controls.

receivers.otlp.protocols.http.tls.client_ca_file

Setting a CA certificate enables mutual TLS and therefore also requires the server certificate and key. Clients must present a certificate signed by this CA.

metrics.chart_configs_dir

User mappings take priority over the stock mappings compiled into the plugin. Files are processed in filename order. An invalid file is logged and skipped.

metrics.interval_secs

Timing must satisfy 0 < interval <= 3600, interval < grace, and grace <= expiry. Because the stock configuration explicitly sets all three values, set compatible values together when changing the global timing. An invalid resolved timing configuration logs a warning and falls back to the plugin’s hardcoded chart defaults.

metrics.max_new_charts_per_request

This limits a single request’s cardinality burst. It does not cap the total number of charts that successive requests can create.

base_dir

Retention limits govern retained indexed files. Write-ahead logs, catalogs, and the download cache for offloaded data (in the remote-read subdirectory under your configured base directory) can make total usage below this directory exceed the retention.*.max_total_size limits.

remote_storage.enabled

Sealed indexed files are uploaded in addition to being kept under local retention. When a query needs a remotely cataloged file that is no longer local, the plugin downloads it into the bounded download cache shared by logs and traces. Each download may take 30 seconds plus one second per MiB, at most 5 minutes; a file that takes longer or cannot be served is left out (traces report the answer as partial). A query needing more data than the cache holds fails with a message to narrow its time range.

remote_storage.uri

Put non-secret backend options in the query string. Never put credentials in this file or URI. For S3, use the standard AWS environment, credentials file, or instance-role mechanisms available to the Netdata service account.

auth.enabled

This is tenant selection, not credential authentication. When disabled, all logs and traces belong to the default tenant. When enabled, trust the header only behind TLS or mutual TLS and suitable network controls. Metrics are not tenant-scoped.

logs.retention.default.max_total_size

This is not a cap on all plugin disk use. Write-ahead logs, catalogs, and cache are additional.

traces.retention.default.max_total_size

This is not a cap on all plugin disk use. Write-ahead logs, catalogs, and cache are additional.

via File

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
Examples
Accept remote senders with mutual TLS

Bind beyond loopback only when the endpoint is protected. This example requires each sender to present a certificate signed by the configured CA. Each listener has its own TLS settings. If no sender uses one of the listeners, set its enabled option to false instead.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: "0.0.0.0:4317"
        tls:
          cert_file: /etc/netdata/ssl/server-cert.pem
          key_file: /etc/netdata/ssl/server-key.pem
          client_ca_file: /etc/netdata/ssl/client-ca.pem
      http:
        enabled: true
        endpoint: "0.0.0.0:4318"
        tls:
          cert_file: /etc/netdata/ssl/server-cert.pem
          key_file: /etc/netdata/ssl/server-key.pem
          client_ca_file: /etc/netdata/ssl/client-ca.pem
Configure log and trace retention

A user file needs only the fields that change; omitted fields keep their stock values. Logs and traces have separate settings, each tenant entry inherits omitted fields from default, and a per-tenant key must match the sender’s X-Scope-OrgID value when auth.enabled is true.

logs:
  retention:
    default:
      max_total_size: "10GB"
      max_age: "30 days"
traces:
  retention:
    default:
      max_total_size: "10GB"
      max_age: "30 days"
Metric mapping file

Without a mapping, all data point attributes contribute to chart identity and the dimension is named value. A mapping selects one string attribute as the dimension name and removes it from chart identity, grouping data points that differ only by that attribute into one multi-dimension chart. Place user mapping files in metrics.chart_configs_dir; omit instrumentation_scope when the metric name alone is unambiguous.

metrics:
  "system.cpu.time":
    - instrumentation_scope:
        name: .*hostmetricsreceiver.*cpuscraper$
      dimension_attribute_key: state
      interval_secs: 5
  "system.network.io":
    - instrumentation_scope:
        name: .*hostmetricsreceiver.*networkscraper$
      dimension_attribute_key: direction
  "redis.cpu.time":
    - dimension_attribute_key: state

Metrics

Metrics are created dynamically from supported OpenTelemetry data. The exact charts depend on the received metric names, attributes, instrumentation scopes, and mapping rules.

Alerts

There are no alerts configured by default for this integration.

Troubleshooting

Known Errors

failed to bind OTLP/gRPC endpoint 127.0.0.1:4317: Address already in use (os error 98)

When

Logged in the Agent journal at startup by the otel-plugin/ingestor worker, followed by exited with error code 1 and haven't collected any data. Disabling it. from the Agent. A conflict on the OTLP/HTTP listener fails the same strict way: failed to bind OTLP/HTTP endpoint 127.0.0.1:4318: Address already in use (os error 98).

Cause

Another process already listens on the configured address. Typical sources are a standalone OpenTelemetry Collector on the same host — its own OTLP receivers default to the same conventional ports, 4317 for gRPC and 4318 for HTTP — or several Netdata Agents running in containers that share the host network namespace (--network host), where only one of them can own a given port. The plugin binds both listeners before it advertises anything, so on a conflict it exits once and the Agent disables it until the next Agent restart.

Fix

Find the owner with ss -ltnp 'sport = :4317' (or sport = :4318 for the OTLP/HTTP listener). Then stop that listener, or give this Agent its own addresses in otel.yaml and point every OTLP sender at the new ports. You can also turn off a listener that no sender uses:

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 127.0.0.1:14317
      http:
        endpoint: 127.0.0.1:14318
        # or keep the OTLP/HTTP listener off:
        # enabled: false

When several Agents share one network namespace and only one needs to receive OTLP, disable the plugin on the others in netdata.conf:

[plugins]
  otel = no

Other Problems

The plugin does not start

Check the Agent journal for otel-plugin configuration errors. User YAML and NETDATA_OTEL_CFG_* variables are validated strictly, so a typo or an option from the former experimental schema stops startup. For a source install, confirm that a compatible Rust toolchain is available; Linux installs using netdata-installer.sh also require --enable-plugin-otel.

The endpoint is reachable but no data appears

A successful TCP connection proves only that something is listening. Check that the Collector’s exporter uses the right port: 4317 for otlp_grpc, 4318 for otlp_http. The otlp_http exporter needs the OTLP/HTTP listener, which is off by default. With the default endpoints, use 127.0.0.1, not localhost, which can resolve to IPv6. Then look for rejected exports in the Collector log, and verify the resulting chart, log entry, or trace.

A metric does not create the expected chart

Exponential histograms are not currently ingested. For other supported metrics, inspect the Agent journal for rejected user mapping files and verify the metric name, instrumentation scope, and dimension_attribute_key. The resulting chart context is otel.<metric-name>.

Large exports are rejected

The plugin rejects an export request larger than 4 MiB as a whole, and the Collector drops that batch. Make the batches smaller. On the exporter, cap them by size with sending_queue: { batch: { sizer: bytes, max_size: 3000000 } }. Alternatively, lower send_batch_max_size on the batch processor; it counts items (spans, data points, log records), not bytes.

Some exported logs are missing

By default, the plugin rejects log records timestamped more than 24 hours in the past or more than 10 minutes in the future. The Collector logs a Partial success response warning for rejected records. Check the clock of the host that produced the logs, how old the backfilled records are, the Collector log, and the Agent journal.

Some exported spans are missing

By default, the plugin rejects a span that started more than 24 hours ago or ends more than 10 minutes in the future; a span without an end time is judged by its start. The Collector logs a Partial success response warning for rejected spans, and the plugin logs a warning in the Agent journal. Check the clock of the instrumented application’s host, how old the backfilled spans are, the Collector log, and the Agent journal.

Logs from the former experimental plugin are not visible

A former-schema otel.yaml stops the current plugin and prints a migration guide. Replace it with a partial configuration based on the current stock file. The legacy logs.journal_dir key is accepted only to locate the former plugin’s read-only journals; it is not part of the current storage layout.

The observability platform companies need to succeed

Sign up for free

Want a personalised demo of Netdata for your use case?

Contact Sales