HAProxy monitoring integration
Our HAProxy integration collects and sends inventory and metrics from your HAProxy instance to the New Relic platform, where you can aggregate and visualize key performance metrics for the HAProxy server, frontends, and backends.
To get the most out of this page, select the installation method that fits your environment. You need a New Relic account before starting the installation process.
Tip
Use guided install to quickly see your data in the UI
The guided install is a single CLI command you can run to monitor your instance. It's a good option for small organizations, or for anyone who wants to test out New Relic.
For a more permanent and scalable solution, we recommend the standard manual install of the agent: keep reading for how to do that.
Example configurations
Here are some example YAML configurations:
HAProxy configuration options
The Apache integration collects both metrics and inventory information. This table shows what each configuration option applies to.
Setting | Description | Default | Applies To |
---|---|---|---|
| A URL pointing to the HAProxy stats page. | N/A | M/I |
| Username for the HAProxy connection. | N/A | M/I |
| Password for the given user. | N/A | M/I |
| A user-defined name to uniquely identify the cluster being monitored. Required. | N/A | M/I |
| Set to |
| |
| Set to |
|
The values for these settings can be defined in several ways:
- Adding the value directly in the config file (the most common way).
- Replacing the values from environment variables using the
{{}}
notation. This requires infrastructure agent version 1.14.0 or higher. For more information, see Infrastructure configuration or see the environment variable example. - Using secrets management. Use this to protect sensitive information, such as passwords that would be exposed in plain text in the configuration file. For more information, see Secrets management.
Labels
You can further decorate your metrics using labels. Labels allow you to add attributes (key/value pairs) to your metrics, which you can then use to query, filter, or group your metrics.
Our default sample config file includes examples of labels but, because they're not mandatory, you can remove, modify, or add new ones of your choice.
labels: env: production role: load_balancer
Metric data
The HAProxy integration collects the following metric data attributes. Each metric name is prefixed with a category indicator and a period, such as backend.
, frontend.
, or server.
.
HAProxy backend sample metrics
These attributes are attached to the HAProxyBackendSample
event type:
Metric | Description |
---|---|
| Number of active servers. |
| Average connect time over the 1024 last requests, in milliseconds. |
| Average queue time over the 1024 last requests, in milliseconds. |
| Average response time over the 1024 last requests, in milliseconds. |
| Average total session time over the 1024 last requests, in milliseconds. |
| Number of backup servers. |
| Bytes received per second. |
| Bytes sent per second. |
| Number of bytes that bypassed the HTTP compressor per second. |
| Number of requests that encountered an error trying to connect to a backend server per second. |
| Number of times a connection to a server was retried per second. |
| The name of the cookie. |
| Current queued requests without a server assigned. |
| Number of current sessions. |
| Number of data transfers aborted by the client per second. |
| Number of data transfers aborted by the server per second. |
| Total downtime in seconds. |
| HTTP responses with 1xx code per second. |
| HTTP responses with 2xx code per second. |
| HTTP responses with 3xx code per second. |
| HTTP responses with 4xx code per second. |
| HTTP responses with 5xx code per second. |
| HTTP responses with other codes (protocol error) per second. |
| HTTP requests per second. |
| Number of HTTP response bytes emitted by the compressor per second. |
| Number of HTTP response bytes fed to the compressor per second. |
| Number of HTTP responses that were compressed per second. |
| Intercepted requests per second. |
| Maximum queued requests without a server assigned. |
| Maximum number of sessions. |
| Maximum number of new sessions per second. |
| The proxy mode. Options: tcp, http, health, unknown. |
| The name of the proxy. |
| Number of times a request was redispatched to another server per second. |
| Requests denied bytcp-request connection rules per second. |
| Response errors per second. |
| Requests denied bytcp-request session rules per second. |
| Number of times a server was selected per second, either for new sessions, or when re-dispatching. |
| Sessions created per second. |
| Status. Options: UP, DOWN, NOLB, MAINT, MAINT(via), MAINT(resolution). |
| Number of seconds since last session assigned to backend. |
| Number of seconds since the last UP<->DOWN transition. |
| Total weight of the backend. |
| Type of backend. |
| Number of UP->DOWN transitions per second. |
HAProxy frontend sample metrics
These attributes are attached to the HAProxyFrontendSample
event type:
Metric | Description |
---|---|
| Number of bytes received per second. |
| Number of bytes sent per second. |
| Number of connections per second. |
| Number of current sessions. |
| HTTP responses with 1xx code per second. |
| HTTP responses with 2xx code per second. |
| HTTP responses with 3xx code per second. |
| HTTP responses with 4xx code per second. |
| HTTP responses with 5xx code per second. |
| HTTP responses with other codes (protocol error). |
| Max number of HTTP requests per second observed. |
| HTTP requests per second. |
| Intercepted requests per second. |
| Maximum number of connections. |
| Maximum number of sessions. |
| Maximum number of new sessions per second. |
| Proxy mode. One of tcp, http, health, unknown. |
| The name of the proxy. |
| Request errors per second. |
| Requests denied because of security concerns per second. |
| Requests denied bytcp-request connection rules per second. |
| Requests denied bytcp-request session rules per second. |
| Responses denied because of security concerns per second. |
| The name of the service. |
| Sessions created per second. |
| The status of the frontend. Options: UP, DOWN, NOLB, MAINT, MAINT(via), MAINT(resolution). |
| Type of frontend. |
HAProxy server sample metrics
These attributes are attached to the HAProxyServerSample
event type:
Metric | Description |
---|---|
| Last agent check contents or textual error. |
| Time taken to finish last check, in milliseconds. |
| Status of the agent. |
| Short human-readable description of |
| Average connect time over the 1024 last requests, in milliseconds. |
| Average queue time over the 1024 last requests, in milliseconds. |
| Average response time over the 1024 last requests, in milliseconds. |
| Average total session time over the 1024 last requests, in milliseconds. |
| Bytes received per second. |
| Bytes sent per second. |
| Short human-readable description of |
| Number of requests that encountered an error trying to connect to a backend server per second. |
| Number of times a connection to a server was retried per second. |
| Server's cookie value. |
| Number of current sessions. |
| Number of data transfers aborted by the client per second. |
| Number of data transfers aborted by the server per second. |
| Total downtime in seconds. |
| Number of failed checks per second. |
| Failed health check details. |
| Last health check contents or textual error. |
| Time it took to finish the last health check, in milliseconds. |
| Health check status. |
| HTTP responses with 1xx code per second. |
| HTTP responses with 2xx code per second. |
| HTTP responses with 3xx code per second. |
| HTTP responses with 4xx code per second. |
| HTTP responses with 5xx code per second. |
| HTTP responses with other codes (protocol error). |
| Whether the server is active. |
| Whether the server is a backup. |
| Layer 5-7 code, if available. |
| Maximum queued requests. |
| Number of maximum sessions. |
| Max sessions per second. |
| Proxy mode. One of tcp, http, health, unknown. |
| The name of the proxy. |
| Current queued requests. |
| Number of times a request was redispatched to another server per second. |
| Requests denied because of security concerns per second. |
| Response errors per second. |
| Responses denied because of security concerns per second. |
| The server ID. |
| Number of times a server was selected per second, either for new sessions, or when re-dispatching. |
| The server weight. |
| The name of the service. |
| Sessions per second. |
| The status of the server. Options: UP, DOWN, NOLB, MAINT, MAINT(via), MAINT(resolution). |
| Throttle percentage for the server, when slowstart is active. Or no value if not in slowstart. |
| Number of seconds since last session assigned to backend. |
| Number of seconds since the last UP<->DOWN transition. |
| The type of server. |
| Number of UP->DOWN transitions per second. |
Inventory data
The HAProxy integration captures the configuration parameters of the HAProxy instance. The data is available on the infrastructure Inventory page, under the config/haproxy source. For more about inventory data, see Understand integration data.
The integration captures data for the following configuration parameters:
Backend inventory
Name | Description |
---|---|
| The backend proxy ID. |
| The backend process ID. |
| The backend session limit. |
Frontend inventory
Name | Description |
---|---|
| The frontend proxy ID. |
| The frontend process ID. |
| New session per second limit. |
| The frontend session limit. |
Server inventory
Name | Description |
---|---|
| The backend proxy ID. |
| The server process ID. |
| The configured max queue. |
| The server ID. |
| The server session limit. |