HAProxy Server Monitoring

Overview

HAProxy is an open source solution for load balancing and reverse proxying both TCP and HTTP requests and, in keeping with the abbreviation in its name, it is high availability. HAProxy can continue to operate in the presence of failed backend servers, handling crossover reliably and seamlessly. It also has built-in health checks that will remove a backend if it fails several health checks in a row. With dynamic routing, you can transfer incoming traffic to a variety of backend servers, fully configurable with Access Control Lists (ACLs).

It is a fundamental element in the architecture of many high-profile websites such as GitHub, Instagram, Twitter, Stack Overflow, Reddit, Tumblr, Yelp, and many more.
Like other load balancers or proxies, HAProxy is very flexible and largely protocol-agnostic it can handle anything sent over TCP.

Graph Description

HAProxy Frontend Stats

MetricMetric Description
Requests/SecNumber of requests per second.
Sessions/SecNumber of session created per second. Session is created to serve all requests of same session by same backend.
Current Session CountCurrent number of sessions.
Request Errors/SecNumber of requests errors per second. Request errors could be as – client terminates before sending request, read error from client, client timeout, client terminated connection etc.
Denied Requests/SecNumber of requests denied per second due to security concerns.
Denied Responses/SecNumber of responses denied per second due to security concerns. For http this is because of a matched http-request rule, or “option checkcache”.
1xx Requests/SecNumber of requests per second with HTTP status code of 1xx series.
2xx Requests/SecNumber of requests per second with HTTP status code of 2xx series.
3xx Requests/SecNumber of requests per second with HTTP status code of 3xx series.
4xx Requests/SecNumber of requests per second with HTTP status code of 4xx series.
5xx Requests/SecNumber of requests per second with HTTP status code of 5xx series.
Others Requests/SecNumber of requests per second with status other than 1xx, 2xx, 3xx, 4xx and 5xx.
Received Throughput (Kbps)Received throughput in kilo bits per second.
Transmitted Throughput (Kbps)Transmitted throughput in kilo bits per second.
Server Status.Status of server. Status is 1 = DOWN, 2 = UP and Others = 3 (for example as open, maintenance etc).

HAProxy Backend Stats

MetricMetric Description
Requests/SecNumber of requests per second.
Sessions/SecNumber of sessions per second.
Current Session CountCurrent number of sessions.
Request Errors/SecNumber of requests errors per second. Request errors includes failed backend requests and general backend errors.
Denied Requests/SecNumber of requests denied per second. Request denied due to security concerns.
Response Errors/SecNumber of response errors per second. This includes errors caused by data transfers aborted by the servers as well as write errors on the client socket and failures due to ACLs.
Denied Responses/SecNumber of responses denied per second. Response denied due to security concerns.
1xx Requests/SecNumber of requests per second with HTTP status code of 1xx series.
2xx Requests/SecNumber of requests per second with HTTP status code of 2xx series.
3xx Requests/SecNumber of requests per second with HTTP status code of 3xx series.
4xx Requests/SecNumber of requests per second with HTTP status code of 4xx series.
5xx Requests/SecNumber of requests per second with HTTP status code of 5xx series.
Others Requests/SecNumber of requests per second with status other than 1xx, 2xx, 3xx, 4xx and 5xx.
Received Throughput (Kbps)Received throughput in kilo bits per second.
Transmitted Throughput (Kbps)Transmitted throughput in kilo bits per second.
Queued RequestsNumber of request awaiting assignment to a backend server.
Redispatched Requests/SecNumber of redispatch request per second. Requests that was unable to reach its original target, and was subsequently sent to a different server.
Connection Retry/SecNumber of times a connection to a server was retried per second.
Server StatusStatus of server. Status is 1 = DOWN, 2 = UP and Others = 3 (for example as open, maintenance etc).
Server Response Time (ms)Average backend response time in ms for the last 1,024 requests.