Metrics
Queues expose metrics which allow you to measure the queue backlog, consumer concurrency, and message operations.
The metrics displayed in the Cloudflare dashboard ↗ are queried from Cloudflare’s GraphQL Analytics API. You can access the metrics programmatically via GraphQL or HTTP client.
Queues export the below metrics within the queuesBacklogAdaptiveGroups dataset.
| Metric | GraphQL Field Name | Description | 
|---|---|---|
| Backlog bytes | bytes | Average size of the backlog, in bytes | 
| Backlog messages | messages | Average size of the backlog, in number of messages | 
The queuesBacklogAdaptiveGroups dataset provides the following dimensions for filtering and grouping queries:
queueID- ID of the queuedatetime- Timestamp for when the message was sentdate- Timestamp for when the message was sent, truncated to the start of a daydatetimeHour- Timestamp for when the message was sent, truncated to the start of an hourdatetimeMinute- Timestamp for when the message was sent, truncated to the start of a minute
Queues export the below metrics within the queueConsumerMetricsAdaptiveGroups dataset.
| Metric | GraphQL Field Name | Description | 
|---|---|---|
| Avg. Consumer Concurrency | concurrency | Average number of concurrent consumers over the period | 
The queueConsumerMetricsAdaptiveGroups dataset provides the following dimensions for filtering and grouping queries:
queueID- ID of the queuedatetime- Timestamp for the consumer metricsdate- Timestamp for the consumer metrics, truncated to the start of a daydatetimeHour- Timestamp for the consumer metrics, truncated to the start of an hourdatetimeMinute- Timestamp for the consumer metrics, truncated to the start of a minute
Queues export the below metrics within the queueMessageOperationsAdaptiveGroups dataset.
| Metric | GraphQL Field Name | Description | 
|---|---|---|
| Total billable operations | billableOperations | Sum of billable operations (writes, reads, and deletes) over the time period | 
| Total Bytes | bytes | Sum of bytes read, written, and deleted from the queue | 
| Lag | lagTime | Average lag time in milliseconds between when the message was written and the operation to consume the message. | 
| Retries | retryCount | Average number of retries per message | 
| Message Size | messageSize | Maximum message size over the specified period | 
The queueMessageOperationsAdaptiveGroups dataset provides the following dimensions for filtering and grouping queries:
queueID- ID of the queueactionType- The type of message operation. Can beWriteMessage,ReadMessageorDeleteMessageconsumerType- The queue consumer type. Can beworkerorhttp. Only applicable forReadMessageandDeleteMessageaction typesoutcome- The outcome of the mesage operation. Only applicable forDeleteMessageaction types. Can besuccess,dlqorfail.datetime- Timestamp for the message operationdate- Timestamp for the message operation, truncated to the start of a daydatetimeHour- Timestamp for the message operation, truncated to the start of an hourdatetimeMinute- Timestamp for the message operation, truncated to the start of a minute
query QueueBacklog(  $accountTag: string!  $queueId: string!  $datetimeStart: Time!  $datetimeEnd: Time!) {  viewer {    accounts(filter: { accountTag: $accountTag }) {      queueBacklogAdaptiveGroups(        limit: 10000        filter: {          queueId: $queueId          datetime_geq: $datetimeStart          datetime_leq: $datetimeEnd        }      ) {        avg {          messages          bytes        }      }    }  }}query QueueConcurrencyByHour(  $accountTag: string!  $queueId: string!  $datetimeStart: Time!  $datetimeEnd: Time!) {  viewer {    accounts(filter: { accountTag: $accountTag }) {      queueConsumerMetricsAdaptiveGroups(        limit: 10000        filter: {          queueId: $queueId          datetime_geq: $datetimeStart          datetime_leq: $datetimeEnd        }        orderBy: [datetimeHour_DESC]      ) {        avg {          concurrency        }        dimensions {          datetimeHour        }      }    }  }}query QueueMessageOperationsByMinute(  $accountTag: string!  $queueId: string!  $datetimeStart: Date!  $datetimeEnd: Date!) {  viewer {    accounts(filter: { accountTag: $accountTag }) {      queueMessageOperationsAdaptiveGroups(        limit: 10000        filter: {          queueId: $queueId          datetime_geq: $datetimeStart          datetime_leq: $datetimeEnd        }        orderBy: [datetimeMinute_DESC]      ) {        count        sum {          bytes        }        dimensions {          datetimeMinute        }      }    }  }}Was this helpful?
- Resources
 - API
 - New to Cloudflare?
 - Products
 - Sponsorships
 - Open Source
 
- Support
 - Help Center
 - System Status
 - Compliance
 - GDPR
 
- Company
 - cloudflare.com
 - Our team
 - Careers
 
- 2025 Cloudflare, Inc.
 - Privacy Policy
 - Terms of Use
 - Report Security Issues
 - Trademark