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.
Metrics
Section titled “Metrics”Backlog
Section titled “Backlog”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
Consumer concurrency
Section titled “Consumer concurrency”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
Message operations
Section titled “Message operations”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
,ReadMessage
orDeleteMessage
consumerType
- The queue consumer type. Can beworker
orhttp
. Only applicable forReadMessage
andDeleteMessage
action typesoutcome
- The outcome of the mesage operation. Only applicable forDeleteMessage
action types. Can besuccess
,dlq
orfail
.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
Example GraphQL Queries
Section titled “Example GraphQL Queries”Get average queue backlog over time period
Section titled “Get average queue backlog over time period”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 } } } }}
Get average consumer concurrency by hour
Section titled “Get average consumer concurrency by hour”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 } } } }}
Get message operations by minute
Section titled “Get message operations by minute”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