From netdata-skills
Use when adding OpenTelemetry instrumentation to application code that will report to Netdata. Covers SDK setup, resource attributes, auto-instrumentation, and patterns for Node.js, Python, Java, Go, .NET, Ruby, and PHP. Emits metrics and logs via OTLP gRPC to Netdata. Traces are not yet supported by Netdata; use an alternative trace backend until Q2 2026.
How this skill is triggered — by the user, by Claude, or both
Slash command
/netdata-skills:netdata-instrumentationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill adds OpenTelemetry instrumentation to application code that
This skill adds OpenTelemetry instrumentation to application code that will export metrics (and, where the SDK is mature enough, logs) to Netdata over OTLP/gRPC.
service.name (required by OTel). Netdata groups charts by this.service.version. Used in dashboards and alert rules.deployment.environment (or deployment.environment.name in the
newer semconv). Lets the MCP tools filter by env.host.name. Filled by most SDKs automatically.OTEL_SERVICE_NAMEOTEL_EXPORTER_OTLP_ENDPOINT (scheme + host + port, e.g.
http://netdata.example.internal:4317)OTEL_RESOURCE_ATTRIBUTES (comma-separated key=value list)OTEL_EXPORTER_OTLP_PROTOCOL=grpc (be explicit; some SDKs default
to http/protobuf)-r/--import preload; in Java
it is the Java agent jar; in Go/Ruby/.NET/PHP it is an in-process
call before the first work happens.http://
(or https:// with TLS) and port 4317. Do not put /v1/metrics on
the URL; that is the OTLP/HTTP path and the gRPC exporter does not
want it.skills/netdata-otel-setup/rules/metric-mapping.md.exporter-otlp-http, port 4318) against
Netdata. Netdata accepts gRPC only.service.name. Without it, charts group under an
"unknown_service" bucket and look broken.shutdown() in the wrong place. Async SDKs need a chance to
flush on SIGTERM; a blind process.exit(0) loses the last batch.Two deployment shapes:
http://localhost:4317 or
http://$HOST_IP:4317; the Collector handles the real
destination, TLS, and retries.Production-shape defaults:
Run an MCP query against the Netdata instance that is supposed to be receiving the traffic. See the MCP integration skill for the full transport setup; here is the minimum check:
# From a shell where the agent with MCP access is configured:
# list_metrics filtered by service name
Or via the HTTP API for a quick check without an MCP client:
curl -s 'http://NETDATA_HOST:19999/api/v2/contexts' \
| jq --arg svc "$OTEL_SERVICE_NAME" \
'.contexts | to_entries[] | select(.key | contains($svc))'
A non-empty result means at least one metric from the service arrived
within the last few minutes. For the canonical working instrumentation,
see tests/e2e/sample-apps/ in this repo.
rules/nodejs.mdrules/python.mdrules/java.mdrules/go.mdrules/dotnet.mdrules/ruby.mdrules/php.mdSearches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
npx claudepluginhub netdata/skills --plugin netdata-skills