otel-instrumentation
OpenTelemetry Instrumentation with Kopai
Guide for instrumenting applications with OpenTelemetry SDK and validating telemetry locally using Kopai.
Quick Reference
# 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 --json
Workflow
- Start backend —
npx @kopai/app start - Set env vars —
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318andOTEL_SERVICE_NAME=<name> - Instrument app — install SDK + auto-instrumentation for your language (see rules below)
- Validate —
npx @kopai/cli traces search --service <name> --json. If empty: check endpoint/port, verify app is running and generating traffic, wait 10-30s and retry - Troubleshoot — if still no data, check rules in section 4 below
Quick Example (Node.js)
npm install @opentelemetry/sdk-node @opentelemetry/auto-instrumentations-node @opentelemetry/api
Create 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
Rules
1. Setup (CRITICAL)
setup-backend- Start Kopai Backendsetup-environment- Configure Environment
2. Language SDKs (HIGH)
lang-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++ Instrumentation
3. Validation (HIGH)
validate-traces- Validate Tracesvalidate-logs- Validate Logsvalidate-metrics- Validate Metrics
4. Troubleshooting (MEDIUM)
troubleshoot-no-data- No Data Receivedtroubleshoot-missing-spans- Missing Spanstroubleshoot-missing-attrs- Missing Attributestroubleshoot-wrong-port- Wrong Port
Read rules/<rule-name>.md for details.
References
- cli-reference - Kopai CLI command reference
- otel-docs - OpenTelemetry documentation links
- nextjs-examples - Next.js instrumentation examples
More from kopai-app/kopai-mono
root-cause-analysis
Analyze telemetry data for root cause analysis using Kopai CLI. Use when debugging errors, investigating latency issues, tracing request flows across services, or correlating logs with traces. Also use when users report production issues like "why is my API slow", "getting 500 errors", "service is down", "requests are timing out", or any symptom that needs telemetry-based investigation — even if they don't mention traces or observability explicitly.
23create-dashboard
Create observability dashboards from OTEL metrics, logs, and traces using Kopai. Use when building metric visualizations, monitoring views, KPI panels, or when the user wants to see their telemetry data in a dashboard — even if they don't say "dashboard" explicitly. Also use when other skills or workflows need to present telemetry data visually (e.g. after root cause analysis).
4