best practices6 min de lecture

Observabilité et monitoring des applications sur Kubernetes

SFEIR Institute

Points clés

  • 'L''observabilité repose sur trois piliers: métriques, logs et traces'
  • Prometheus + Grafana dominent avec 75% d'adoption
  • Instrumentez dès le développement, pas en production

L'observabilité et monitoring des applications sur Kubernetes représente un enjeu critique pour tout ingénieur opérations Cloud. Sans visibilité sur les métriques, logs et traces, diagnostiquer un incident en production devient un exercice de devinette coûteux. Ce guide détaille les pratiques essentielles pour instrumenter vos applications Kubernetes avec Prometheus, Grafana et les standards OpenTelemetry.

TL;DR : L'observabilité Kubernetes repose sur trois piliers : métriques (Prometheus), logs (Loki/EFK) et traces (Jaeger/Tempo). Prometheus + Grafana domine avec 75% d'adoption. Instrumentez dès le développement, pas en production.

Cette compétence est au cœur de la formation LFD459 Kubernetes pour les développeurs d'applications.

Qu'est-ce que l'observabilité et monitoring des applications sur Kubernetes ?

L'observabilité est la capacité à comprendre l'état interne d'un système à partir de ses sorties externes. Sur Kubernetes, cela englobe métriques, logs et traces distribuées.

Le monitoring est la collecte et l'analyse de données pour détecter les anomalies. L'observabilité va plus loin : elle permet d'investiguer des problèmes inconnus.

ConceptDéfinitionOutils Kubernetes
MétriquesValeurs numériques horodatéesPrometheus, Datadog
LogsEnregistrements textuels d'événementsLoki, Elasticsearch
TracesSuivi des requêtes à travers les servicesJaeger, Tempo

Selon Grafana Labs, 75% des organisations utilisent Prometheus + Grafana pour le monitoring Kubernetes.

À retenir : Les trois piliers (métriques, logs, traces) sont complémentaires. Les métriques détectent, les logs expliquent, les traces localisent.

Pourquoi l'observabilité et monitoring des applications sur Kubernetes est-elle critique ?

Kubernetes orchestre des centaines de conteneurs éphémères. Sans observabilité structurée, identifier la cause racine d'un incident devient impossible.

Défis spécifiques à Kubernetes :

  • Éphémérité des pods : un pod crashé disparaît avec ses logs locaux
  • Networking complexe : Services, Ingress, NetworkPolicies obscurcissent le flux
  • Scaling dynamique : le nombre d'instances change constamment

La complexité croissante des workloads exige une observabilité mature. Pour approfondir le développement applications Kubernetes, l'instrumentation est un prérequis.

Comment configurer Prometheus pour le monitoring Kubernetes ?

Prometheus est le standard de facto pour la collecte de métriques Kubernetes. Son modèle pull scrape les endpoints /metrics des applications.

Installation avec Helm

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/kube-prometheus-stack \
  --namespace monitoring \
  --create-namespace

Configuration du ServiceMonitor

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: app-monitor
  namespace: monitoring
spec:
  selector:
    matchLabels:
      app: my-application
  endpoints:
  - port: metrics
    interval: 30s
    path: /metrics

Métriques essentielles à collecter :

  • container_cpu_usage_seconds_total : consommation CPU
  • container_memory_usage_bytes : utilisation mémoire
  • kube_pod_status_phase : état des pods
  • http_requests_total : requêtes applicatives
À retenir : Configurez des ServiceMonitors plutôt que des configurations statiques. Prometheus découvre automatiquement les nouveaux pods.

Pour gérer correctement les configurations, maîtrisez les ConfigMaps et Secrets Kubernetes.

Quels dashboards Grafana pour un ingénieur opérations Cloud ?

Grafana visualise les métriques Prometheus via des dashboards interactifs. L'ingénieur opérations Cloud configure des vues adaptées aux workloads.

Dashboard essentiels

DashboardID GrafanaUsage
Kubernetes Cluster315Vue globale cluster
Node Exporter1860Métriques système
Nginx Ingress9614Trafic entrant
Application REDCustomLatence, erreurs, débit

Exemple de panel PromQL

# Taux d'erreurs HTTP 5xx par service
sum(rate(http_requests_total{status=~"5.."}[5m])) by (service)
/
sum(rate(http_requests_total[5m])) by (service)
* 100

Bonnes pratiques dashboards :

  • Structurez par niveau : cluster → namespace → deployment → pod
  • Utilisez des variables : $namespace, $deployment pour filtrer
  • Définissez des seuils : rouge > 80% CPU, orange > 60%

L'administration cluster Kubernetes requiert des dashboards orientés infrastructure, tandis que les développeurs se concentrent sur les métriques applicatives.

Comment implémenter les métriques, logs et traces Kubernetes ?

Les trois piliers de l'observabilité s'implémentent différemment mais doivent être corrélés.

Métriques applicatives avec Prometheus client

from prometheus_client import Counter, Histogram, start_http_server

REQUEST_COUNT = Counter('http_requests_total', 'Total HTTP requests', ['method', 'endpoint', 'status'])
REQUEST_LATENCY = Histogram('http_request_duration_seconds', 'HTTP request latency', ['endpoint'])

@REQUEST_LATENCY.labels(endpoint='/api/users').time()
def get_users():
    REQUEST_COUNT.labels(method='GET', endpoint='/api/users', status='200').inc()
    # logique métier

Logs structurés avec labels Kubernetes

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: my-app
    version: v1.2.3
spec:
  containers:
  - name: app
    env:
    - name: LOG_FORMAT
      value: "json"
    - name: LOG_LEVEL
      value: "info"

Format de log recommandé (JSON) :

{
  "timestamp": "2026-02-28T10:30:00Z",
  "level": "error",
  "service": "payment-api",
  "trace_id": "abc123",
  "message": "Payment failed",
  "error_code": "INSUFFICIENT_FUNDS"
}

Traces distribuées avec OpenTelemetry

apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      containers:
      - name: app
        env:
        - name: OTEL_EXPORTER_OTLP_ENDPOINT
          value: "http://otel-collector:4317"
        - name: OTEL_SERVICE_NAME
          value: "payment-service"
À retenir : Corrélation obligatoire. Incluez le trace_id dans chaque log pour relier métriques, logs et traces.

Quelles alertes configurer pour Prometheus Grafana Kubernetes monitoring ?

Les alertes transforment le monitoring passif en détection proactive. Configurez des AlertRules Prometheus pour les scénarios critiques.

Alertes essentielles

apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  name: application-alerts
spec:
  groups:
  - name: application
    rules:
    - alert: HighErrorRate
      expr: |
        sum(rate(http_requests_total{status=~"5.."}[5m])) by (service)
        / sum(rate(http_requests_total[5m])) by (service) > 0.05
      for: 5m
      labels:
        severity: critical
      annotations:
        summary: "Taux d'erreurs > 5% sur {{ $labels.service }}"
    
    - alert: PodCrashLooping
      expr: increase(kube_pod_container_status_restarts_total[1h]) > 5
      for: 10m
      labels:
        severity: warning
      annotations:
        summary: "Pod {{ $labels.pod }} redémarre fréquemment"

Matrice de sévérité :

SévéritéTemps de réponseExemple
Critical< 15 minService down, erreurs > 10%
Warning< 1hLatence élevée, restarts
InfoProchain jour ouvréCertificat expire dans 30j

Pour diagnostiquer les alertes, consultez le guide résoudre les erreurs de déploiement Kubernetes.

Comment intégrer l'observabilité dans un pipeline CI/CD ?

L'observabilité s'intègre dès le développement, pas uniquement en production. Les pipelines CI/CD pour applications Kubernetes incluent des gates de qualité basées sur les métriques.

Validation des métriques en staging

# .gitlab-ci.yml
deploy-staging:
  script:
    - kubectl apply -f k8s/
    - sleep 60  # warm-up
    - |
      ERROR_RATE=$(curl -s "prometheus:9090/api/v1/query?query=..." | jq '.data.result[0].value[1]')
      if (( $(echo "$ERROR_RATE > 0.01" | bc -l) )); then
        echo "Error rate too high: $ERROR_RATE"
        kubectl rollout undo deployment/app
        exit 1
      fi

Checks automatisés :

  • Taux d'erreurs < 1% après déploiement
  • Latence p99 < seuil défini
  • Pas de OOMKilled dans les 5 premières minutes
  • Readiness probes passent

Selon Chris Aniszczyk, CTO de la CNCF : "Kubernetes is no longer experimental but foundational. Soon, it will be essential to AI as well."

Quels outils choisir pour l'observabilité Kubernetes en 2026 ?

Le choix dépend de la taille de l'organisation et des contraintes (cloud, on-premise, budget).

CritèreStack OSSStack Commerciale
MétriquesPrometheusDatadog, New Relic
LogsLokiSplunk, Elastic Cloud
TracesJaeger/TempoDynatrace, Honeycomb
CoûtInfra uniquementLicense + volume
MaintenanceÉquipe interneManagé

Recommandation par contexte :

  • Startup / PME : Prometheus + Grafana + Loki (stack LGTM)
  • Enterprise on-premise : Elastic Stack ou Splunk
  • Cloud-native managé : Datadog ou service cloud natif (CloudWatch, Stackdriver)

La formation LFD459 couvre l'instrumentation applicative indépendamment de la stack choisie.

À retenir : OpenTelemetry est le standard émergent. Il unifie la collecte de métriques, logs et traces avec un SDK unique.

Comment mesurer le ROI de l'observabilité Kubernetes ?

L'investissement en observabilité se mesure en réduction du temps de résolution (MTTR) et en prévention d'incidents.

Métriques de ROI :

  • MTTR : temps moyen de résolution (cible < 30 min)
  • MTTD : temps moyen de détection (cible < 5 min)
  • Fréquence d'incidents : réduction grâce à la détection proactive
  • Coût d'indisponibilité évité : revenus préservés

Avec 71 % des entreprises Fortune 100 exécutant Kubernetes en production, l'observabilité n'est plus optionnelle.

La formation développement applications Kubernetes à Paris inclut des exercices pratiques d'instrumentation.

Passez à l'action : instrumentez vos applications Kubernetes

Maîtrisez l'observabilité avec les formations SFEIR Institute.

Formations recommandées :

Contactez nos conseillers pour construire votre parcours d'apprentissage Kubernetes.