Help us improve
Share bugs, ideas, or general feedback.
From cx-skills
Instruments Java, Python, Node.js, .NET, and Go applications with OpenTelemetry SDKs to send traces, metrics, and logs to Coralogix. Use for SDK-side OTel setup, OTLP exporter env vars, Coralogix resource attributes, APM transaction samplers, Kubernetes Operator injection, or debugging missing traces, metrics, logs, or no telemetry from an application. Not for OTel Collector config (use opentelemetry-collector), OTTL authoring (use opentelemetry-ottl), eBPF instrumentation, or Lambda layers.
npx claudepluginhub coralogix/cx-skills --plugin coralogixHow this skill is triggered — by the user, by Claude, or both
Slash command
/cx-skills:opentelemetry-instrumentationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
| Use case | What to do |
evals/direct-vs-collector-tradeoffs/capability.txtevals/direct-vs-collector-tradeoffs/criteria.jsonevals/direct-vs-collector-tradeoffs/task.mdevals/dotnet-auto-endpoint-missing-https-scheme/capability.txtevals/dotnet-auto-endpoint-missing-https-scheme/criteria.jsonevals/dotnet-auto-endpoint-missing-https-scheme/task.mdevals/dotnet-coralogixcoresdk-deprecation-redirect/capability.txtevals/dotnet-coralogixcoresdk-deprecation-redirect/criteria.jsonevals/dotnet-coralogixcoresdk-deprecation-redirect/task.mdevals/dotnet-manual-sdk-https-scheme-eu1/capability.txtevals/dotnet-manual-sdk-https-scheme-eu1/criteria.jsonevals/dotnet-manual-sdk-https-scheme-eu1/task.mdevals/go-legacy-sdk-deprecation-redirect/capability.txtevals/go-legacy-sdk-deprecation-redirect/criteria.jsonevals/go-legacy-sdk-deprecation-redirect/task.mdevals/go-manual-tls-sampler-ap2-setup/capability.txtevals/go-manual-tls-sampler-ap2-setup/criteria.jsonevals/go-manual-tls-sampler-ap2-setup/task.mdevals/go-required-env-vars-direct-eu2/capability.txtevals/go-required-env-vars-direct-eu2/criteria.jsonGuides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
| Use case | What to do |
|---|---|
| Choose a language / decide where to start | Load language-selector.md first — it has the decision tree for language, signal, mode, and export path |
| Generate setup for a specific language | Load the language reference after confirming the SDK: java.md, python.md, nodejs.md, dotnet.md, go.md |
| Configure OTLP endpoint, region, or authentication | Load coralogix-endpoints.md — covers regional domains, OTLP host:port, auth header format |
| Generate a complete user-facing answer | Load output-templates.md — checklist structure with assumptions, code, validation steps |
| Diagnose missing traces, metrics, or logs from the SDK | Load troubleshooting.md — symptom → root-cause table for SDK-side failures |
Load order: language-selector.md → language ref → coralogix-endpoints.md → output-templates.md (always last). Load troubleshooting.md only for debugging.
Before answering (agent mode):
list_references() first, then read_reference(...) for the relevant files (language selector + the target language + endpoints; add troubleshooting only when debugging). Do not answer from memory if the references could affect correctness.Always include in generated answers:
Required env vars (names only) — include these in any “copy/paste” setup:
OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_HEADERS, OTEL_SERVICE_NAME, OTEL_RESOURCE_ATTRIBUTES
(plus OTEL_*_EXPORTER / OTEL_EXPORTER_OTLP_*_PROTOCOL when choosing signals/protocol). For exact per-language endpoint formats and the Python %20 env-var rule, use coralogix-endpoints.md.
Required resource attributes — service.name (APM catalog/transactions), cx.application.name + cx.subsystem.name (routing, TCO, APM grouping), telemetry.sdk.language (auto-set; do not strip). Missing any silently degrades APM. Additional k8s/host attributes are covered in each language reference.
Telemetry quality. Low-cardinality span names, no sensitive data, bounded metric attributes, structured single-line logs with trace/span IDs, validation steps for the signal. Never approve user-scoped values (user_id, tenant_id, request_id, session_id) as metric labels — they cause unbounded cardinality and will explode metric storage.
Direct vs collector routing rule: Default to direct OTLP for dev/test environments, simple single-service production deployments, or when no collector infrastructure exists. Default to via-collector for Kubernetes workloads needing pod/namespace enrichment (k8sattributes), tail sampling, multi-service shared key management, or buffered retry/file persistence requirements. When the deployment context is unknown, show both options using the tradeoff table in language-selector.md.
Collector config is out of scope. Redirect to opentelemetry-collector — do not partially answer pipeline or processor questions.
Keep this list short and only use it when the user’s symptom matches. For details, defer to the language references.
opentelemetry-javaagent.jar + JAVA_TOOL_OPTIONS="-javaagent:/path/to/opentelemetry-javaagent.jar".https://ingress.<region>.coralogix.com:443 (URI parsing breaks bare host:port).%20 (Authorization=Bearer%20<KEY>); programmatic headers use a tuple sequence with lowercase key + literal space (("authorization", f"Bearer {token}")).url must include /v1/traces (https://ingress.<region>.coralogix.com:443/v1/traces); gRPC doesn’t.credentials.NewTLS(nil) and bare endpoint ingress.<region>.coralogix.com:443 (no https:// in WithEndpoint).sdk/metric defaults to a cardinality limit of 2000; use WithCardinalityLimit(0) only when you intentionally need unlimited series, and expect otel.metric.overflow=true when the limit is hit.OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY=disk now requires OTEL_DOTNET_EXPERIMENTAL_OTLP_DISK_RETRY_DIRECTORY_PATH; do not rely on an implicit temp-directory fallback.CoralogixTransactionSampler (Node.js: @coralogix/opentelemetry); bundled NODE_OPTIONS auto-instr doesn’t support Transactions.SimpleSpanProcessor vs BatchSpanProcessor; metrics need PeriodicExportingMetricReader flush/wait.OpenTelemetry.Instrumentation.AspNet + AddAspNetInstrumentation().opentelemetry-collector or opentelemetry-ottl.Payload Too Large OTLP errors are Lambda-layer concerns, not SDK.Native Coralogix SDKs are EOL June 30, 2026 — redirect to OTel and do not provide configuration for legacy packages.
Coralogix OTel instrumentation: Java · Python · Node.js · .NET · Go