Esta página fornece uma referência completa para todas as métricas do HAProxy coletadas via OpenTelemetry, incluindo os caminhos do haproxyreceiver e do receptor Prometheus.
Visão geral
A integração do HAProxy OpenTelemetry coleta métricas do endpoint de estatísticas CSV do HAProxy por meio do haproxyreceiver. As métricas são organizadas em dois níveis:
- Métricas padrão (17): coletadas automaticamente com a configuração padrão — suficientes para a maioria dos casos de uso de monitoramento
- Métricas opcionais (16): desativadas por padrão, ativadas individualmente na seção
metricsdo receiver — úteis para depuração detalhada e planejamento de capacidade
Ao usar a instalação guiada do NRDOT, você pode escolher entre duas configurações:
- Otimizado (menor ingestão): 17 métricas padrão, intervalo de coleta de 60s, processadores de otimização aplicados
- Abrangente (detalhes completos): 27 métricas (17 padrão + 10 opcionais), intervalo de coleta de 15s
Dica
Para habilitar métricas opcionais, adicione-as à seção metrics da configuração do seu receiver haproxy com enabled: true. Consulte Monitore o HAProxy auto-hospedado com OpenTelemetry para detalhes de configuração.
Métrica padrão
Estas 17 métricas são coletadas com a configuração padrão (nenhuma seção metrics é necessária).
Nome da métrica | Descrição | Tipo | Unidade |
|---|---|---|---|
| Total de bytes recebidos pelo proxy (coletados por frontend, backend e servidor) | Soma (cumulativa) | Por |
| Total de bytes enviados pelo proxy (coletados por frontend, backend e servidor) | Soma (cumulativa) | Por |
| Número total de erros de conexão (apenas backend e servidor) | Soma (cumulativa) | {errors} |
| Número de conexões por segundo no último segundo decorrido (apenas frontend) | Medidor | {connections}/s |
| Número total de novas tentativas de conexão (apenas backend e servidor) | Soma (cumulativa) | {retries} |
| Número total de requests negados (frontend e backend) | Soma (cumulativa) | {requests} |
| Número total de erros de request (apenas frontend) | Soma (cumulativa) | {errors} |
| Número atual de requests na fila (apenas backend e servidor) | Medidor | {requests} |
| Número de requests HTTP por segundo durante o último segundo decorrido (apenas frontend) | Medidor | {requests}/s |
| Número total de redespachos de requests (apenas backend e servidor) | Soma (cumulativa) | {requests} |
| Número total de requests HTTP recebidos (frontend e backend) | Soma (cumulativa) | {requests} |
| Número total de respostas negadas (frontend, backend e servidor) | Soma (cumulativa) | {responses} |
| Número total de erros de resposta (apenas backend e servidor) | Soma (cumulativa) | {errors} |
| Número total de vezes que um servidor foi selecionado para balanceamento de carga (backend e servidor) | Soma (cumulativa) | {selections} |
| Tempo médio total de sessão sobre os últimos 1.024 requests, em segundos (backend e servidor) | Medidor | s |
| Número atual de sessões ativas (frontend, backend e servidor) | Medidor | {sessions} |
| Número de sessões por segundo durante o último segundo decorrido (frontend, backend e servidor) | Medidor | {sessions}/s |
Métricas opcionais
Estas 16 métricas estão desativadas por padrão. Ative-as individualmente na configuração do seu coletor definindo enabled: true na seção metrics do receiver.
A configuração abrangente do NRDOT habilita os primeiros 10 destes (marcados com [C]).
Nome da métrica | Descrição | Tipo | Unidade |
|---|---|---|---|
[C] | Tempo médio de conexão em segundos (monitoramento de latência) | Medidor | s |
[C] | Tempo médio de fila para requests em segundos | Medidor | s |
[C] | Tempo médio de resposta em segundos | Medidor | s |
[C] | Número de servidores ativos em um backend | Medidor | {servers} |
[C] | Número de servidores de backup em um backend | Medidor | {servers} |
[C] | Período de inatividade total em segundos | Soma (cumulativa) | s |
[C] | Número total de verificações de integridade com falha | Soma (cumulativa) | {checks} |
[C] | Peso do servidor (usado em decisões de balanceamento de carga) | Medidor | {weight} |
[C] | Número total acumulado de sessões | Soma (cumulativa) | {sessions} |
[C] | Número total acumulado de conexões | Soma (cumulativa) | {connections} |
| Número total de bytes enviados ao compressor | Soma (cumulativa) | Por |
| Número total de bytes emitidos pelo compressor | Soma (cumulativa) | Por |
| Número total de bytes que desviaram da compactação | Soma (cumulativa) | Por |
| Número total de respostas HTTP que foram compactadas | Soma (cumulativa) | {responses} |
| Número total de transferências de dados abortadas pelo cliente | Soma (cumulativa) | {cancellations} |
| Limite de sessão configurado para o proxy | Medidor | {sessions} |
Atributos de recurso
Os seguintes atributos de recurso são anexados a todas as métricas do HAProxy, fornecendo contexto para filtragem e agrupamento.
Atributo | Descrição | Valor de exemplo |
|---|---|---|
| Nome do proxy HAProxy (do nome da seção frontend/backend/listen no haproxy.cfg) |
,
,
|
| Identificador de tipo ou nome do servidor:
para agregações de frontend,
para agregações de backend ou o nome específico do servidor para métricas por servidor |
,
,
,
|
| A URL do endpoint de estatísticas que foi coletada (usada como parte do identificador de entidade) |
|
| Identificador exclusivo do host (de
no Linux) |
|
| Nome do host da máquina que executa o coletor |
|
| Tipo de sistema operacional |
|
Identificador de entidade: A entidade do HAProxy no New Relic é sintetizada a partir de host.id + haproxy.addr (por exemplo, ec23da5ead46571f2c3a9771b093658b:http://localhost:8404/stats).
Mapeamento de métrica do Prometheus
Se você estiver usando o caminho do receiver do Prometheus, a tabela a seguir mostra como os nomes de métrica do HAProxy Prometheus são mapeados para os equivalentes do haproxyreceiver do OTel. Cada métrica do OTel pode ter várias fontes do Prometheus (uma por nível: frontend, backend, servidor).
OTel métrica | Frontend do Prometheus | Backend do Prometheus | Servidor Prometheus |
|---|---|---|---|
|
|
|
|
|
|
|
|
| — |
|
|
|
| — | — |
| — |
|
|
|
|
| — |
|
| — | — |
| — |
|
|
|
| — | — |
| — |
|
|
|
|
| — |
|
|
|
|
| — |
|
|
| — |
|
|
| — |
|
|
|
|
|
|
|
|
|
|
Importante
Limitações conhecidas do caminho do Prometheus:
- Sem FACET por código de status: o haproxyreceiver analisa
hrsp_*campos CSV em um atributostatus_codeemhaproxy.requests.total. O caminho do Prometheus não suporta isso — a divisão do código de resposta HTTP está disponível apenas como métricas separadas (haproxy_frontend_http_responses_total{code="2xx"}) não incluídas na configuração de transformação. - As métricas de taxa são máximos vitalícios:
haproxy.connections.ratemapeia parahaproxy_frontend_connections_rate_maxehaproxy.requests.ratemapeia parahaproxy_frontend_http_requests_rate_max. Esses são valores máximos vitalícios, não taxas instantâneas. Para taxas atuais reais, use a função NRQLrate()em métricas de contador cumulativo. - -136 métricas do Prometheus não têm equivalente no OTel: o endpoint do Prometheus do HAProxy expõe -204 métricas. Apenas 36 são mapeadas para as 17 métricas padrão do OTel (nos níveis de frontend/backend/servidor). O restante (detalhes internos do processo, detalhes de verificação de integridade, estatísticas do resolvedor DNS) não tem equivalente no haproxyreceiver.
Consultas NRQL de exemplo
Use estas consultas para explorar suas métricas do HAProxy na 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'TIMESERIESPróximos passos
- Encontre e consulte seus dados do HAProxy — dashboards, consultas NRQL e navegação de dados
- Monitorar HAProxy auto-hospedado — configuração para VMs Linux ou bare metal
- Monitorar HAProxy no Kubernetes — descoberta automática de pod para ambientes conteinerizados
- Criar condições de alerta NRQL — configure alertas com base em suas métricas do HAProxy