Alerts and monitoring
Prometheus metrics
Available since
- HAProxy 2.0
- HAProxy Enterprise 2.0r1
- HAProxy ALOHA 11.5
The load balancer exposes a Prometheus endpoint that publishes metrics that you can scrape with a Prometheus-compatible agent such as the Prometheus server, Fluentd, Telegraf, and Metricbeat. It is enabled by default, so you only need to configure the IP address and port where it listens.
Configure the Prometheus exporter Jump to heading
To configure the Prometheus exporter:
-
Add a new
frontend
section to your configuration file. In it, include thehttp-request use-service prometheus-exporter
directive. In the following example, the Prometheus exporter page becomes available on all IP addresses at port 8405:haproxyfrontend prometheusbind :8405mode httphttp-request use-service prometheus-exporterno loghaproxyfrontend prometheusbind :8405mode httphttp-request use-service prometheus-exporterno logThe
no log
directive disables logging for these requests. -
Optional: Add a conditional statement to the end of the line to show the metrics page only on a certain URL path. In the next example, the metrics become available at the URL path
/metrics
on port 8405:haproxyfrontend prometheusbind *:8405mode httphttp-request use-service prometheus-exporter if { path /metrics }no loghaproxyfrontend prometheusbind *:8405mode httphttp-request use-service prometheus-exporter if { path /metrics }no log
Configure the Prometheus server Jump to heading
The Prometheus server collects your load balancer metrics and stores them in its database. From there, you can use software like Grafana to graph them. To configure your Prometheus server to scrape the metrics page:
-
Follow the First Steps with Prometheus guide to install the Prometheus server.
-
Edit its
prometheus.yml
file so that it includes a job for scraping load balancer metrics. Add the following to thescrape_configs
section, replacinglocalhost
with your load balancer’s address. If you run multiple load balancer servers, include them in thetargets
array.prometheus.ymlyaml- job_name: 'load-balancer-metrics'static_configs:- targets: ['localhost:8405']prometheus.ymlyaml- job_name: 'load-balancer-metrics'static_configs:- targets: ['localhost:8405']By default, the Prometheus server scrapes the URL
/metrics
. To change this path, set themetrics_path
parameter in thescrape_configs
section of the Prometheus configuration file.
Host over HTTPS Jump to heading
To serve the Prometheus endpoint over HTTPS:
-
Edit the load balancer configuration and add the
ssl
parameter to thebind
line to enable HTTPS. Also, set thecrt
parameter to the path where you’ve stored your TLS key and certificate file:haproxyfrontend prometheusbind :8405 ssl crt /certs/site.pemmode httphttp-request use-service prometheus-exporterno loghaproxyfrontend prometheusbind :8405 ssl crt /certs/site.pemmode httphttp-request use-service prometheus-exporterno log -
On the Prometheus server, edit the
prometheus.yml
configuration file. Setscheme
tohttps
:prometheus.ymlyaml- job_name: 'load-balancer-metrics'scheme: httpsstatic_configs:- targets: ['localhost:8405']prometheus.ymlyaml- job_name: 'load-balancer-metrics'scheme: httpsstatic_configs:- targets: ['localhost:8405'] -
Optional: You can also configure the
tls_config
block to set a CA certificate for verifying the load balancer’s certificate, enable client certificates, set a ServerName extension, or disable validation of the load balancer’s certificate. See the Prometheus configuration documentation for details.Below, we skip validation of the certificate.
prometheus.ymlyaml- job_name: 'load-balancer-metrics'scheme: httpsstatic_configs:- targets: ['localhost:8405']tls_config:# Disable validation of server certificateinsecure_skip_verify: trueprometheus.ymlyaml- job_name: 'load-balancer-metrics'scheme: httpsstatic_configs:- targets: ['localhost:8405']tls_config:# Disable validation of server certificateinsecure_skip_verify: true
Filter metrics Jump to heading
To reduce the volume of metrics Prometheus scrapes from the load balancer, you can specify filter parameters in the Prometheus configuration file. The filters are applied on the load balancer, thereby reducing the load on the network and the Prometheus server.
In the following section, we describe several use cases.
Specify metrics scope Jump to heading
Use the scope
parameter to specify which categories of metrics to scrape. Categories include:
- global
- frontend
- listener
- backend
- server
- sticktable
- asterisk (*) = all scopes
- empty = no metrics
In the load balancer job shown below, we are scraping only frontend
and sticktable
metrics:
prometheus.ymlyaml
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.scrape_configs:- job_name: 'load-balancer-metrics'static_configs:- targets: ['192.168.56.31:8405']params:scope:- frontend- sticktable
prometheus.ymlyaml
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.scrape_configs:- job_name: 'load-balancer-metrics'static_configs:- targets: ['192.168.56.31:8405']params:scope:- frontend- sticktable
Omit servers in maintenance mode Jump to heading
To reduce the volume of metrics returned, omit results from servers in maintenance mode. Add the no-maint
key. The no-maint
key is particularly useful with load balancer configurations using server-template
to define servers dynamically, wherein unused server slots are left in maintenance mode.
There is no consistency check on server state. So if the state of a server changes while the exporter is running, only a portion of the metrics for this server will be reported.
Below, we define no-maint
to omit metrics from servers in maintenance mode:
prometheus.ymlyaml
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.scrape_configs:- job_name: 'load-balancer-metrics'static_configs:- targets: ['192.168.56.31:8405']params:scope:- frontend- sticktableno-maint:- empty
prometheus.ymlyaml
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.scrape_configs:- job_name: 'load-balancer-metrics'static_configs:- targets: ['192.168.56.31:8405']params:scope:- frontend- sticktableno-maint:- empty
Scrape health status only Jump to heading
To scrape only server health status without other server metrics, configure the job with a metric_relabel_configs
section, as follows:
prometheus.ymlyaml
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.scrape_configs:- job_name: "prometheus"static_configs:- targets: ["localhost:9090"]- job_name: 'load-balancer-metrics'static_configs:- targets: ['192.168.56.31:8405']metric_relabel_configs:- source_labels: [__name__]regex: 'haproxy_(process_|frontend_|listener_|backend_|server_check_status).*'action: keep
prometheus.ymlyaml
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.scrape_configs:- job_name: "prometheus"static_configs:- targets: ["localhost:9090"]- job_name: 'load-balancer-metrics'static_configs:- targets: ['192.168.56.31:8405']metric_relabel_configs:- source_labels: [__name__]regex: 'haproxy_(process_|frontend_|listener_|backend_|server_check_status).*'action: keep
Exported metrics Jump to heading
The Prometheus exporter generates the metrics shown in the following sections.
Some of these metrics require you to enable the extra-counters
URL parameter when scraping the HAProxy Prometheus endpoint. This parameter was added in HAProxy 3.0. In your prometheus.yml
file, add the extra-counters
parameter:
prometheus.ymlyaml
- job_name: 'load-balancer-metrics'static_configs:- targets: ['localhost:8405']params:extra-counters: ["on"]
prometheus.ymlyaml
- job_name: 'load-balancer-metrics'static_configs:- targets: ['localhost:8405']params:extra-counters: ["on"]
Socket listener metrics Jump to heading
To enable these metrics, add option socket-stats
to your Prometheus frontend in the load balancer configuration.
Name | Description | Type |
---|---|---|
haproxy_listener_bytes_in_total | Total number of request bytes since process started | counter |
haproxy_listener_bytes_out_total | Total number of response bytes since process started | counter |
haproxy_listener_current_sessions | Number of current sessions on the frontend, backend or server | gauge |
haproxy_listener_denied_connections_total | Total number of incoming connections blocked on a listener/frontend by a tcp-request connection rule since the worker process started | counter |
haproxy_listener_denied_sessions_total | Total number of incoming sessions blocked on a listener/frontend by a tcp-request connection rule since the worker process started | counter |
haproxy_listener_failed_header_rewriting_total | Total number of failed HTTP header rewrites since the worker process started | counter |
haproxy_listener_internal_errors_total | Total number of internal errors since process started | counter |
haproxy_listener_limit_sessions | Frontend/listener/server’s maxconn, backend’s fullconn | gauge |
haproxy_listener_max_sessions | Highest value of current sessions encountered since process started | gauge |
haproxy_listener_request_errors_total | Total number of invalid requests since process started | counter |
haproxy_listener_requests_denied_total | Total number of denied requests since process started | counter |
haproxy_listener_responses_denied_total | Total number of denied responses since process started | counter |
haproxy_listener_sessions_total | Total number of sessions since process started | counter |
haproxy_listener_ssl_failed_handshake | Total number of failed handshake | counter |
haproxy_listener_ssl_reused_sess | Total number of ssl sessions reused | counter |
haproxy_listener_ssl_sess | Total number of ssl sessions established | counter |
haproxy_listener_status | Current status of the service, per state label value | gauge |
Global metrics Jump to heading
Name | Description | Type |
---|---|---|
haproxy_process_active_peers | Current number of verified active peers connections on the current worker process | gauge |
haproxy_process_build_info | Build info | gauge |
haproxy_process_busy_polling_enabled | 1 if busy-polling is currently in use on the worker process, otherwise zero (config.busy-polling) | gauge |
haproxy_process_bytes_out_rate | Number of bytes emitted by current worker process over the last second | gauge |
haproxy_process_bytes_out_total | Total number of bytes emitted by current worker process since started | counter |
haproxy_process_connected_peers | Current number of peers having passed the connection step on the current worker process | gauge |
haproxy_process_connections_total | Total number of connections on this worker process since started | counter |
haproxy_process_current_backend_ssl_key_rate | Number of SSL keys created on backends in this worker process over the last second | gauge |
haproxy_process_current_connection_rate | Number of front connections created on this worker process over the last second | gauge |
haproxy_process_current_connections | Current number of connections on this worker process | gauge |
haproxy_process_current_frontend_ssl_key_rate | Number of SSL keys created on frontends in this worker process over the last second | gauge |
haproxy_process_current_run_queue | Total number of active tasks+tasklets in the current worker process | gauge |
haproxy_process_current_session_rate | Number of sessions created on this worker process over the last second | gauge |
haproxy_process_current_ssl_connections | Current number of SSL endpoints on this worker process (front+back) | gauge |
haproxy_process_current_ssl_rate | Number of SSL connections created on this worker process over the last second | gauge |
haproxy_process_current_tasks | Total number of tasks in the current worker process (active + sleeping) | gauge |
haproxy_process_current_zlib_memory | Amount of memory currently used by HTTP compression on the current worker process (in bytes) | gauge |
haproxy_process_dropped_logs_total | Total number of dropped logs for current worker process since started | counter |
haproxy_process_failed_resolutions | Total number of failed DNS resolutions in current worker process since started | counter |
haproxy_process_frontend_ssl_reuse | Percent of frontend SSL connections which did not require a new key | gauge |
haproxy_process_hard_max_connections | Hard limit on the number of per-process connections (imposed by Memmax_MB or ulimit -n ) |
gauge |
haproxy_process_http_comp_bytes_in_total | Number of bytes submitted to the HTTP compressor in this worker process over the last second | counter |
haproxy_process_http_comp_bytes_out_total | Number of bytes emitted by the HTTP compressor in this worker process over the last second | counter |
haproxy_process_idle_time_percent | Percentage of last second spent waiting in the current worker thread | gauge |
haproxy_process_jobs | Current number of active jobs on the current worker process (frontend connections, master connections, listeners) | gauge |
haproxy_process_limit_connection_rate | Hard limit for ConnRate (global.maxconnrate) | gauge |
haproxy_process_limit_http_comp | Limit of CompressBpsOut beyond which HTTP compression is automatically disabled | gauge |
haproxy_process_limit_session_rate | Hard limit for SessRate (global.maxsessrate) | gauge |
haproxy_process_limit_ssl_rate | Hard limit for SslRate (global.maxsslrate) | gauge |
haproxy_process_listeners | Current number of active listeners on the current worker process | gauge |
haproxy_process_max_backend_ssl_key_rate | Highest SslBackendKeyRate reached on this worker process since started (in SSL keys per second) | gauge |
haproxy_process_max_connection_rate | Highest ConnRate reached on this worker process since started (in connections per second) | gauge |
haproxy_process_max_connections | Hard limit on the number of per-process connections (configured or imposed by ulimit -n ) |
gauge |
haproxy_process_max_fds | Hard limit on the number of per-process file descriptors | gauge |
haproxy_process_max_frontend_ssl_key_rate | Highest SslFrontendKeyRate reached on this worker process since started (in SSL keys per second) | gauge |
haproxy_process_max_memory_bytes | Worker process’s hard limit on memory usage in byes (-m on command line) | gauge |
haproxy_process_max_pipes | Hard limit on the number of pipes for splicing, 0=unlimited | gauge |
haproxy_process_max_session_rate | Highest SessRate reached on this worker process since started (in sessions per second) | gauge |
haproxy_process_max_sockets | Hard limit on the number of per-process sockets | gauge |
haproxy_process_max_ssl_connections | Hard limit on the number of per-process SSL endpoints (front+back), 0=unlimited | gauge |
haproxy_process_max_ssl_rate | Highest SslRate reached on this worker process since started (in connections per second) | gauge |
haproxy_process_max_zlib_memory | Limit on the amount of memory used by HTTP compression above which it is automatically disabled (in bytes, see global.maxzlibmem) | gauge |
haproxy_process_nbthread | Number of started threads (global.nbthread) | gauge |
haproxy_process_pipes_free_total | Current number of allocated and available pipes in this worker process | counter |
haproxy_process_pipes_used_total | Current number of pipes in use in this worker process | counter |
haproxy_process_pool_allocated_bytes | Amount of memory allocated in pools (in bytes) | gauge |
haproxy_process_pool_failures_total | Number of failed pool allocations since this worker was started | counter |
haproxy_process_pool_used_bytes | Amount of pool memory currently used (in bytes) | gauge |
haproxy_process_recv_logs_total | Total number of log messages received by log-forwarding listeners on this worker process since started | counter |
haproxy_process_relative_process_id | Relative worker process number (1) | gauge |
haproxy_process_requests_total | Total number of requests on this worker process since started | counter |
haproxy_process_spliced_bytes_out_total | Total number of bytes emitted by current worker process through a kernel pipe since started | counter |
haproxy_process_ssl_cache_lookups_total | Total number of SSL session ID lookups in the SSL session cache on this worker since the process started | counter |
haproxy_process_ssl_cache_misses_total | Total number of SSL session ID lookups that didn’t find a session in the SSL session cache on this worker since started | counter |
haproxy_process_ssl_connections_total | Total number of SSL endpoints on this worker process since the process started (front+back) | counter |
haproxy_process_start_time_seconds | Start time in seconds | gauge |
haproxy_process_stopping | 1 if the worker process is currently stopping, otherwise zero | gauge |
haproxy_process_unstoppable_jobs | Current number of unstoppable jobs on the current worker process (master connections) | gauge |
haproxy_process_uptime_seconds | How long ago this worker process was started (seconds) | gauge |
Frontend metrics Jump to heading
Name | Description | Type |
---|---|---|
haproxy_frontend_bytes_in_total | Total number of request bytes since process started | counter |
haproxy_frontend_bytes_out_total | Total number of response bytes since process started | counter |
haproxy_frontend_connections_rate_max | Highest value of connections per second observed since the worker process started | gauge |
haproxy_frontend_connections_total | Total number of new connections accepted on this frontend since the worker process started | counter |
haproxy_frontend_current_sessions | Number of current sessions on the frontend, backend, or server | gauge |
haproxy_frontend_denied_connections_total | Total number of incoming connections blocked on a listener/frontend by a tcp-request connection rule since the worker process started | counter |
haproxy_frontend_denied_sessions_total | Total number of incoming sessions blocked on a listener/frontend by a tcp-request connection rule since the worker process started | counter |
haproxy_frontend_failed_header_rewriting_total | Total number of failed HTTP header rewrites since the worker process started | counter |
haproxy_frontend_h1_bytes_in | Total number of bytes received | counter |
haproxy_frontend_h1_bytes_out | Total number of bytes send | counter |
haproxy_frontend_h1_open_connections | Count of currently open connections | counter |
haproxy_frontend_h1_open_streams | Count of currently open streams | counter |
haproxy_frontend_h1_spliced_bytes_in | Total number of bytes received using kernel splicing | counter |
haproxy_frontend_h1_spliced_bytes_out | Total number of bytes sent using kernel splicing | counter |
haproxy_frontend_h1_total_connections | Total number of connections | counter |
haproxy_frontend_h1_total_streams | Total number of streams | counter |
haproxy_frontend_h2_backend_open_streams | Count of currently open streams | counter |
haproxy_frontend_h2_backend_total_streams | Total number of streams | counter |
haproxy_frontend_h2_data_rcvd | Total number of received DATA frames | counter |
haproxy_frontend_h2_detected_conn_protocol_errors | Total number of connection protocol errors | counter |
haproxy_frontend_h2_detected_strm_protocol_errors | Total number of stream protocol errors | counter |
haproxy_frontend_h2_goaway_rcvd | Total number of received GOAWAY frames | counter |
haproxy_frontend_h2_goaway_resp | Total number of GOAWAY sent on detected error | counter |
haproxy_frontend_h2_headers_rcvd | Total number of received HEADERS frames | counter |
haproxy_frontend_h2_open_connections | Count of currently open connections | counter |
haproxy_frontend_h2_rst_stream_rcvd | Total number of received RST_STREAM frames | counter |
haproxy_frontend_h2_rst_stream_resp | Total number of RST_STREAM sent on detected error | counter |
haproxy_frontend_h2_settings_rcvd | Total number of received SETTINGS frames | counter |
haproxy_frontend_h2_total_connections | Total number of connections | counter |
haproxy_frontend_h3_cancel_push | Total number of CANCEL_PUSH frames received | counter |
haproxy_frontend_h3_closed_critical_stream | Total number of H3_CLOSED_CRITICAL_STREAM errors received | counter |
haproxy_frontend_h3_connect_error | Total number of H3_CONNECT_ERROR errors received | counter |
haproxy_frontend_h3_data | Total number of DATA frames received | counter |
haproxy_frontend_h3_excessive_load | Total number of H3_EXCESSIVE_LOAD errors received | counter |
haproxy_frontend_h3_frame_error | Total number of H3_FRAME_ERROR errors received | counter |
haproxy_frontend_h3_frame_unexpected | Total number of H3_FRAME_UNEXPECTED errors received | counter |
haproxy_frontend_h3_general_protocol_error | Total number of H3_GENERAL_PROTOCOL_ERROR errors received | counter |
haproxy_frontend_h3_goaway | Total number of GOAWAY frames received | counter |
haproxy_frontend_h3_headers | Total number of HEADERS frames received | counter |
haproxy_frontend_h3_id_error | Total number of H3_ID_ERROR errors received | counter |
haproxy_frontend_h3_internal_error | Total number of H3_INTERNAL_ERROR errors received | counter |
haproxy_frontend_h3_max_push_id | Total number of MAX_PUSH_ID frames received | counter |
haproxy_frontend_h3_message_error | Total number of H3_MESSAGE_ERROR errors received | counter |
haproxy_frontend_h3_missing_settings | Total number of H3_MISSING_SETTINGS errors received | counter |
haproxy_frontend_h3_no_error | Total number of H3_NO_ERROR errors received | counter |
haproxy_frontend_h3_push_promise | Total number of PUSH_PROMISE frames received | counter |
haproxy_frontend_h3_request_cancelled | Total number of H3_REQUEST_CANCELLED errors received | counter |
haproxy_frontend_h3_request_incomplete | Total number of H3_REQUEST_INCOMPLETE errors received | counter |
haproxy_frontend_h3_request_rejected | Total number of H3_REQUEST_REJECTED errors received | counter |
haproxy_frontend_h3_settings | Total number of SETTINGS frames received | counter |
haproxy_frontend_h3_settings_error | Total number of H3_SETTINGS_ERROR errors received | counter |
haproxy_frontend_h3_stream_creation_error | Total number of H3_STREAM_CREATION_ERROR errors received | counter |
haproxy_frontend_h3_version_fallback | Total number of H3_VERSION_FALLBACK errors received | counter |
haproxy_frontend_http_cache_hits_total | Total number of HTTP requests not found in the cache on this frontend/backend since the worker process started | counter |
haproxy_frontend_http_cache_lookups_total | Total number of HTTP request lookups in the cache on this frontend/backend since the worker process started | counter |
haproxy_frontend_http_comp_bytes_bypassed_total | Total number of bytes that bypassed HTTP compression for this object since the worker process started (CPU/memory/bandwidth limitation) | counter |
haproxy_frontend_http_comp_bytes_in_total | Total number of bytes submitted to the HTTP compressor for this object since the worker process started | counter |
haproxy_frontend_http_comp_bytes_out_total | Total number of bytes emitted by the HTTP compressor for this object since the worker process started | counter |
haproxy_frontend_http_comp_responses_total | Total number of HTTP responses that were compressed for this object since the worker process started | counter |
haproxy_frontend_http_requests_rate_max | Highest value of http requests observed since the worker process started | gauge |
haproxy_frontend_http_requests_total | Total number of HTTP requests processed by this object since the worker process started | counter |
haproxy_frontend_http_responses_total | Total number of HTTP responses with status 100-199 returned by this object since the worker process started | counter |
haproxy_frontend_intercepted_requests_total | Total number of HTTP requests intercepted on the frontend (redirects/stats/services) since the worker process started | counter |
haproxy_frontend_internal_errors_total | Total number of internal errors since process started | counter |
haproxy_frontend_limit_session_rate | Limit on the number of sessions accepted in a second (frontend only, ‘rate-limit sessions’ setting) | gauge |
haproxy_frontend_limit_sessions | Frontend/listener/server’s maxconn, backend’s fullconn | gauge |
haproxy_frontend_max_session_rate | Highest value of sessions per second observed since the worker process started | gauge |
haproxy_frontend_max_sessions | Highest value of current sessions encountered since process started | gauge |
haproxy_frontend_pack_decompression_failed | Total number of QPACK_DECOMPRESSION_FAILED errors received | counter |
haproxy_frontend_qpack_decoder_stream_error | Total number of QPACK_DECODER_STREAM_ERROR errors received | counter |
haproxy_frontend_qpack_encoder_stream_error | Total number of QPACK_ENCODER_STREAM_ERROR errors received | counter |
haproxy_frontend_quic_conn_migration_done | Total number of connection migration proceeded | counter |
haproxy_frontend_quic_data_blocked | Total number of received DATA_BLOCKED frames | counter |
haproxy_frontend_quic_dropped_parsing_pkt | Total number of dropped packets upon parsing error | counter |
haproxy_frontend_quic_dropped_pkt | Total number of dropped packets | counter |
haproxy_frontend_quic_dropped_pkt_bufoverrun | Total number of dropped packets because of buffer overrun | counter |
haproxy_frontend_quic_half_open_conn | Total number of half-open connections | counter |
haproxy_frontend_quic_hdshk_fail | Total number of handshake failures | counter |
haproxy_frontend_quic_lost_pkt | Total number of lost sent packets | counter |
haproxy_frontend_quic_retry_error | Total number of Retry tokens errors | counter |
haproxy_frontend_quic_retry_sent | Total number of Retry sent | counter |
haproxy_frontend_quic_retry_validated | Total number of validated Retry tokens | counter |
haproxy_frontend_quic_rxbuf_full | Total number of cancelled reception due to full receiver buffer | counter |
haproxy_frontend_quic_sendto_err | Total number of errors on sendto() calls, EAGAIN excepted | counter |
haproxy_frontend_quic_sendto_err_unknwn | Total number of errors on sendto() calls not explicitly listed | counter |
haproxy_frontend_quic_sent_pkt | Total number of sent packets | counter |
haproxy_frontend_quic_socket_full | Total number of EAGAIN error on sendto() calls | counter |
haproxy_frontend_quic_stless_rst_sent | Total number of stateless reset packets sent | counter |
haproxy_frontend_quic_stream_data_blocked | Total number of received STREAM_DATA_BLOCKED frames | counter |
haproxy_frontend_quic_streams_blocked_bidi | Total number of received STREAMS_BLOCKED_BIDI frames | counter |
haproxy_frontend_quic_streams_blocked_uni | Total number of received STREAMS_BLOCKED_UNI frames | counter |
haproxy_frontend_quic_too_short_dgram | Total number of too short dgrams with initial packets | counter |
haproxy_frontend_quic_transp_err_aead_limit_reached | Total number of AEAD_LIMIT_REACHED errors received | counter |
haproxy_frontend_quic_transp_err_application_error | Total number of APPLICATION_ERROR errors received | counter |
haproxy_frontend_quic_transp_err_connection_id_limit | Total number of CONNECTION_ID_LIMIT_ERROR errors received | counter |
haproxy_frontend_quic_transp_err_connection_refused | Total number of CONNECTION_REFUSED errors received | counter |
haproxy_frontend_quic_transp_err_crypto_buffer_exceeded | Total number of CRYPTO_BUFFER_EXCEEDED errors received | counter |
haproxy_frontend_quic_transp_err_crypto_error | Total number of CRYPTO_ERROR errors received | counter |
haproxy_frontend_quic_transp_err_final_size_error | Total number of FINAL_SIZE_ERROR errors received | counter |
haproxy_frontend_quic_transp_err_flow_control_error | Total number of FLOW_CONTROL_ERROR errors received | counter |
haproxy_frontend_quic_transp_err_frame_encoding_error | Total number of FRAME_ENCODING_ERROR errors received | counter |
haproxy_frontend_quic_transp_err_internal_error | Total number of INTERNAL_ERROR errors received | counter |
haproxy_frontend_quic_transp_err_invalid_token | Total number of INVALID_TOKEN errors received | counter |
haproxy_frontend_quic_transp_err_key_update_error | Total number of KEY_UPDATE_ERROR errors received | counter |
haproxy_frontend_quic_transp_err_no_error | Total number of NO_ERROR errors received | counter |
haproxy_frontend_quic_transp_err_no_viable_path | Total number of NO_VIABLE_PATH errors received | counter |
haproxy_frontend_quic_transp_err_protocol_violation_error | Total number of PROTOCOL_VIOLATION errors received | counter |
haproxy_frontend_quic_transp_err_stream_limit_error | Total number of STREAM_LIMIT_ERROR errors received | counter |
haproxy_frontend_quic_transp_err_stream_state_error | Total number of STREAM_STATE_ERROR errors received | counter |
haproxy_frontend_quic_transp_err_transport_parameter_error | Total number of TRANSPORT_PARAMETER_ERROR errors received | counter |
haproxy_frontend_quic_transp_err_unknown_error | Total number of UNKNOWN_ERROR errors received | counter |
haproxy_frontend_request_errors_total | Total number of invalid requests since process started | counter |
haproxy_frontend_requests_denied_total | Total number of denied requests since process started | counter |
haproxy_frontend_responses_denied_total | Total number of denied responses since process started | counter |
haproxy_frontend_sessions_total | Total number of sessions since process started | counter |
haproxy_frontend_ssl_failed_handshake | Total number of failed handshake | counter |
haproxy_frontend_ssl_reused_sess | Total number of ssl sessions reused | counter |
haproxy_frontend_ssl_sess | Total number of ssl sessions established | counter |
haproxy_frontend_status | Current status of the service, per state label value | gauge |
Backend metrics Jump to heading
Name | Description | Type |
---|---|---|
haproxy_backend_active_servers | Total number of active UP servers with a non-zero weight | gauge |
haproxy_backend_agg_check_status | Backend’s aggregated gauge of servers’ state check status | gauge |
haproxy_backend_agg_server_check_status | Deprecated. Backend’s aggregated gauge of servers’ status | gauge |
haproxy_backend_agg_server_status | Backend’s aggregated gauge of servers’ status | gauge |
haproxy_backend_backup_servers | Total number of backup UP servers with a non-zero weight | gauge |
haproxy_backend_bytes_in_total | Total number of request bytes since process started | counter |
haproxy_backend_bytes_out_total | Total number of response bytes since process started | counter |
haproxy_backend_check_last_change_seconds | How long ago the last server state changed, in seconds | gauge |
haproxy_backend_check_up_down_total | Total number of failed checks causing UP to DOWN server transitions, per server/backend, since the worker process started | counter |
haproxy_backend_client_aborts_total | Total number of requests or connections aborted by the client since the worker process started | counter |
haproxy_backend_connect_time_average_seconds | Avg. connect time for last 1024 successful connections | gauge |
haproxy_backend_connection_attempts_total | Total number of outgoing connection attempts on this backend/server since the worker process started | counter |
haproxy_backend_connection_errors_total | Total number of failed connections to server since the worker process started | counter |
haproxy_backend_connection_reuses_total | Total number of reused connection on this backend/server since the worker process started | counter |
haproxy_backend_current_queue | Number of current queued connections | gauge |
haproxy_backend_current_sessions | Number of current sessions on the frontend, backend, or server | gauge |
haproxy_backend_downtime_seconds_total | Total time spent in DOWN state, for server or backend | counter |
haproxy_backend_failed_header_rewriting_total | Total number of failed HTTP header rewrites since the worker process started | counter |
haproxy_backend_h1_bytes_in | Total number of bytes received | counter |
haproxy_backend_h1_bytes_out | Total number of bytes sent | counter |
haproxy_backend_h1_open_connections | Count of currently open connections | counter |
haproxy_backend_h1_open_streams | Count of currently open streams | counter |
haproxy_backend_h1_spliced_bytes_in | Total number of bytes received using kernel splicing | counter |
haproxy_backend_h1_spliced_bytes_out | Total number of bytes sent using kernel splicing | counter |
haproxy_backend_h1_total_connections | Total number of connections | counter |
haproxy_backend_h1_total_streams | Total number of streams | counter |
haproxy_backend_h2_backend_open_streams | Count of currently open streams | counter |
haproxy_backend_h2_backend_open_streams | Count of currently open streams | counter |
haproxy_backend_h2_backend_total_streams | Total number of streams | counter |
haproxy_backend_h2_data_rcvd | Total number of received DATA frames | counter |
haproxy_backend_h2_data_rcvd | Total number of received DATA frames | counter |
haproxy_backend_h2_detected_conn_protocol_errors | Total number of connection protocol errors | counter |
haproxy_backend_h2_detected_conn_protocol_errors | Total number of connection protocol errors | counter |
haproxy_backend_h2_detected_strm_protocol_errors | Total number of stream protocol errors | counter |
haproxy_backend_h2_detected_strm_protocol_errors | Total number of stream protocol errors | counter |
haproxy_backend_h2_goaway_rcvd | Total number of received GOAWAY frames | counter |
haproxy_backend_h2_goaway_rcvd | Total number of received GOAWAY frames | counter |
haproxy_backend_h2_goaway_resp | Total number of GOAWAY sent on detected error | counter |
haproxy_backend_h2_goaway_resp | Total number of GOAWAY sent on detected error | counter |
haproxy_backend_h2_headers_rcvd | Total number of received HEADERS frames | counter |
haproxy_backend_h2_headers_rcvd | Total number of received HEADERS frames | counter |
haproxy_backend_h2_open_connections | Count of currently open connections | counter |
haproxy_backend_h2_open_connections | Count of currently open connections | counter |
haproxy_backend_h2_rst_stream_rcvd | Total number of received RST_STREAM frames | counter |
haproxy_backend_h2_rst_stream_rcvd | Total number of received RST_STREAM frames | counter |
haproxy_backend_h2_rst_stream_resp | Total number of RST_STREAM sent on detected error | counter |
haproxy_backend_h2_rst_stream_resp | Total number of RST_STREAM sent on detected error | counter |
haproxy_backend_h2_settings_rcvd | Total number of received SETTINGS frames | counter |
haproxy_backend_h2_settings_rcvd | Total number of received SETTINGS frames | counter |
haproxy_backend_h2_total_connections | Total number of connections | counter |
haproxy_backend_http_cache_hits_total | Total number of HTTP requests not found in the cache on this frontend/backend since the worker process started | counter |
haproxy_backend_http_cache_lookups_total | Total number of HTTP requests looked up in the cache on this frontend/backend since the worker process started | counter |
haproxy_backend_http_comp_bytes_bypassed_total | Total number of bytes that bypassed HTTP compression for this object since the worker process started (CPU/memory/bandwidth limitation) | counter |
haproxy_backend_http_comp_bytes_in_total | Total number of bytes submitted to the HTTP compressor for this object since the worker process started | counter |
haproxy_backend_http_comp_bytes_out_total | Total number of bytes emitted by the HTTP compressor for this object since the worker process started | counter |
haproxy_backend_http_comp_responses_total | Total number of HTTP responses that were compressed for this object since the worker process started | counter |
haproxy_backend_http_requests_total | Total number of HTTP requests processed by this object since the worker process started | counter |
haproxy_backend_http_responses_total | Total number of HTTP responses with status 100-199 returned by this object since the worker process started | counter |
haproxy_backend_internal_errors_total | Total number of internal errors since process started | counter |
haproxy_backend_last_session_seconds | How long ago some traffic was seen on this object on this worker process, in seconds | gauge |
haproxy_backend_limit_sessions | Frontend/listener/server’s maxconn, backend’s fullconn | gauge |
haproxy_backend_loadbalanced_total | Total number of requests routed by load balancing since the worker process started (ignores queue pop and stickiness) | counter |
haproxy_backend_max_connect_time_seconds | Maximum observed time spent waiting for a connection to complete | gauge |
haproxy_backend_max_queue | Highest value of queued connections encountered since process started | gauge |
haproxy_backend_max_queue_time_seconds | Maximum observed time spent in the queue | gauge |
haproxy_backend_max_response_time_seconds | Maximum observed time spent waiting for a server response | gauge |
haproxy_backend_max_session_rate | Highest value of sessions per second observed since the worker process started | gauge |
haproxy_backend_max_sessions | Highest value of current sessions encountered since process started | gauge |
haproxy_backend_max_total_time_seconds | Maximum observed total request+response time (request+queue+connect+response+processing) | gauge |
haproxy_backend_queue_time_average_seconds | Avg. queue time for last 1024 successful connections | gauge |
haproxy_backend_redispatch_warnings_total | Total number of server redispatches due to connection failures since the worker process started | counter |
haproxy_backend_requests_denied_total | Total number of denied requests since process started | counter |
haproxy_backend_response_errors_total | Total number of invalid responses since the worker process started | counter |
haproxy_backend_response_time_average_seconds | Avg. response time for last 1024 successful connections | gauge |
haproxy_backend_responses_denied_total | Total number of denied responses since process started | counter |
haproxy_backend_retry_warnings_total | Total number of server connection retries since the worker process started | counter |
haproxy_backend_server_aborts_total | Total number of requests or connections aborted by the server since the worker process started | counter |
haproxy_backend_sessions_total | Total number of sessions since process started | counter |
haproxy_backend_ssl_failed_handshake | Total number of failed handshake | counter |
haproxy_backend_ssl_failed_handshake | Total number of failed handshake | counter |
haproxy_backend_ssl_reused_sess | Total number of ssl sessions reused | counter |
haproxy_backend_ssl_reused_sess | Total number of ssl sessions reused | counter |
haproxy_backend_ssl_sess | Total number of ssl sessions established | counter |
haproxy_backend_ssl_sess | Total number of ssl sessions established | counter |
haproxy_backend_status | Current status of the service, per state label value | gauge |
haproxy_backend_total_time_average_seconds | Avg. total time for last 1024 successful connections | gauge |
haproxy_backend_uweight | Server’s user weight, or sum of active servers’ user weights for a backend | gauge |
haproxy_backend_weight | Server’s effective weight, or sum of active servers’ effective weights for a backend | gauge |
Server metrics Jump to heading
Name | Description | Type |
---|---|---|
haproxy_server_active | Total number of active UP servers with a non-zero weight | gauge |
haproxy_server_backup | Total number of backup UP servers with a non-zero weight | gauge |
haproxy_server_bytes_in_total | Total number of request bytes since process started | counter |
haproxy_server_bytes_out_total | Total number of response bytes since process started | counter |
haproxy_server_check_code | layer5-7 code, if available of the last health check | gauge |
haproxy_server_check_duration_seconds | Total duration of the latest server health check, in seconds | gauge |
haproxy_server_check_failures_total | Total number of failed individual health checks per server/backend, since the worker process started | counter |
haproxy_server_check_last_change_seconds | How long ago the last server state changed, in seconds | gauge |
haproxy_server_check_status | Status of last health check, per state label value | gauge |
haproxy_server_check_up_down_total | Total number of failed checks causing UP to DOWN server transitions, per server/backend, since the worker process started | counter |
haproxy_server_client_aborts_total | Total number of requests or connections aborted by the client since the worker process started | counter |
haproxy_server_connect_time_average_seconds | Avg. connect time for last 1024 successful connections | gauge |
haproxy_server_connection_attempts_total | Total number of outgoing connection attempts on this backend/server since the worker process started | counter |
haproxy_server_connection_errors_total | Total number of failed connections to server since the worker process started | counter |
haproxy_server_connection_reuses_total | Total number of reused connection on this backend/server since the worker process started | counter |
haproxy_server_current_queue | Number of current queued connections | gauge |
haproxy_server_current_sessions | Number of current sessions on the frontend, backend or server | gauge |
haproxy_server_current_throttle | Throttling ratio applied to a server’s maxconn and weight during the slowstart period (0 to 100%) | gauge |
haproxy_server_downtime_seconds_total | Total time spent in DOWN state, for server or backend | counter |
haproxy_server_failed_header_rewriting_total | Total number of failed HTTP header rewrites since the worker process started | counter |
haproxy_server_http_responses_total | Total number of HTTP responses with status 100-199 returned by this object since the worker process started | counter |
haproxy_server_idle_connections_current | Current number of idle connections available for reuse on this server | gauge |
haproxy_server_idle_connections_limit | Limit on the number of available idle connections on this server (server pool_max_conn directive) |
gauge |
haproxy_server_internal_errors_total | Total number of internal errors since process started | counter |
haproxy_server_last_session_seconds | How long ago some traffic was seen on this object on this worker process, in seconds | gauge |
haproxy_server_limit_sessions | Frontend/listener/server’s maxconn, backend’s fullconn | gauge |
haproxy_server_loadbalanced_total | Total number of requests routed by load balancing since the worker process started (ignores queue pop and stickiness) | counter |
haproxy_server_max_connect_time_seconds | Maximum observed time spent waiting for a connection to complete | gauge |
haproxy_server_max_queue | Highest value of queued connections encountered since process started | gauge |
haproxy_server_max_queue_time_seconds | Maximum observed time spent in the queue | gauge |
haproxy_server_max_response_time_seconds | Maximum observed time spent waiting for a server response | gauge |
haproxy_server_max_session_rate | Highest value of sessions per second observed since the worker process started | gauge |
haproxy_server_max_sessions | Highest value of current sessions encountered since process started | gauge |
haproxy_server_max_total_time_seconds | Maximum observed total request+response time (request+queue+connect+response+processing) | gauge |
haproxy_server_need_connections_current | Estimated needed number of connections | gauge |
haproxy_server_queue_limit | Limit on the number of connections in queue, for servers only (maxqueue argument) | gauge |
haproxy_server_queue_time_average_seconds | Avg. queue time for last 1024 successful connections | gauge |
haproxy_server_redispatch_warnings_total | Total number of server redispatches due to connection failures since the worker process started | counter |
haproxy_server_response_errors_total | Total number of invalid responses since the worker process started | counter |
haproxy_server_response_time_average_seconds | Avg. response time for last 1024 successful connections | gauge |
haproxy_server_responses_denied_total | Total number of denied responses since process started | counter |
haproxy_server_retry_warnings_total | Total number of server connection retries since the worker process started | counter |
haproxy_server_safe_idle_connections_current | Current number of safe idle connections | gauge |
haproxy_server_server_aborts_total | Total number of requests or connections aborted by the server since the worker process started | counter |
haproxy_server_sessions_total | Total number of sessions since process started | counter |
haproxy_server_ssl_failed_handshake | Total number of failed handshake | counter |
haproxy_server_ssl_reused_sess | Total number of ssl sessions reused | counter |
haproxy_server_ssl_sess | Total number of ssl sessions established | counter |
haproxy_server_status | Current status of the service, per state label value | gauge |
haproxy_server_total_time_average_seconds | Avg. total time for last 1024 successful connections | gauge |
haproxy_server_unsafe_idle_connections_current | Current number of unsafe idle connections | gauge |
haproxy_server_used_connections_current | Current number of connections in use | gauge |
haproxy_server_uweight | Server’s user weight, or sum of active servers’ user weights for a backend | gauge |
haproxy_server_weight | Server’s effective weight, or sum of active servers’ effective weights for a backend | gauge |
DNS resolver metrics Jump to heading
Name | Description | Type |
---|---|---|
haproxy_resolver_any_err | Any errors | gauge |
haproxy_resolver_cname | CNAME | gauge |
haproxy_resolver_cname_error | CNAME error | gauge |
haproxy_resolver_invalid | Invalid | gauge |
haproxy_resolver_nx | NX | gauge |
haproxy_resolver_other | Other | gauge |
haproxy_resolver_outdated | Outdated | gauge |
haproxy_resolver_refused | Refused | gauge |
haproxy_resolver_send_error | Send error | gauge |
haproxy_resolver_sent | Sent | gauge |
haproxy_resolver_timeout | Timeout | gauge |
haproxy_resolver_too_big | Too big | gauge |
haproxy_resolver_truncated | Truncated | gauge |
haproxy_resolver_update | Update | gauge |
haproxy_resolver_valid | Valid | gauge |
Stick table metrics Jump to heading
Name | Description | Type |
---|---|---|
haproxy_sticktable_size | Stick table size | gauge |
haproxy_sticktable_used | Number of entries used in this stick table | gauge |
See also Jump to heading
Do you have any suggestions on how we can improve the content of this page?