• English日本語한국어
  • Log inStart now

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.

Guided install, US region

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

STATS_URL

A URL pointing to the HAProxy stats page.

N/A

M/I

USERNAME

Username for the HAProxy connection.

N/A

M/I

PASSWORD

Password for the given user.

N/A

M/I

HA_PROXY_CLUSTER_NAME

A user-defined name to uniquely identify the cluster being monitored. Required.

N/A

M/I

METRICS

Set to true to enable Metrics-only collection.

false

INVENTORY

Set to true to enable Inventory-only collection.

false

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

backend.activeServers

Number of active servers.

backend.averageConnectTimeInSeconds

Average connect time over the 1024 last requests, in milliseconds.

backend.averageQueueTimeInSeconds

Average queue time over the 1024 last requests, in milliseconds.

backend.averageResponseTimeInSeconds

Average response time over the 1024 last requests, in milliseconds.

backend.averageTotalSessionTimeInSeconds

Average total session time over the 1024 last requests, in milliseconds.

backend.backupServers

Number of backup servers.

backend.bytesInPerSecond

Bytes received per second.

backend.bytesOutPerSecond

Bytes sent per second.

backend.bytesThatBypassedCompressorPerSecond

Number of bytes that bypassed the HTTP compressor per second.

backend.connectingRequestErrorsPerSecond

Number of requests that encountered an error trying to connect to a backend server per second.

backend.connectionRetriesPerSecond

Number of times a connection to a server was retried per second.

backend.cookieName

The name of the cookie.

backend.currentQueuedRequestsWithoutServer

Current queued requests without a server assigned.

backend.currentSessions

Number of current sessions.

backend.dataTransfersAbortedByClientPerSecond

Number of data transfers aborted by the client per second.

backend.dataTransfersAbortedByServerPerSecond

Number of data transfers aborted by the server per second.

backend.downtimeInSeconds

Total downtime in seconds.

backend.http100ResponsesPerSecond

HTTP responses with 1xx code per second.

backend.http200ResponsesPerSecond

HTTP responses with 2xx code per second.

backend.http300ResponsesPerSecond

HTTP responses with 3xx code per second.

backend.http400ResponsesPerSecond

HTTP responses with 4xx code per second.

backend.http500ResponsesPerSecond

HTTP responses with 5xx code per second.

backend.httpOtherResponsesPerSecond

HTTP responses with other codes (protocol error) per second.

backend.httpRequestsPerSecond

HTTP requests per second.

backend.httpResponseBytesEmittedByCompressorPerSecond

Number of HTTP response bytes emitted by the compressor per second.

backend.httpResponseBytesFedToCompressorPerSecond

Number of HTTP response bytes fed to the compressor per second.

backend.httpResponsesCompressedPerSecond

Number of HTTP responses that were compressed per second.

backend.interceptedRequestsPerSecond

Intercepted requests per second.

backend.maxQueuedRequestsWithoutServer

Maximum queued requests without a server assigned.

backend.maxSessions

Maximum number of sessions.

backend.maxSessionsPerSecond

Maximum number of new sessions per second.

backend.mode

The proxy mode. Options: tcp, http, health, unknown.

backend.proxyName

The name of the proxy.

backend.requestRedispatchPerSecond

Number of times a request was redispatched to another server per second.

backend.requestsDenied.securityConcernPerSecond

Requests denied bytcp-request connection rules per second.

backend.responseErrorsPerSecond

Response errors per second.

backend.responsesDenied.securityConcernPerSecond

Requests denied bytcp-request session rules per second.

backend.serverSelectedPerSecond

Number of times a server was selected per second, either for new sessions, or when re-dispatching.

backend.sessionsPerSecond

Sessions created per second.

backend.status

Status. Options: UP, DOWN, NOLB, MAINT, MAINT(via), MAINT(resolution).

backend.timeSinceLastSessionAssignedInSeconds

Number of seconds since last session assigned to backend.

backend.timeSinceLastUpDownTransitionInSeconds

Number of seconds since the last UP<->DOWN transition.

backend.totalWeight

Total weight of the backend.

backend.type

Type of backend. 0 = frontend, 1 = backend, 2 = server, 3 = socket/listener.

backend.upToDownTransitionsPerSecond

Number of UP->DOWN transitions per second.

HAProxy frontend sample metrics

These attributes are attached to the HAProxyFrontendSample event type:

Metric

Description

frontend.bytesInPerSecond

Number of bytes received per second.

frontend.bytesOutPerSecond

Number of bytes sent per second.

frontend.connectionsPerSecond

Number of connections per second.

frontend.currentSessions

Number of current sessions.

frontend.http100ResponsesPerSecond

HTTP responses with 1xx code per second.

frontend.http200ResponsesPerSecond

HTTP responses with 2xx code per second.

frontend.http300ResponsesPerSecond

HTTP responses with 3xx code per second.

frontend.http400ResponsesPerSecond

HTTP responses with 4xx code per second.

frontend.http500ResponsesPerSecond

HTTP responses with 5xx code per second.

frontend.httpOtherResponsesPerSecond

HTTP responses with other codes (protocol error).

frontend.httpRequests.maxPerSecond

Max number of HTTP requests per second observed.

frontend.httpRequestsPerSecond

HTTP requests per second.

frontend.interceptedRequestsPerSecond

Intercepted requests per second.

frontend.maxConnectionsPerSecond

Maximum number of connections.

frontend.maxSessions

Maximum number of sessions.

frontend.maxSessionsPerSecond

Maximum number of new sessions per second.

frontend.mode

Proxy mode. One of tcp, http, health, unknown.

frontend.proxyName

The name of the proxy.

frontend.requestErrors

Request errors per second.

frontend.requestsDenied.securityConcernsPerSecond

Requests denied because of security concerns per second.

frontend.requestsDenied.tcpRequestConnectionRulesPerSecond

Requests denied bytcp-request connection rules per second.

frontend.requestsDenied.tcpRequestSessionRulesPerSecond

Requests denied bytcp-request session rules per second.

frontend.responsesDenied.securityConcernsPerSecond

Responses denied because of security concerns per second.

frontend.serviceName

The name of the service.

frontend.sessionsPerSecond

Sessions created per second.

frontend.status

The status of the frontend. Options: UP, DOWN, NOLB, MAINT, MAINT(via), MAINT(resolution).

frontend.type

Type of frontend. 0 = frontend, 1 = backend, 2 = server, 3 = socket/listener.

HAProxy server sample metrics

These attributes are attached to the HAProxyServerSample event type:

Metric

Description

server.agentCheckContents

Last agent check contents or textual error.

server.agentDurationInSeconds

Time taken to finish last check, in milliseconds.

server.agentStatus

Status of the agent.

server.agentStatusDescription

Short human-readable description of agent_status.

server.averageConnectTimeInSeconds

Average connect time over the 1024 last requests, in milliseconds.

server.averageQueueTimeInSeconds

Average queue time over the 1024 last requests, in milliseconds.

server.averageResponseTimeInSeconds

Average response time over the 1024 last requests, in milliseconds.

server.averageTotalSessionTimeInSeconds

Average total session time over the 1024 last requests, in milliseconds.

server.bytesInPerSecond

Bytes received per second.

server.bytesOutPerSecond

Bytes sent per second.

server.checkStatusDescription

Short human-readable description of check_status.

server.connectingToBackendRequestErrorsPerSecond

Number of requests that encountered an error trying to connect to a backend server per second.

server.connectionRetriesPerSecond

Number of times a connection to a server was retried per second.

server.cookieValue

Server's cookie value.

server.currentSessions

Number of current sessions.

server.dataTransfersAbortedByClientPerSecond

Number of data transfers aborted by the client per second.

server.dataTransfersAbortedByServerPerSecond

Number of data transfers aborted by the server per second.

server.downtimeInSeconds

Total downtime in seconds.

server.failedChecksPerSecond

Number of failed checks per second.

server.failedHealthCheckDetails

Failed health check details.

server.healthCheckContents

Last health check contents or textual error.

server.healthCheckDurationInMilliseconds

Time it took to finish the last health check, in milliseconds.

server.healthCheckStatus

Health check status.

server.http100ResponsesPerSecond

HTTP responses with 1xx code per second.

server.http200ResponsesPerSecond

HTTP responses with 2xx code per second.

server.http300ResponsesPerSecond

HTTP responses with 3xx code per second.

server.http400ResponsesPerSecond

HTTP responses with 4xx code per second.

server.http500ResponsesPerSecond

HTTP responses with 5xx code per second.

server.httpOtherResponsesPerSecond

HTTP responses with other codes (protocol error).

server.isActive

Whether the server is active. 0 = Inactive, 1 = Active.

server.isBackup

Whether the server is a backup. 0 = Not Backup, 1 = Backup.

server.layerCode

Layer 5-7 code, if available.

server.maximumQueuedRequests

Maximum queued requests.

server.maxSessions

Number of maximum sessions.

server.maxSessionsPerSecond

Max sessions per second.

server.mode

Proxy mode. One of tcp, http, health, unknown.

server.proxyName

The name of the proxy.

server.queuedRequests

Current queued requests.

server.requestRedispatchPerSecond

Number of times a request was redispatched to another server per second.

server.requestsDenied.securityConcernPerSecond

Requests denied because of security concerns per second.

server.responseErrorsPerSecond

Response errors per second.

server.responsesDenied.securityConcernPerSecond

Responses denied because of security concerns per second.

server.serverID

The server ID.

server.serverSelectedPerSecond

Number of times a server was selected per second, either for new sessions, or when re-dispatching.

server.serverWeight

The server weight.

server.serviceName

The name of the service.

server.sessionsPerSecond

Sessions per second.

server.status

The status of the server. Options: UP, DOWN, NOLB, MAINT, MAINT(via), MAINT(resolution).

server.throttlePercentage

Throttle percentage for the server, when slowstart is active. Or no value if not in slowstart.

server.timeSinceLastSessionAssignedInSeconds

Number of seconds since last session assigned to backend.

server.timeSinceLastUpDownTransitionInSeconds

Number of seconds since the last UP<->DOWN transition.

server.type

The type of server. 0 = frontend, 1 = backend, 2 = server, 3 = socket/listener.

server.upToDownTransitionsPerSecond

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

iid

The backend proxy ID.

pid

The backend process ID.

slim

The backend session limit.

Frontend inventory

Name

Description

iid

The frontend proxy ID.

pid

The frontend process ID.

rate_lim

New session per second limit.

slim

The frontend session limit.

Server inventory

Name

Description

iid

The backend proxy ID.

pid

The server process ID.

qmax

The configured max queue. 0 = no limit.

sid

The server ID.

slim

The server session limit.

Copyright © 2024 New Relic Inc.

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