Instrument applications with OpenTelemetry SDK and validate telemetry using Kopai. Use when setting up observability, adding tracing/logging/metrics, testing instrumentation, debugging missing telemetry data, or when traces/logs/metrics aren't appearing after setup. Also use when users say things like "my traces aren't showing up", "I don't see any data", or "how do I add observability to my app".
100
100%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Guide for instrumenting applications with OpenTelemetry SDK and validating telemetry locally using Kopai.
# Start backend
npx @kopai/app start
# Configure app
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
export OTEL_SERVICE_NAME=my-service
# Validate telemetry
npx @kopai/cli traces search --service my-service --json
npx @kopai/cli logs search --service my-service --json
npx @kopai/cli metrics discover --jsonnpx @kopai/app startOTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 and OTEL_SERVICE_NAME=<name>npx @kopai/cli traces search --service <name> --json. If empty: check endpoint/port, verify app is running and generating traffic, wait 10-30s and retrynpm install @opentelemetry/sdk-node @opentelemetry/auto-instrumentations-node @opentelemetry/apiCreate instrumentation.mjs:
import { NodeSDK } from "@opentelemetry/sdk-node";
import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
const sdk = new NodeSDK({ instrumentations: [getNodeAutoInstrumentations()] });
sdk.start();Run: node --import ./instrumentation.mjs server.mjs
setup-backend - Start Kopai Backendsetup-environment - Configure Environmentlang-nodejs - Node.js Instrumentationlang-nextjs - Next.js Instrumentationlang-python - Python Instrumentationlang-go - Go Instrumentationlang-java - Java Instrumentationlang-dotnet - .NET Instrumentationlang-ruby - Ruby Instrumentationlang-php - PHP Instrumentationlang-rust - Rust Instrumentationlang-erlang - Erlang/Elixir Instrumentationlang-cpp - C++ Instrumentationvalidate-traces - Validate Tracesvalidate-logs - Validate Logsvalidate-metrics - Validate Metricstroubleshoot-no-data - No Data Receivedtroubleshoot-missing-spans - Missing Spanstroubleshoot-missing-attrs - Missing Attributestroubleshoot-wrong-port - Wrong PortRead rules/<rule-name>.md for details.
rules