Intégrer OpenTelemetry à Instana pour HAProxy
Vous pouvez utiliser la prise en charge d' OpenTelemetry, disponible sur HAProxy, avec IBM et Instana® Observability.
HAProxy Il s'agit d'un composant open source tiers. Le filtre « HAProxy » OpenTelemetry est géré par les communautés open source ou les éditeurs concernés. Instana® prend en charge l'ingestion des signaux « OpenTelemetry » émis par le filtre « HAProxy » OpenTelemetry, avec Instana, pour l'observabilité de la traçabilité distribuée. HAProxy La configuration, le code en amont et l'assistance générale ne relèvent pas du champ d'application de l'assistance proposée par Instana. Pour obtenir de la documentation et de l'aide sur l' HAProxy, consultez la documentation disponible à l'adresse HAProxy.
Systèmes d'exploitation pris en charge
Instana prend en charge l'intégration d' OpenTelemetry uniquement sur les systèmes d'exploitation Linux.
Prérequis
Pour intégrer OpenTelemetry à Instana, vous avez besoin des composants suivants :
- HAProxy version 3.4 ou ultérieure, compilée avec le filtre HAProxy OpenTelemetry
- Le filtre « HAProxy » ( OpenTelemetry
haproxy‑opentelemetry) a été compilé à partir de la bibliothèque « Wrapper » ( OpenTelemetry ) ( C ), version 2.2.0 ou ultérieure - Un compte « Observability » actif sur IBM Instana
Présentation
Le filtre « OpenTelemetry » génère des données de télémétrie à partir de HAProxy, et le collecteur « Instana Distribution of OpenTelemetry » ( IDOT ) transmet ces données à Instana.
Création d'un fichier « HAProxy » à l'aide du filtre « OpenTelemetry »
HAProxy n'inclut pas le filtre « OpenTelemetry » par défaut. Pour utiliser le traçage « OpenTelemetry », vous devez compiler HAProxy avec le filtre « HAProxy » OpenTelemetry (haproxy‑opentelemetry).
Pour obtenir des instructions détaillées sur la compilation et une référence complète concernant la création d'une image « Docker », consultez le fichier README de la commande « HAProxy » dans le dépôt d'exemples.
Configuration d' HAProxy avec OpenTelemetry
Le filtre HAProxy OTel utilise un modèle de configuration à deux fichiers :
| Fichier de configuration | Fonction |
|---|---|
OTel fichier de configuration (.cfg) |
Définit le modèle de télémétrie, notamment les paramètres d'instrumentation, les portées, les groupes, les intervalles, les attributs, les métriques et les enregistrements de journal. |
YAML fichier de configuration (.yml) |
Définit le pipeline du SDK d' OpenTelemetry, notamment les exportateurs, les échantillonneurs, les processeurs, les fournisseurs et le routage des signaux. |
Propagation du contexte de trace
Le filtre « HAProxy » OTel utilise la norme « W3C Trace Context » pour le traçage distribué. Il diffuse le contexte de trace à l'aide des en-têtes standard suivants d' HTTP :
traceparent: Contient l'identifiant de la trace, l'identifiant du segment parent et les indicateurs de trace
Le filtre ne prend pas en charge les en-têtes spécifiques à l' Instana pour la propagation des traces :
X-Instana-T(Identifiant de trace)X-Instana-S(Identifiant Span)X-Instana-L(Niveau d'échantillonnage ou décision)
Si un service en aval utilise la propagation des en-têtes native d' Instana, vous pouvez supprimer ces en-têtes dans la configuration d' HAProxy afin de forcer l'agent Instana du service en aval à fonctionner en mode « lecture seule traceparent » :
http-request del-header X-INSTANA-T
http-request del-header X-INSTANA-S
http-request del-header tracestate
Intégration du collecteur « OpenTelemetry »
Pour intégrer OpenTelemetry à Instana, utilisez la distribution IBM Instana du collecteur OpenTelemetry ( IDOT ).
IDOT Il s'agit d'une version entièrement gérée et préconfigurée du collecteur « OpenTelemetry » qui s'intègre de manière transparente à la plateforme d'observabilité « Instana ».
Pour obtenir des informations détaillées et des exemples sur la configuration de base d' HAProxy, consultez la page « HAProxy » ( OpenTelemetry tracing).
Pour configurer l'intégration avec le collecteur « OpenTelemetry », consultez la section « Configuration du collecteur « OpenTelemetry » ».
Corrélation d'infrastructure
L'attribut « resource service.name » de la configuration du fournisseur « YAML » sert à la corrélation avec l'infrastructure; il permet de relier les traces de votre application HAProxy aux entités de l'infrastructure sous-jacente (hôtes, conteneurs, pods « Kubernetes » et processus) surveillées par Instana.
Lorsque vous configurez service.name, Instana utilise ce nom de service pour effectuer les tâches suivantes :
- Mettre en corrélation les traces d' HAProxy s avec les indicateurs d'infrastructure (CPU, mémoire et réseau)
- Dépendances des services cartographiques et relations d'appel
- Activer la navigation bidirectionnelle entre les vues « application » et « infrastructure »
- Fournir un contexte complet pour l'analyse des causes profondes
Pour plus d'informations sur la corrélation des infrastructures et l'intégration d' OpenTelemetry, consultez les rubriques suivantes :
Identification des technologies
Par défaut, le SDK « OpenTelemetry » ( C++ ) définit telemetry.sdk.name sur opentelemetry. Instana utilise cet attribut pour identifier le type de technologie d'un service. Pour vous assurer qu’ Instana identifie correctement HAProxy, remplacez par telemetry.sdk.name en haproxy ajoutant un processeur de ressources à votre pipeline de collecte IDOT :
processors:
resource:
attributes:
- key: telemetry.sdk.name
value: haproxy
action: upsert