Netdata migration
Use when migrating observability from Datadog, New Relic, Dynatrace, or Prometheus to Netdata. Covers SDK replacement, exporter reconfiguration, Prometheus endpoint passthrough, and dashboard parity expectations.From its SKILL.md
npx -y skills add netdata/skills --skill netdata-migrationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.0 KB, as published. Nobody here has run it
Netdata migration
This skill guides a migration from another observability vendor's metric pipeline to Netdata. The goal is OpenTelemetry-native instrumentation that exports to Netdata over OTLP/gRPC, with existing dashboards and alerts rebuilt on the Netdata side where parity is possible.
When to use this skill
- The user is actively cutting over from a vendor SDK (Datadog, New Relic, Dynatrace) to OpenTelemetry + Netdata.
- The user has a Prometheus scrape pipeline and wants to reuse it while adding Netdata ingestion.
- The user wants to know which signals from the old vendor have a one-to-one analogue in Netdata.
Key facts
- Netdata accepts metrics and logs via OTLP/gRPC. Traces are not yet accepted; plan trace routing separately.
- Most vendor SDKs (Datadog, New Relic, Dynatrace) now have an OpenTelemetry-compatible mode or a first-party exporter. Prefer that path over writing a second agent.
- Prometheus metrics can be ingested without migration code: run
the OTel Collector's
prometheusreceiver, or use Netdata's native Prometheus endpoint scraping. - Dashboard parity is rarely 1:1. Netdata charts are auto-generated by default, shaped by mapping files. Rebuilding a Datadog-style curated dashboard is a separate task.
- Alerts do not migrate. Each vendor's rule language is different. Expect to rewrite alert expressions against Netdata's alert engine.
Step-by-step
-
Inventory what the current stack emits:
- Traces (note separately; Netdata won't take them yet).
- Metrics (the main migration target).
- Logs (second migration target).
- Vendor-specific events (sometimes unportable).
-
Pick a strategy:
- Parallel run: keep the vendor pipeline, add an OTel Collector that exports to Netdata in parallel. Compare for 1-4 weeks. Then cut over.
- Cutover: replace the vendor SDK in one go. Faster but no side-by-side validation.
-
Replace the SDK. See the per-vendor rule files in References.
-
Reconfigure the exporter. OTLP/gRPC at the Netdata receiver port (default 4317). Set
service.name,service.version,deployment.environmentas resource attributes. -
Rebuild alerts against Netdata. Prioritize by current alert firing frequency; low-volume alerts can wait.
-
Decommission the vendor agent once the parallel-run window shows no regressions.
Common mistakes
- Leaving the vendor SDK loaded alongside the OTel SDK in the same process. They often patch the same libraries and conflict. Remove the vendor SDK fully.
- Trying to forward traces to Netdata. The gRPC connection succeeds; traces are silently dropped. Route traces to Jaeger, Tempo, or the old vendor (as a stop-gap) while Netdata trace support lands.
- Expecting metric names to carry over. OTel semantic conventions differ from Datadog/New Relic metric names. Use OTel names going forward; rebuild dashboards against them.
- Trying to replay historical vendor data into Netdata. There is no backfill tool. Cutover's retention starts at the cutover date.
Migration sequencing
A reliable migration order for a medium-sized fleet (20-100 services, multiple teams):
- Week 0: tooling in place. Deploy a Netdata Parent, an OTel Collector gateway, and confirm a single smoke-test service flows end to end. No production services migrated.
- Weeks 1-2: easiest services. Pick 1-3 services with minimal custom instrumentation (pure auto-instrumentation wins). Migrate. Run parallel for at least one week.
- Weeks 3-6: medium services. Services with some custom metrics and straightforward alerts. Rebuild alerts as you go; this is where the bulk of the alert-rewriting happens.
- Weeks 7-10: hard services. Custom SDK extensions, bespoke dashboards, cross-service SLOs. Budget extra time for rebuilding alert dependencies.
- Final weeks: decommission. Stop the vendor agents. Archive any historical data that must be retained for compliance.
A cutover under two weeks is possible for a small shop. A fleet migration under six weeks usually means something was skipped.
Verification
Run the MCP integration skill's telemetry-flow check against the service that was just migrated. Before cutover, also run the same check against the old vendor. A parallel-run comparison:
For service <name>, list the top 10 metrics by volume in Netdata
in the last 30 minutes. List the top 10 metrics by volume in the
old vendor for the same window. Identify any metric present in
the old vendor but absent in Netdata.
Gaps revealed by that check usually trace back to missing instrumentation packages (for example, the Datadog SDK wrapped a library that the OTel auto-instrumentation set does not yet cover).
A second check to run a week after cutover: have every on-call acknowledge that the runbooks they actually used in the last 30 days still work against Netdata. A runbook that no longer matches the observability tool is a silent hazard.
Plan an explicit "metric inventory" diff, not just a spot check.
Export the metric list from the old vendor (most have an API for
this), and compare to Netdata's list_metrics output. The diff
is what tells you whether something was quietly dropped.
References
rules/from-datadog.mdrules/from-new-relic.mdrules/from-dynatrace.mdrules/from-prometheus.mdrules/parity-expectations.md- OpenTelemetry semantic conventions: https://opentelemetry.io/docs/specs/semconv/