Skip to content
_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
References Technologies Blog Know-how Tools
About Collaboration Careers
CS EN DE
Let's talk

How to Deploy OpenTelemetry in Kubernetes

04. 09. 2025 Updated: 27. 03. 2026 1 min read intermediate

How to Deploy OpenTelemetry in Kubernetes

OpenTelemetry (OTel) is an open-source standard for observability — traces, metrics and logs from a single SDK. Here is a guide on how to deploy it in Kubernetes.

Prerequisites

  • Kubernetes cluster (1.26+)
  • kubectl + helm
  • Grafana stack (Tempo, Mimir, Loki) or another backend

Step 1: Install OTel Collector

helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
helm install otel-collector open-telemetry/opentelemetry-collector \
  --namespace observability \
  --create-namespace \
  -f values.yaml

Step 2: Configure the Collector

# values.yaml
mode: deployment
config:
  receivers:
    otlp:
      protocols:
        grpc:
          endpoint: 0.0.0.0:4317
        http:
          endpoint: 0.0.0.0:4318
  processors:
    batch:
      timeout: 5s
      send_batch_size: 1000
  exporters:
    otlp/tempo:
      endpoint: tempo.observability:4317
      tls:
        insecure: true
  service:
    pipelines:
      traces:
        receivers: [otlp]
        processors: [batch]
        exporters: [otlp/tempo]

Step 3: Instrument Your Application

For Python:

from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter

provider = TracerProvider()
exporter = OTLPSpanExporter(endpoint="otel-collector.observability:4317")
provider.add_span_processor(BatchSpanProcessor(exporter))
trace.set_tracer_provider(provider)

Step 4: Verification

kubectl port-forward svc/grafana 3000:3000 -n observability
# Open Grafana → Explore → Tempo → search for traces

Tips

  • Sampling: For production, set up tail-based sampling (1-10% traces)
  • Resource detection: Add k8s resource detector for automatic labels
  • Cost: OTel is free, but backend storage costs money — plan your retention

Conclusion

OpenTelemetry is the future of observability. Instrument once, change the backend anytime.

opentelemetrykubernetesmonitoringtracesmetriky
Share:

CORE SYSTEMS team

We build core systems and AI agents that keep operations running. 15 years of experience with enterprise IT.