OpenTelemetry is the #2 most active CNCF project (after Kubernetes). Yet most developers still cobble together custom logging, metrics, and traces with incompatible tools.
Here's what most people miss: OpenTelemetry gives you a vendor-neutral, production-grade observability SDK — completely free, open-source, and backed by every major cloud provider.
What OpenTelemetry Actually Gives You (Free)
1. Unified Traces, Metrics & Logs
import { trace } from "@opentelemetry/api";
const tracer = trace.getTracer("my-service");
const span = tracer.startSpan("process-order");
span.setAttribute("order.id", orderId);
span.setAttribute("order.total", 149.99);
// ... your business logic
span.end();
One SDK. Three signals. Every backend.
2. Auto-Instrumentation (Zero Code Changes)
npm install @opentelemetry/auto-instrumentations-node
const { NodeSDK } = require("@opentelemetry/sdk-node");
const { getNodeAutoInstrumentations } = require("@opentelemetry/auto-instrumentations-node");
const sdk = new NodeSDK({
instrumentations: [getNodeAutoInstrumentations()],
});
sdk.start();
HTTP requests, database queries, gRPC calls — all traced automatically.
3. Export Anywhere
Send data to Jaeger, Zipkin, Grafana Tempo, Datadog, New Relic, or any OTLP-compatible backend:
const { OTLPTraceExporter } = require("@opentelemetry/exporter-trace-otlp-http");
const exporter = new OTLPTraceExporter({
url: "http://localhost:4318/v1/traces",
});
4. Context Propagation Across Services
Traces flow automatically across microservices — no manual correlation IDs:
Service A (span) → HTTP → Service B (child span) → gRPC → Service C (child span)
5. Collector Pipeline (Free)
The OpenTelemetry Collector acts as a proxy that receives, processes, and exports telemetry:
receivers:
otlp:
protocols:
grpc:
http:
processors:
batch:
memory_limiter:
limit_mib: 512
exporters:
jaeger:
endpoint: jaeger:14250
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch, memory_limiter]
exporters: [jaeger]
Why This Matters
| Before OpenTelemetry | After OpenTelemetry |
|---|---|
| Vendor lock-in | Export to any backend |
| Separate SDKs for traces/metrics/logs | One unified SDK |
| Manual instrumentation | Auto-instrumentation |
| Proprietary formats | Open standard (OTLP) |
| Costly rewrites to switch vendors | Change one config line |
Real-World Impact
A fintech startup I worked with was paying $3,000/month for Datadog. They switched to OpenTelemetry + Grafana stack (self-hosted) and cut observability costs to $200/month — while getting better trace coverage.
The key insight: OpenTelemetry separates instrumentation from backend. Instrument once, export anywhere, switch vendors in minutes.
Getting Started in 5 Minutes
npm install @opentelemetry/sdk-node \
@opentelemetry/auto-instrumentations-node \
@opentelemetry/exporter-trace-otlp-http
Add 10 lines of setup code, and every HTTP request, database query, and external call in your Node.js app is automatically traced.
Need help setting up observability for your infrastructure? I build custom monitoring and data pipeline solutions. Reach out at spinov001@gmail.com or check out my web scraping tools on Apify.
Top comments (0)