Cloudflare Docs
Load Balancing
Visit Load Balancing on GitHub
Set theme to dark (⇧+D)

Load balancing analytics

Using load balancing analytics, you can:

  • Evaluate traffic flow.
  • Assess the health status of origin servers in your pools.
  • Review changes in pools and pool health over time.

​​ Dashboard Analytics

​​ Overview metrics

To view Overview metrics for your load balancer, go to Traffic > Load Balancing Analytics.

These metrics show the number of requests routed to specific pools within a load balancer, helping you:

  • Evaluate the effects of adding or removing a pool.
  • Decide when to create new origin pools.
  • Plan for peak traffic demands and future infrastructure needs.

Add additional filters for specific pools, times, regions, and origins.

​​ Latency

Latency metrics show an interactive map, helping you identify regions with Unhealthy or Slow pools.

To view latency information for your load balancer, go to Traffic > Load Balancing Analytics > Latency.

​​ Logs

Logs provide a history of all origin server status changes and how they affect your load balancing pools. Load Balancing only logs events that represent a status change for an origin, from healthy to unhealthy or vice versa.

To access logs in the dashboard, go to Traffic > Load Balancing Analytics. You can also access healthcheck logs using the API.

​​ GraphQL Analytics

For more flexibility, get load balancing metrics directly from the GraphQL Analytics API.

Get started with a sample query:

Requests per pool

This query shows the number of requests each pool receives from each location in Cloudflare’s global network.

Query
{
viewer {
zones(filter: {zoneTag: "your Zone ID"}) {
loadBalancingRequestsAdaptiveGroups(
limit: 100,
filter: {
datetime_geq: "2021-06-26T00:00:00Z",
datetime_leq: "2021-06-26T03:00:00Z",
lbName:"lb.example.com"
},
orderBy: [datetimeFifteenMinutes_DESC]
) {
count
dimensions {
datetimeFifteenMinutes
coloCode
selectedPoolName
}
}
}
}
}
Response (truncated)
{
"data": {
"viewer": {
"zones": [
{
"loadBalancingRequestsAdaptiveGroups": [
{
"count": 4,
"dimensions": {
"coloCode": "IAD",
"datetimeFifteenMinutes": "2021-06-26T00:45:00Z",
"selectedPoolName": "us-east"
}
},
...
]
}
]
}
}
}
Requests per data center

This query shows the weighted, round-trip time measurement (avgRttMs) for individual requests from a specific data center (for example, Singapore or SIN) to each pool in a specific load balancer.

Query
{
viewer {
zones(filter: {zoneTag: "your Zone ID"}) {
loadBalancingRequestsAdaptive(
limit: 100,
filter: {
datetime_geq: "2021-06-26T00:00:00Z",
datetime_leq: "2021-06-26T03:00:00Z",
lbName:"lb.example.com",
coloCode: "SIN"
},
orderBy: [datetime_DESC]
) {
selectedPoolName
pools {
poolName
healthy
healthCheckEnabled
avgRttMs
}
}
}
}
}
Response (truncated)
{
"data": {
"viewer": {
"zones": [
{
"loadBalancingRequestsAdaptive": [
{
"pools": [
{
"avgRttMs": 67,
"healthCheckEnabled": 1,
"healthy": 1,
"poolName": "asia-ne"
},
{
"avgRttMs": 156,
"healthCheckEnabled": 1,
"healthy": 1,
"poolName": "us-east_and_asia-ne"
},
{
"avgRttMs": 237,
"healthCheckEnabled": 1,
"healthy": 1,
"poolName": "us-east"
},
],
"selectedPoolName": "asia-ne"
},
...
]
}
]
}
}
}