← Cloudflare Queues / queues / observability
Метрики
Queues предоставляет метрики, которые позволяют оценить бэклог очереди, параллелизм потребителей и операции с сообщениями.
Метрики, отображаемые в Панель управления Cloudflare ↗ запрашиваются из Cloudflare GraphQL Analytics API. Вы можете получить доступ к метрикам программно через GraphQL или HTTP-клиент.
Метрики
Бэклог
Queues экспортирует приведённые ниже метрики в рамках queuesBacklogAdaptiveGroups набор данных.
| Метрика | Имя поля GraphQL | Описание |
|---|---|---|
| Бэклог, байт | bytes |
Средний размер бэклога, в байтах |
| Бэклог, сообщений | messages |
Средний размер бэклога, в количестве сообщений |
queuesBacklogAdaptiveGroups набор данных предоставляет следующие измерения для фильтрации и группировки запросов:
queueID: идентификатор очередиdatetime: отметка времени отправки сообщенияdate: отметка времени отправки сообщения, усечённая до начала дняdatetimeHour: отметка времени отправки сообщения, усечённая до начала часаdatetimeMinute: отметка времени отправки сообщения, усечённая до начала минуты
Параллельность потребителей
Queues экспортирует приведённые ниже метрики в рамках queueConsumerMetricsAdaptiveGroups набор данных.
| Метрика | Имя поля GraphQL | Описание |
|---|---|---|
| Ср. конкурентность потребителей | concurrency |
Среднее количество параллельных потребителей за период |
queueConsumerMetricsAdaptiveGroups набор данных предоставляет следующие измерения для фильтрации и группировки запросов:
queueID: идентификатор очередиdatetime: отметка времени для метрик потребителяdate: отметка времени для метрик потребителя, усечённая до начала дняdatetimeHour: отметка времени для метрик потребителя, усечённая до начала часаdatetimeMinute: отметка времени для метрик потребителя, усечённая до начала минуты
Операции с сообщениями
Queues экспортирует приведённые ниже метрики в рамках queueMessageOperationsAdaptiveGroups набор данных.
| Метрика | Имя поля GraphQL | Описание |
|---|---|---|
| Всего оплачиваемых операций | billableOperations |
Сумма тарифицируемых операций (запись, чтение и удаление) за период времени |
| Всего байт | bytes |
Сумма байт, прочитанных, записанных и удалённых из очереди |
| Задержка | lagTime |
Среднее время задержки в миллисекундах между записью сообщения и операцией его получения потребителем. |
| Повторы | retryCount |
Среднее количество повторных попыток на одно сообщение |
| Размер сообщения | messageSize |
Максимальный размер сообщения за указанный период |
queueMessageOperationsAdaptiveGroups набор данных предоставляет следующие измерения для фильтрации и группировки запросов:
queueID: идентификатор очередиactionType: тип операции с сообщением. Может бытьWriteMessage,ReadMessageилиDeleteMessageconsumerType: тип потребителя очереди. Может бытьworkerилиhttp. Применимо только дляReadMessageиDeleteMessageтипы действийoutcome: результат операции с сообщением. Применимо только дляDeleteMessageтипы действий. Может бытьsuccess,dlqилиfail.datetime: отметка времени для операции с сообщениемdate: отметка времени для операции с сообщением, усечённая до начала дняdatetimeHour: отметка времени для операции с сообщением, усечённая до начала часаdatetimeMinute: отметка времени для операции с сообщением, усечённая до начала минуты
Бэклог в реальном времени
Вы можете получить метрики отставания в реальном времени через REST API для Queues и JavaScript API. Эти метрики показывают значения на определённый момент времени, а не агрегированные данные.
| Метрика | Имя поля | Описание |
|---|---|---|
| Бэклог, количество | backlog_count |
Текущее количество сообщений в очереди |
| Бэклог, байт | backlog_bytes |
Общий размер сообщений в очереди, в байтах |
| Метка времени самого старого сообщения | oldest_message_timestamp_ms |
Временная метка (в миллисекундах) самого старого сообщения в очереди |
Чтобы получить эти метрики через REST API, используйте конечную точку метрик (/accounts/{account_id}/queues/{queue_id}/metrics).
Эти поля также включены в metadata.metrics при вызове send(), sendBatch(), или metrics() через JavaScript API.
Примеры запросов GraphQL
Получение среднего размера бэклога очереди за период времени
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
}
}
}
}
}