OpenTelemetry: One Standard for Traces, Metrics, and Logs
OpenTelemetry (OTel) is the CNCF standard for observability. Instrument once, export to any backend — Jaeger, Prometheus, Grafana, Datadog, New Relic. No vendor lock-in.
Why OpenTelemetry
- One SDK for traces + metrics + logs
- Auto-instrumentation for 20+ languages
- Vendor-neutral — switch backends without code changes
- CNCF graduated project (same level as K8s)
The Free API
Python Auto-Instrumentation
pip install opentelemetry-distro opentelemetry-exporter-otlp
opentelemetry-bootstrap -a install
# Run any Python app with auto-instrumentation
opentelemetry-instrument \
--service_name my-api \
--exporter_otlp_endpoint http://localhost:4317 \
python app.py
Manual Instrumentation
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
provider = TracerProvider()
provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))
trace.set_tracer_provider(provider)
tracer = trace.get_tracer("my-app")
with tracer.start_as_current_span("process-order") as span:
span.set_attribute("order.id", "12345")
span.set_attribute("order.amount", 99.99)
# Your code here
with tracer.start_as_current_span("validate-payment"):
pass # Child span
Collector Config
receivers:
otlp:
protocols:
grpc: { endpoint: 0.0.0.0:4317 }
http: { endpoint: 0.0.0.0:4318 }
processors:
batch: { timeout: 5s }
exporters:
jaeger: { endpoint: jaeger:14250 }
prometheus: { endpoint: 0.0.0.0:8889 }
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [jaeger]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [prometheus]
Real-World Use Case
A company used Datadog for tracing and Prometheus for metrics. Different SDKs, different configs, $40K/year. OTel migration: one SDK, export to self-hosted Jaeger + Prometheus. Same visibility, 70% cost reduction.
Quick Start
docker run -p 4317:4317 -p 4318:4318 otel/opentelemetry-collector:latest
Resources
Need observability data automation? Check out my tools on Apify or email spinov001@gmail.com.
Top comments (0)