• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Tracing distribué HAProxy avec OpenTelemetry

|View as Markdown (English)

Considérez HAProxy comme un saut connecté dans vos traces distribuées, et non plus comme une simple boîte noire entre les services. HAProxy 3,4 et les versions ultérieures incluent un filtre OpenTelemetry qui permet à votre équilibreur de charge de participer directement aux traces distribuées, afin que New Relic puisse cartographier automatiquement les relations de service entre vos applications, et l’entité HAProxy dans les cartes de service : aucune configuration manuelle n’est requise.

Cette page vous montre comment configurer le filtre OTel HAProxy, son exportateur, et le Collecteur Otel afin que les données de trace parviennent à New Relic. Pour découvrir comment le tracing fonctionne sous le capot (l’extraction, et la propagation du W3C Trace Context via HAProxy), consultez la section Comment ça marche ci-dessous.

Comment ça marche

Dans une configuration typique, le trafic circule comme suit :

Instrumented app (frontend) → HAProxy (with OTel filter) → Instrumented app (backend)
  1. L'application frontend envoie une requête avec un en-tête W3C traceparent.
  2. Le filtre OTel d’HAProxy extrait le contexte de trace, crée des spans couvrant le cycle de vie de la requête, et injecte le contexte de trace mis à jour dans la requête transférée au backend.
  3. L’application backend reçoit la requête avec le contexte de trace propagé et continue la trace.
  4. Le frontend, HAProxy, et le backend exportent leurs spans vers un OpenTelemetry Collector, qui les transmet à New Relic.

New Relic utilise ces spans connectés pour créer des relations CALLS :

  • Service frontend APPELLE l'entité HAProxy
  • Entité HAProxy CALLS Service backend

Ces relations sont visibles dans les cartes de services et l'expérience de cartes.

Avant de commencer

Le filtre OTel HAProxy fonctionne avec toute application qui prend en charge la propagation du W3C Trace Context, y compris :

  • Applications instrumentées par le SDK OpenTelemetry (tout langage)
  • Auto-instrumentation OpenTelemetry (Java, .NET, Python, Node.js)
  • Agents New Relic APM (Go, Java, .NET, Node.js, Python, Ruby, PHP) avec le tracing distribué activé

Vous pouvez combiner les approches d’instrumentation. Par exemple, un frontend du SDK OTel peut appeler via HAProxy un backend de l’agent New Relic APM, et la chaîne de relation s’affiche correctement dans New Relic.

Assurez-vous également d'avoir :

  • Clé de licenceNew Relic valide
  • HAProxy 3.4 ou version ultérieure avec le filtre OTel activé. Consultez le guide d’installation OTel HAProxy pour obtenir des instructions sur l’obtention d’une distribution prenant en charge le filtre OTel.
  • Collector OpenTelemetry (OTel Collector Contrib, ou NRDOT) s’exécutant sur le même hôte, ou accessible depuis l’hôte HAProxy
  • Applications instrumentées envoyant des requests via HAProxy, en utilisant l’une des approches d’instrumentation compatibles répertoriées ci-dessus
  • Accès réseau depuis le collecteur vers le point de terminaison OTLPde New Relic

Conseil

Ce guide configure à la fois la collecte de métriques et le tracing distribué dans un seul Collecteur Otel. Pour une configuration avancée des métriques ou un déploiement Kubernetes, consultez Monitorer HAProxy auto-hébergé et Monitorer HAProxy sur Kubernetes.

Configurer le tracing distribué

Conseil

Le pipeline de traces ci-dessous correspond à la même configuration standard que vous utiliseriez pour tout service participant au tracing distribué, et non à une configuration de relation manuelle. Une fois le tracing actif, New Relic détecte automatiquement les spans connectés, et crée des relations de service. Aucune configuration supplémentaire n’est nécessaire pour que les relations s’affichent.

Afficher les relations de vos services

Une fois que HAProxy et le collecteur sont en cours d’exécution, générez du trafic via vos applications instrumentées. Après quelques minutes, vérifiez que les données arrivent dans New Relic :

-- Verify HAProxy trace spans
FROM Span SELECT count(*)
WHERE service.name = 'YOUR_HAPROXY_SERVICE_NAME'
SINCE 10 minutes ago
-- Verify HAProxy metrics
FROM Metric SELECT count(*)
WHERE metricName LIKE 'haproxy.%'
SINCE 10 minutes ago

Une fois que les données de trace circulent, New Relic crée automatiquement des relations CALLS entre vos services et l’entité HAProxy. Les relations peuvent mettre jusqu’à 10 minutes à apparaître.

Suivez ces étapes pour afficher les relations :

  1. Allez à one.newrelic.com > All capabilities > All entities.
  2. Recherchez votre entité HAProxy ou l’un de vos services instrumentés.
  3. Sélectionnez une entité pour ouvrir sa page de résumé.
  4. Cliquez sur Service map pour voir le graphique des relations d’entité.

Vous devriez voir vos services frontend connectés à HAProxy, et HAProxy connecté à vos services backend :

[Frontend app] → CALLS → [HAProxy] → CALLS → [Backend app]

Vous pouvez également interroger les relations avec NRQL :

FROM Relationship SELECT *
WHERE source.entityName = 'YOUR_HAPROXY_SERVICE_NAME'
OR target.entityName = 'YOUR_HAPROXY_SERVICE_NAME'
SINCE 1 day ago

Dépannage

Prochaines étapes

Droits d'auteur © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.