RousselTMLEARNING

TP · OpenObserve: del descubrimiento a la maestría

Práctica: recopilar trazas con el Collector de OpenTelemetry con corrección

La corrección está integrada en el TP (Ver los recuadros verdes)

Lo que vas a aprender en este TP
  • Configurar el exportador otlphttp
  • Generar trazas
  • Consultarlas

Introducción #

Lo que vas a aprender en esta sección
  • Configurar el exportador otlphttp
  • Generar trazas
  • Consultarlas

Contexto. Tus aplicaciones están instrumentadas con OpenTelemetry. Las haces pasar por un Collector, sin atarlas directamente a la plataforma.

Requisitos: la práctica anterior  ·  Duración estimada: 35 min

Un flujo de trazas de extremo a extremo.

Puesta en marcha #

Pasos guiados, con su corrección.

  1. 1. Configurar el Collector

    ¿Por qué? El exportador añade /v1/traces por sí mismo: indica solo la base.

    Escribe collector.yaml con el exportador otlphttp y la cabecera de autenticación.
    Ver la corrección
    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. Añadir el Collector a la pila

    ¿Por qué? La contraseña no debe escribirse en la configuración del Collector.

    Añade el servicio collector al Compose.
    Ver la corrección
    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. Generar trazas

    ¿Por qué? telemetrygen sustituye aquí a una aplicación instrumentada.

    Inicia la pila y envía 20 trazas al Collector.
    Ver la corrección
    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. Comprobar

    ¿Por qué? La cabecera stream-name ha elegido el flujo applis.

    Consulta el flujo de tipo traces y abre el menú Traces de la interfaz.
    Ver la corrección
    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

Nivel de dificultad : ●●○○○ (2/5)

Mi seguimiento

  • ⏱ Duración estimada : ≈ 35 min

Inicia sesión para seguir tu progreso y tomar notas. Iniciar sesión

💬 Hacer una pregunta

Artículos recomendados

Envoyer ses logs, métriques et traces vers OpenObserve

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

OpenTelemetry Collector : les Exporters (envoyer la télémétrie vers les backends)

Configurer les exporters du Collector OpenTelemetry : OTLP gRPC/HTTP, Prometheus, prometheusremot...

OpenObserve : architecture et concepts

Comprendre OpenObserve : stockage Parquet, modes de déploiement, rôles (router, ingester, querier...

Explorer ses données dans OpenObserve : SQL, PromQL et VRL

Chercher en SQL, interroger les métriques en PromQL, optimiser un flux (index, partitions, rétent...

Collector OpenTelemetry : connecteurs, extensions et observabilité du Collector

Aller plus loin avec le Collector : connecteurs (spanmetrics, servicegraph, count, routing, failo...

OpenTelemetry sur Kubernetes : Operator, auto-instrumentation et Collector

Déployer OpenTelemetry sur Kubernetes : modes de déploiement du Collector (DaemonSet, Deployment,...

OpenTelemetry Collector, Grafana Alloy et Bindplane : comparer trois approches des pipelines de télémétrie

Comparatif détaillé de trois façons de gérer des pipelines de télémétrie : l'OpenTelemetry Collec...

OpenTelemetry Collector : les Processors (transformer, filtrer et protéger la télémétrie)

Maîtriser les processors du Collector OpenTelemetry : batch, memory_limiter, attributes, resource...

Grafana Alloy vs OpenTelemetry Collector : Lequel choisir ?

Comparaison détaillée entre Grafana Alloy et l'OpenTelemetry Collector. Découvrez les avantages, ...

Apoyar

♥ APOYAR

Apoya RousselTM Learning

Los cursos, artículos, prácticas y certificados siguen siendo gratuitos y sin publicidad intrusiva. Una contribución libre, por el importe que elijas, financia el alojamiento, los entornos de prácticas y nuevos contenidos.

Contribuir con PayPal Importe libre · tarjeta o cuenta PayPalMás información
QR code PayPal
O escanea este código QR con tu teléfono

¡Gracias, cada contribución cuenta!