RousselTMLEARNING

TP · OpenObserve : de la découverte à l'expertise

TP : Collecter des traces avec le Collector OpenTelemetry avec correction

La correction est intégrée au TP (Voir les encadrés de couleur vert)

Ce que vous allez apprendre dans ce TP
  • Configurer l'exportateur otlphttp
  • Générer des traces
  • Les interroger

Introduction #

Ce que vous allez apprendre dans cette section
  • Configurer l'exportateur otlphttp
  • Générer des traces
  • Les interroger

Contexte. Vos applications sont instrumentées avec OpenTelemetry. Vous les faites passer par un Collector, sans les lier directement à la plateforme.

Prérequis : le TP précédent  ·  Durée estimée : 35 min

Un flux de traces de bout en bout.

Mise en place #

Étapes guidées, avec leur correction.

  1. 1. Configurer le Collector

    Pourquoi ? L'exportateur ajoute lui-même /v1/traces : indiquez seulement la base.

    Écrivez collector.yaml avec l'exportateur otlphttp et l'en-tête d'authentification.
    Voir la correction
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: 0.0.0.0:4317
          http:
            endpoint: 0.0.0.0:4318
    
    processors:
      batch:
    
    exporters:
      otlphttp/openobserve:
        endpoint: http://openobserve:5080/api/default
        headers:
          Authorization: "Basic ${env:O2_AUTH}"
          stream-name: applis
    
    service:
      pipelines:
        logs:
          receivers: [otlp]
          processors: [batch]
          exporters: [otlphttp/openobserve]
        metrics:
          receivers: [otlp]
          processors: [batch]
          exporters: [otlphttp/openobserve]
        traces:
          receivers: [otlp]
          processors: [batch]
          exporters: [otlphttp/openobserve]
  2. 2. Ajouter le Collector à la pile

    Pourquoi ? Le mot de passe ne doit pas être écrit dans la configuration du Collector.

    Ajoutez le service collector au Compose.
    Voir la correction
    services:
      openobserve:
        image: o2cr.ai/openobserve/openobserve:v1.1.2
        ports:
          - "5080:5080"
        environment:
          ZO_DATA_DIR: /data
          ZO_ROOT_USER_EMAIL: root@example.com
          ZO_ROOT_USER_PASSWORD: Complexpass#123
        volumes:
          - o2-data:/data
    
      collector:
        image: otel/opentelemetry-collector-contrib:latest
        command: ["--config=/etc/otelcol/config.yaml"]
        environment:
          O2_AUTH: ${O2_AUTH}
        volumes:
          - ./collector.yaml:/etc/otelcol/config.yaml:ro
        depends_on: [openobserve]
    
    volumes:
      o2-data:
  3. 3. Générer des traces

    Pourquoi ? telemetrygen remplace ici une application instrumentée.

    Démarrez la pile et envoyez 20 traces au Collector.
    Voir la correction
    export O2_AUTH=$(printf 'root@example.com:Complexpass#123' | base64)
    docker compose up -d
    docker run --rm --network "$(basename "$PWD")_default" \
      ghcr.io/open-telemetry/opentelemetry-collector-contrib/telemetrygen:latest \
      traces --otlp-insecure --otlp-endpoint=collector:4317 --traces 20 --service=paiement
  4. 4. Vérifier

    Pourquoi ? L'en-tête stream-name a choisi le flux applis.

    Interrogez le flux de type traces, puis ouvrez le menu Traces de l'interface.
    Voir la correction
    NOW=$(date +%s)
    curl -s -u 'root@example.com:Complexpass#123' -H 'Content-Type: application/json' \
      'http://localhost:5080/api/default/_search?type=traces' \
      -d "{\"query\":{\"sql\":\"SELECT service_name, operation_name, duration FROM applis\",
            \"start_time\":$(( (NOW-3600)*1000000 )),\"end_time\":$(( (NOW+60)*1000000 )),\"from\":0,\"size\":3}}" | jq .hits

Niveau de difficulté : ●●○○○ (2/5)

Mon suivi

  • ⏱ Durée estimée : ≈ 35 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

💬 Poser une question

Articles recommandés

Envoyer ses logs, métriques et traces vers OpenObserve

Les points de réception d'OpenObserve : JSON, bulk, OTLP avec le Collector OpenTelemetry, Prometh...

Corréler traces, métriques, logs et profils avec OpenTelemetry

Relier les quatre signaux pour diagnostiquer vite : ressource commune, trace_id dans les logs, ex...

Grafana Alloy : Guide complet pour collecter métriques, logs et traces

Tutoriel complet sur Grafana Alloy. Découvrez comment installer, configurer et utiliser ce collec...

Les profils, le quatrième signal d'OpenTelemetry : profilage continu et corrélation avec les traces

Comprendre le nouveau signal profile d'OpenTelemetry : profilage continu, flame graphs, modèle de...

OpenTelemetry et Dynatrace : OTLP, collecteur et instrumentation

Intégrer OpenTelemetry à Dynatrace : endpoint OTLP et jetons, Dynatrace OTel Collector, traces, m...

Relier traces et profils : span profiles avec Tempo et Pyroscope

Passer d'une trace lente au profil CPU exact de ce span : span profiles en Go et Java, configurat...

Grafana Alloy : Collecte et Transformation de Télémétrie

Apprenez à utiliser Grafana Alloy pour collecter, transformer et acheminer logs, métriques et tra...

APM Datadog et OpenTelemetry : traces, services et corrélation avec les logs

Instrumenter ses applications pour l'APM Datadog (dd-trace, instrumentation en une étape, OpenTel...

Collecter des logs vers Loki : Alloy, Promtail, Docker et OpenTelemetry

Envoyer des logs vers Loki : Grafana Alloy, Promtail, driver Docker, OTLP, bons labels, parsing e...

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !