Configurer le SDK OpenTelemetry
Suivez les instructions de la documentation OpenTelemetry pour configurer le SDK pour votre langage. Vous devez configurer le SDK OpenTelemetry pour exporter les données vers l’AppSignal collector. L’AppSignal collector s’attend à recevoir des données envoyées au format du protocole OTLP via HTTP. Il est souvent nécessaire d’installer un paquet OpenTelemetry supplémentaire pour exporter dans un format spécifique. L’AppSignal collector ne prend actuellement pas en charge les données de log, il est donc recommandé de désactiver l’exportateur de logs pour faire taire les erreurs d’exportation. Par défaut, l’AppSignal collector écoute sur le port8099. Les exportateurs OpenTelemetry doivent être configurés pour envoyer des données à ces endpoints sur le collector :
- Traces :
http://localhost:8099/v1/traces - Metrics :
http://localhost:8099/v1/metrics - Logs :
http://localhost:8099/v1/logs
/v1/traces pour les traces, /v1/metrics pour les métriques et /v1/logs pour les logs, vous n’avez donc qu’à spécifier localhost:8099 comme endpoint. Cependant, pour certains langages, il peut être nécessaire de spécifier le chemin entier.
Si vous exécutez l’AppSignal collector sur un autre hôte, remplacez localhost par l’adresse de votre AppSignal collector.
Configurer la ressource OpenTelemetry
L’AppSignal collector requiert que certains attributs soient présents dans la ressource OpenTelemetry. Configurez la ressource OpenTelemetry avec le SDK en lui ajoutant les attributs requis suivants :appsignal.config.name: le nom de l’application dans AppSignal.appsignal.config.environment: l’environnement de l’application dans AppSignal.appsignal.config.push_api_key: la clé Push API à utiliser pour envoyer des données à AppSignal. Cela peut être la même clé Push API que celle configurée lors de l’installation de l’AppSignal collector.appsignal.config.revision: créez automatiquement des déploiements dans AppSignal en spécifiant la révision de l’application.appsignal.config.language_integration: définissez le nom du langage de programmation. Cela nous aide à reconnaître le langage de programmation utilisé et à améliorer la façon dont nos serveurs interprètent les données. Exemples de valeurs : « python », « rust », « ruby », « elixir », « go », « node.js ».service.name: le nom du service. Voir ci-dessous pour plus de détails.host.name: le nom de l’hôte.
Choisir un nom de service
Choisissez un nom de service pour votre application qui rend chaque composant ou service facilement reconnaissable. Ce nom de service sera utilisé pour regrouper les namespaces par service. Les namespaces résultants sont formatés comme ceci :<nom du service>/<namespace>
Si le nom du service est « My service name » et le namespace est « admin », le namespace résultant sur AppSignal.com devient : « My service namespace/admin »
L’important dans le choix du nom est qu’il ait du sens pour vous et votre équipe. Un nom de service peut être le nom de l’application, son objectif ou le nom du framework utilisé.