Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi.

Commencer avec Open Telemetry

Voici la configuration que nous allons créer, pour une application qui doit être surveillée :

  • L’application / charge de travail surveillée s’exécutant sur un hôte Linux

  • Le collecteur Open Telemetry s’exécutant sur le même hôte Linux

  • SUSE Observability ou SUSE Cloud Observability

Instrumentation de l’application sur un hôte Linux avec le collecteur Open Telemetry s’exécutant sur l’hôte

Installer le collecteur Open Telemetry

Pour une configuration de production, il est fortement recommandé d’installer le collecteur, car il permet à votre service de décharger rapidement les données et le collecteur peut prendre en charge des tâches supplémentaires telles que la gestion des réessais, le traitement en lots, le chiffrement ou encore le filtrage des données sensibles.

Tout d’abord, nous allons installer le collecteur. Nous le configurons pour :

  • Recevoir des données de, potentiellement, de nombreuses applications instrumentées

  • Enrichir les données collectées avec des attributs d’hôte

  • Générer des métriques pour les traces

  • Transmettre les données à SUSE Observability, y compris l’authentification à l’aide de la clé API

De plus, il tentera également de renvoyer les données en cas de problèmes de connexion.

Créer un jeton de service

Il existe deux façons de créer un jeton de service :

  • SUSE Observability UI - ouvrez le menu principal en cliquant en haut à gauche de l’écran et allez à StackPacks > Open Telemetry. Si vous ne l’avez pas encore fait, cliquez sur le bouton INSTALL. Cliquez sur le bouton CREATE NEW SERVICE TOKEN et copiez la valeur dans votre presse-papiers.

  • SUSE Observability CLI - voir Gérer les jetons de service

La valeur du jeton de service doit être utilisée là où les instructions ci-dessous mentionnent <SERVICE_TOKEN>.

Installer et configurer le collecteur

Le collecteur fournit des paquets (apk, deb et rpm) pour la plupart des versions et architectures Linux et utilise systemd pour la configuration automatique du service. Pour l’installer, trouvez la dernière version sur Github et mettez à jour l’URL dans l’exemple pour utiliser la dernière version :

  • DEB AMD64

  • DEB ARM64

  • RPM AMD64

  • RPM ARM64

wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.123.1/otelcol-contrib_0.123.1_linux_amd64.deb
sudo dpkg -i otelcol-contrib_0.123.1_linux_amd64.deb
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.123.1/otelcol-contrib_0.123.1_linux_arm64.deb
sudo dpkg -i otelcol-contrib_0.123.1_linux_arm64.deb
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.123.1/otelcol-contrib_0.123.1_linux_amd64.rpm
sudo rpm -iv1 otelcol-contrib_0.123.1_linux_amd64.rpm
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.123.1/otelcol-contrib_0.123.1_linux_arm64.rpm
sudo rpm -iv1 otelcol-contrib_0.123.1_linux_arm64.rpm

Pour d’autres options d’installation, utilisez les instructions Open Telemetry.

Après l’installation, modifiez la configuration du collecteur en éditant /etc/otelcol-contrib/config.yaml. Modifiez le fichier de manière à ce qu’il ressemble à l’exemple config.yaml ici, remplacez <otlp-suse-observability-endpoint:port> par votre point de terminaison OTLP (voir API OTLP pour votre point de terminaison) et insérez votre jeton de service pour <SERVICE_TOKEN> :

config.yaml
receivers:
  otlp:
    protocols:
      # Only bind to localhost to keep the collector secure, see https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/security-best-practices.md#safeguards-against-denial-of-service-attacks
      grpc:
        endpoint: 127.0.0.1:4317
      http:
        endpoint: 127.0.0.1:4318
  # Collect own metrics
  prometheus:
    config:
      scrape_configs:
      - job_name: 'otel-collector'
        scrape_interval: 10s
        static_configs:
        - targets: ['0.0.0.0:8888']
extensions:
  health_check: {}
  pprof:
    endpoint: 0.0.0.0:1777
  zpages:
    endpoint: 0.0.0.0:55679
  # Use the API key from the env for authentication
  bearertokenauth:
    scheme: SUSEObservability
    token: "<SERVICE_TOKEN>"
exporters:
  nop: {}
  debug: {}
  otlp/suse-observability:
    compression: snappy
    auth:
      authenticator: bearertokenauth
    # Put in your own otlp endpoint, for example otlp-suse-observability.my.company.com:443
    endpoint: <otlp-suse-observability-endpoint:port>
processors:
  memory_limiter:
    check_interval: 5s
    limit_percentage: 80
    spike_limit_percentage: 25
  batch: {}
  # Optionally include resource information from the system running the collector
  resourcedetection/system:
    detectors: [env, system] # Replace system with gcp, ec2, azure when running in cloud environments
    system:
      hostname_sources: ["os"]
connectors:
  # Generate metrics for spans
  spanmetrics:
    metrics_expiration: 5m
    namespace: otel_span
service:
  extensions: [ bearertokenauth, health_check, pprof, zpages ]
  pipelines:
    traces:
      receivers: [otlp]
      processors: [memory_limiter, resourcedetection/system, batch]
      exporters: [debug, spanmetrics, otlp/suse-observability]
    metrics:
      receivers: [otlp, spanmetrics, prometheus]
      processors: [memory_limiter, batch, resourcedetection/system]
      exporters: [debug, otlp/suse-observability]
    logs:
      receivers: [otlp]
      processors: []
      exporters: [nop]

Enfin, redémarrez le collecteur :

sudo systemctl restart otelcol-contrib

Pour voir les journaux du collecteur, utilisez :

sudo journalctl -u otelcol-contrib

Collectez des données de télémétrie de votre application

La manière courante de collecter des données de télémétrie est d’instrumenter votre application en utilisant les SDK Open Telemetry. Nous avons documenté quelques guides de démarrage rapide pour quelques langages, mais il y en a beaucoup d’autres :

Aucune configuration supplémentaire n’est nécessaire pour les SDK, ils exportent vers l’hôte local via OTLP ou OTLP sur HTTP (selon les protocoles pris en charge) par défaut.

Pour d’autres langages, suivez la documentation sur opentelemetry.io.

Consultez les résultats

Allez sur SUSE Observability et assurez-vous que le Stackpack Open Telemetry est installé (via le menu principal -> Stackpacks).

Après un court instant, si votre application traite du trafic, vous devriez pouvoir la retrouver sous son nom de service dans les sections Open Telemetry -> services et instances de service. Les traces apparaîtront dans le explorateur de traces et dans la perspective de traces pour les composants de service et d’instance de service. Les métriques de span et les métriques spécifiques au langage (si disponibles) seront accessibles dans la perspective des métriques pour les composants.

Étapes suivantes

Vous pouvez ajouter de nouveaux graphiques aux composants, par exemple, le service ou l’instance de service, pour votre application, en suivant notre guide. Il est également possible de créer nouveaux moniteurs en utilisant les métriques et de configurer des notifications pour être averti lorsque votre application n’est pas disponible ou rencontre des problèmes de performance.