OpenTelemetry est la norme émergente pour l’observabilité des applications cloud-native, couvrant métriques, traces et logs. Grâce à ses SDK et au Collector, vous pouvez centraliser vos données dans des backends comme Prometheus, Jaeger ou Loki.
Prérequis
- Applications instrumentées (SDK OpenTelemetry pour Java, Go, Python…)
- OpenTelemetry Collector (agent et/ou gateway)
- Backend de stockage (Prometheus, Jaeger, Loki, Grafana Cloud)
Installation du Collector
1. Déploiement Kubernetes via Helm
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
helm repo update
helm install otel-collector open-telemetry/opentelemetry-collector --namespace observability --create-namespace --set config.receiver.otlp.protocols.grpc.endpoint=:4317 --set config.exporter.prometheus.endpoint=:8888
2. Configuration de base (values.yaml
)
config:
receivers:
otlp:
protocols:
grpc:
http:
processors:
batch:
exporters:
prometheus:
endpoint: "0.0.0.0:8888"
service:
pipelines:
metrics:
receivers: [otlp]
processors: [batch]
exporters: [prometheus]
Instrumentation des applications
Java
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk-extension-autoconfigure</artifactId>
<version>1.23.0</version>
</dependency>
java -javaagent:path/to/opentelemetry-javaagent.jar -Dotel.exporter.otlp.endpoint=otel-collector.observability.svc.cluster.local:4317 -jar app.jar
Python
pip install opentelemetry-sdk opentelemetry-exporter-otlp
from opentelemetry import trace
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
...
Export et visualisation
- Prometheus pour les métriques
- Grafana pour les dashboards
- Jaeger pour le traçage distribué
- Loki pour les logs
Bonnes pratiques
- Uniformisez les tags et métadonnées (service.name, version…)
- Séparez pipelines (métriques vs traces vs logs)
- Sécurisez les endpoints OTLP (mTLS, auth)
- Scaler le Collector selon la volumétrie
- Exporter vers des plateformes externes pour la rétention
Conclusion
En adoptant OpenTelemetry, vous mettez en place une observabilité unifiée, standardisée et extensible pour vos applications cloud-native, facilitant le diagnostic et l’amélioration continue.