Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

メトリクス

最終更新 Markdown で表示Agent セットアップ

Queues は、キューのバックログ、コンシューマーの同時実行数、メッセージ操作を計測できるメトリクスを公開します。

Cloudflare ダッシュボード に表示されるメトリクスは、Cloudflare の GraphQL Analytics API から照会されます。GraphQL または HTTP クライアントから プログラムで メトリクスにアクセスできます。

メトリクス

バックログ

Queues は、次のメトリクスを queuesBacklogAdaptiveGroups データセットで公開します。

メトリクス GraphQL フィールド名 説明
バックログバイト数 bytes バックログの平均サイズ(バイト)
バックログメッセージ数 messages バックログの平均サイズ(メッセージ数)

queuesBacklogAdaptiveGroups データセットは、照会のフィルタとグループ化に次のディメンションを提供します。

  • queueID - Queue の ID
  • datetime - メッセージが送られた時刻
  • date - メッセージが送られた時刻(日の始まりに切り捨て)
  • datetimeHour - メッセージが送られた時刻(時の始まりに切り捨て)
  • datetimeMinute - メッセージが送られた時刻(分の始まりに切り捨て)

コンシューマーの同時実行数

Queues は、次のメトリクスを queueConsumerMetricsAdaptiveGroups データセットで公開します。

メトリクス GraphQL フィールド名 説明
平均コンシューマー同時実行数 concurrency 期間中の同時コンシューマー数の平均

queueConsumerMetricsAdaptiveGroups データセットは、照会のフィルタとグループ化に次のディメンションを提供します。

  • queueID - Queue の ID
  • datetime - コンシューマーメトリクスの時刻
  • date - コンシューマーメトリクスの時刻(日の始まりに切り捨て)
  • datetimeHour - コンシューマーメトリクスの時刻(時の始まりに切り捨て)
  • datetimeMinute - コンシューマーメトリクスの時刻(分の始まりに切り捨て)

メッセージ操作

Queues は、次のメトリクスを queueMessageOperationsAdaptiveGroups データセットで公開します。

メトリクス GraphQL フィールド名 説明
課金対象操作の合計 billableOperations 期間中の課金対象操作(書き込み、読み取り、削除)の合計
合計バイト数 bytes Queue から読み取り、書き込み、削除したバイト数の合計
遅延 lagTime メッセージの書き込みから消費操作までの平均遅延時間(ミリ秒)
再試行 retryCount メッセージあたりの平均再試行回数
メッセージサイズ messageSize 指定期間中の最大メッセージサイズ

queueMessageOperationsAdaptiveGroups データセットは、照会のフィルタとグループ化に次のディメンションを提供します。

  • queueID - Queue の ID
  • actionType - メッセージ操作の種類。WriteMessageReadMessageDeleteMessage のいずれか
  • consumerType - Queue コンシューマーの種類。worker または httpReadMessageDeleteMessage の操作種別でのみ適用
  • outcome - メッセージ操作の結果。DeleteMessage の操作種別でのみ適用。successdlqfail のいずれか
  • datetime - メッセージ操作の時刻
  • date - メッセージ操作の時刻(日の始まりに切り捨て)
  • datetimeHour - メッセージ操作の時刻(時の始まりに切り捨て)
  • datetimeMinute - メッセージ操作の時刻(分の始まりに切り捨て)

リアルタイムバックログ

リアルタイムのバックログメトリクスは、Queues REST APIJavaScript API から取得できます。これらのメトリクスは集計値ではなく、その時点の値です。

メトリクス フィールド名 説明
バックログ件数 backlog_count 現在 Queue にあるメッセージ数
バックログバイト数 backlog_bytes Queue 内メッセージの合計サイズ(バイト)
最古メッセージのタイムスタンプ oldest_message_timestamp_ms Queue 内で最も古いメッセージのタイムスタンプ(ミリ秒)

REST API でこれらのメトリクスを取得するには、metrics エンドポイント(/accounts/{account_id}/queues/{queue_id}/metrics)を使います。

これらのフィールドは、JavaScript API の send()sendBatch()metrics() を呼び出したときの metadata.metrics にも含まれます。

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
				}
			}
		}
	}
}

役に立ちましたか?