Cette page fournit une référence complète de toutes les métriques HAProxy collectées via OpenTelemetry, y compris les chemins du haproxyreceiver et du récepteur Prometheus.
Présentation
L’intégration HAProxy OpenTelemetry collecte des métriques à partir du point de terminaison de statistiques CSV HAProxy via le haproxyreceiver. Les métriques sont organisées en deux niveaux :
- Métriques par défaut (17): collectées automatiquement avec la configuration par défaut — suffisantes pour la plupart des cas d’utilisation de monitoring
- Métriques optionnelles (16): désactivées par défaut, activées individuellement dans la section
metricsdu récepteur — utiles pour le débogage détaillé et la planification de la capacité
Lors de l’utilisation de l’installation guidée NRDOT, vous pouvez choisir entre deux configurations :
- Optimisé (ingestion plus faible) : 17 métriques par défaut, intervalle de collecte de 60 s, processeurs d'optimisation appliqués
- Complet (détails complets) : 27 métriques (17 par défaut + 10 facultatives), intervalle de collecte de 15 s
Conseil
Pour activer les métriques facultatives, ajoutez-les à la section metrics de votre configuration de Récepteur haproxy avec enabled: true. Consultez Monitorer HAProxy auto-hébergé avec OpenTelemetry pour les détails de configuration.
Métriques par défaut
Ces 17 métriques sont collectées avec la configuration par défaut (aucune section metrics n’est nécessaire).
Nom métrique | Description | Type | Unité |
|---|---|---|---|
| Total des octets reçus par le proxy (collectés par frontend, backend et serveur) | Somme (cumulative) | Par |
| Nombre total d'octets envoyés par le proxy (collectés par frontend, backend et serveur) | Somme (cumulative) | Par |
| Nombre total d'erreurs de connexion (backend et serveur uniquement) | Somme (cumulative) | {errors} |
| Nombre de connexions par seconde au cours de la dernière seconde écoulée (frontend uniquement) | Jauge | {connections}/s |
| Nombre total de tentatives de connexion (backend et serveur uniquement) | Somme (cumulative) | {retries} |
| Nombre total de requests refusées (frontend et backend) | Somme (cumulative) | {requests} |
| Nombre total d'erreurs de request (frontend uniquement) | Somme (cumulative) | {errors} |
| Nombre actuel de requests en file d’attente (backend et serveur uniquement) | Jauge | {requests} |
| Nombre de requests HTTP par seconde au cours de la dernière seconde écoulée (frontend uniquement) | Jauge | {requests}/s |
| Nombre total de redistributions de requests (backend et serveur uniquement) | Somme (cumulative) | {requests} |
| Nombre total de requests HTTP reçues (frontend et backend) | Somme (cumulative) | {requests} |
| Nombre total de réponses refusées (frontend, backend et serveur) | Somme (cumulative) | {responses} |
| Nombre total d'erreurs de réponse (backend et serveur uniquement) | Somme (cumulative) | {errors} |
| Nombre total de fois où un serveur a été sélectionné pour l'équilibrage de charge (backend et serveur) | Somme (cumulative) | {selections} |
| Temps de session total moyen sur les 1024 dernières requests, en secondes (backend et serveur) | Jauge | s |
| Nombre actuel de sessions actives (frontend, backend et serveur) | Jauge | {sessions} |
| Nombre de sessions par seconde au cours de la dernière seconde écoulée (frontend, backend et serveur) | Jauge | {sessions}/s |
Métriques facultatives
Ces 16 métriques sont désactivées par défaut. Activez-les individuellement dans la configuration de votre collecteur en définissant enabled: true dans la section metrics du récepteur.
La configuration complète NRDOT active les 10 premiers d'entre eux (marqués d'un [C]).
Nom métrique | Description | Type | Unité |
|---|---|---|---|
[C] | Temps de connexion moyen en secondes (monitoring de latence) | Jauge | s |
[C] | Temps d’attente moyen pour les requests en secondes | Jauge | s |
[C] | Temps de réponse moyen en secondes | Jauge | s |
[C] | Nombre de serveurs actifs dans un backend | Jauge | {servers} |
[C] | Nombre de serveurs de sauvegarde dans un backend | Jauge | {servers} |
[C] | Temps d’arrêt total en secondes | Somme (cumulative) | s |
[C] | Nombre total de contrôles d'intégrité ayant échoué | Somme (cumulative) | {checks} |
[C] | Poids du serveur (utilisé dans les décisions d'équilibrage de charge) | Jauge | {weight} |
[C] | Nombre total cumulé de sessions | Somme (cumulative) | {sessions} |
[C] | Nombre total cumulé de connexions | Somme (cumulative) | {connections} |
| Nombre total d'octets soumis au compresseur | Somme (cumulative) | Par |
| Nombre total d'octets émis par le compresseur | Somme (cumulative) | Par |
| Nombre total d'octets ayant contourné la compression | Somme (cumulative) | Par |
| Nombre total de réponses HTTP ayant été compressées | Somme (cumulative) | {responses} |
| Nombre total de transferts de données abandonnés par le client | Somme (cumulative) | {cancellations} |
| Limite de session configurée pour le proxy | Jauge | {sessions} |
Attributs de ressource
Les attributs de ressource suivants sont attachés à toutes les métriques HAProxy, fournissant un contexte pour le filtrage et le regroupement.
Attribut | Description | Exemple de valeur |
|---|---|---|
| Nom du proxy HAProxy (à partir du nom de la section frontend/backend/listen dans haproxy.cfg) |
,
,
|
| Identifiant de type ou nom de serveur :
pour les agrégats frontend,
pour les agrégats backend, ou le nom de serveur spécifique pour les métriques par serveur |
,
,
,
|
| L'URL du point de terminaison de statistiques qui a été collectée (utilisée comme partie de l'identifiant d'entité) |
|
| Identifiant unique de l'hôte (à partir de
sur Linux) |
|
| Nom d’hôte de la machine exécutant le collecteur |
|
| Type de système d’exploitation |
|
Identifiant d'entité : l'entité HAProxy dans New Relic est synthétisée à partir de host.id + haproxy.addr (par exemple ec23da5ead46571f2c3a9771b093658b:http://localhost:8404/stats).
Modélisation de la métrique Prometheus
Si vous utilisez le chemin du récepteur Prometheus, le tableau suivant montre comment les noms de métrique HAProxy Prometheus correspondent aux équivalents OTel haproxyreceiver. Chaque métrique OTel peut avoir plusieurs sources Prometheus (une par niveau : frontend, backend, serveur).
Métrique OTel | Frontend Prometheus | Backend Prometheus | Serveur Prometheus |
|---|---|---|---|
|
|
|
|
|
|
|
|
| — |
|
|
|
| — | — |
| — |
|
|
|
|
| — |
|
| — | — |
| — |
|
|
|
| — | — |
| — |
|
|
|
|
| — |
|
|
|
|
| — |
|
|
| — |
|
|
| — |
|
|
|
|
|
|
|
|
|
|
Important
Limites connues du chemin Prometheus :
- Aucune FACET par code d'état: le haproxyreceiver analyse les champs CSV
hrsp_*en un attributstatus_codesurhaproxy.requests.total. Le chemin Prometheus ne prend pas cela en charge — la répartition des codes de réponse HTTP est disponible uniquement sous forme de métriques distinctes (haproxy_frontend_http_responses_total{code="2xx"}) non incluses dans la configuration de transformation. - Les métriques de taux sont des maximums à vie:
haproxy.connections.ratecorrespond àhaproxy_frontend_connections_rate_maxethaproxy.requests.ratecorrespond àhaproxy_frontend_http_requests_rate_max. Ce sont des valeurs maximales à vie, pas des taux instantanés. Pour les taux actuels réels, utilisez la fonction NRQLrate()sur les métriques de compteur cumulatif. - -136 métriques Prometheus n'ont pas d'équivalent OTel: le point de terminaison Prometheus de HAProxy expose -204 métriques. Seules 36 sont mappées aux 17 métriques OTel par défaut (sur les niveaux frontend/backend/serveur). Le reste (éléments internes du processus, détails des vérifications d'état, statistiques du résolveur DNS) n'a pas d'équivalent haproxyreceiver.
Exemples de requêtes NRQL
Utilisez ces requêtes pour explorer vos métriques HAProxy dans New Relic :
-- Current sessions across all frontendsFROM Metric SELECT latest(haproxy.sessions.count)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'FRONTEND'
-- Request rate per frontend over timeFROM Metric SELECT average(haproxy.requests.rate)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'FRONTEND'TIMESERIES
-- Backend error rate (responses.errors as rate)FROM Metric SELECT rate(sum(haproxy.responses.errors), 1 second)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'BACKEND'TIMESERIES
-- Bytes throughput per backendFROM Metric SELECT rate(sum(haproxy.bytes.input), 1 minute) AS 'Bytes In/min', rate(sum(haproxy.bytes.output), 1 minute) AS 'Bytes Out/min'FACET haproxy.proxy_nameWHERE haproxy.service_name = 'BACKEND'
-- Average session time per backend (latency indicator)FROM Metric SELECT average(haproxy.sessions.average)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'BACKEND'
-- Per-server session count (individual backend servers)FROM Metric SELECT latest(haproxy.sessions.count)FACET haproxy.proxy_name, haproxy.service_nameWHERE haproxy.service_name NOT IN ('FRONTEND', 'BACKEND')
-- Queued requests (indicates backend saturation)FROM Metric SELECT max(haproxy.requests.queued)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'BACKEND'TIMESERIESProchaines étapes
- Trouver et interroger vos données HAProxy — dashboards, requêtes NRQL et navigation dans les données
- Monitorer HAProxy auto-hébergé — configuration pour les machines virtuelles Linux ou bare metal
- Monitorer HAProxy sur Kubernetes — découverte automatique des pods pour les environnements conteneurisés
- Créer des conditions d’alerte NRQL — configurez des alertes basées sur vos métriques HAProxy