Skip to content

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

メトリクスと分析

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

Hyperdrive は分析データを公開します。アカウント内の各 Hyperdrive 設定について、クエリ量、クエリレイテンシ、キャッシュヒット率、コネクションプールのメトリクスを確認できます。

メトリクス

Hyperdrive は現在、hyperdriveQueriesAdaptiveGroupshyperdrivePoolSizesAdaptiveGroups の GraphQL データセットでメトリクスを公開しています。

クエリメトリクス

hyperdriveQueriesAdaptiveGroups データセットには、次のメトリクスが含まれます。

メトリクス GraphQL フィールド名 説明
クエリ数 count 指定期間に Hyperdrive へ発行されたクエリ数です。
キャッシュステータス cacheStatus クエリがキャッシュされたかどうかです。取りうる値は disabledhitmissuncacheablemultiplestatementsnotaqueryoversizedqueryoversizedresultparseerrortransactionvolatile です。
クエリバイト数 queryBytes クエリのサイズ(バイト)です。
結果バイト数 resultBytes クエリ 結果 のサイズ(バイト)です。
接続レイテンシ connectionLatency Hyperdrive からデータベースへ新しい接続を確立するのにかかった時間(ミリ秒)です。Hyperdrive のコネクションプールから計測します。
クエリレイテンシ queryLatency データベースへクエリを送り、結果を受け取るまでにかかった時間(ミリ秒)です。Hyperdrive のコネクションプールから計測します。
イベントステータス eventStatus クエリが成功した(complete)か、失敗した(error)かです。

volatile のキャッシュステータスは、クエリに STABLE または VOLATILE に分類される PostgreSQL 関数(例: NOW()RANDOM())が含まれることを示します。キャッシュ可否に影響する関数は クエリキャッシュ を参照してください。

プールサイズメトリクス

hyperdrivePoolSizesAdaptiveGroups データセットには、次のコネクションプールメトリクスが含まれます。

メトリクス GraphQL フィールド名 説明
平均オープン接続数 avg.currentPoolSize プールで現在開いている接続の平均数です。
平均利用可能スロット数 avg.availablePoolSlots チェックアウト可能なプール接続の平均数です。
平均待機クライアント数 avg.waitingClients プールからの接続を待っているクライアントの平均数です。
プールサイズ上限 max.maxPoolSize コネクションプールに設定した最大サイズです。
ピークオープン接続数 max.currentPoolSize プールで開いていた接続数のピークです。
ピーク待機クライアント数 max.waitingClients プールからの接続を待っていたクライアント数のピークです。

接続の競合は、待機クライアントの急増、またはオープン接続がプールサイズ上限に継続して近づくことで現れます。オープン接続がこの上限に定期的に近づく場合は、Hyperdrive の接続上限を増やす ことを検討してください。

メトリクスは過去 31 日分を照会でき、その期間保持されます。

ダッシュボードでメトリクスを確認する

Hyperdrive のデータベースごとの分析は、Cloudflare ダッシュボードで確認できます。Hyperdrive 設定の現在および過去のメトリクスを見る手順は次のとおりです。

  1. Cloudflare ダッシュボードで Hyperdrive ページを開きます。

    Hyperdrive を開く ↗
  2. 既存の Hyperdrive 設定を選択します。

  3. Metrics タブを選択します。

照会する時間枠は任意で選べます。デフォルトは直近 24 時間です。

ダッシュボードには Pool connections チャートがあり、待機中の接続、オープンな接続、プールサイズの上限を表示します。ロケーションセレクターで、特定の Cloudflare ロケーションに絞り込めます。

GraphQL API で照会する

GraphQL Analytics API を使い、Hyperdrive 設定の分析をプログラムから照会できます。この API は Cloudflare ダッシュボードと同じデータセットを照会し、GraphQL の イントロスペクション にも対応しています。

Hyperdrive の GraphQL データセットでは、Cloudflare アカウント ID を指定する accountTag フィルターが必要です。Hyperdrive は hyperdriveQueriesAdaptiveGroupshyperdrivePoolSizesAdaptiveGroups データセットを公開しています。

GraphQL クエリを書く

Hyperdrive のメトリクスを調べる例です。

キャッシュステータス別の、Hyperdrive 設定が処理したクエリ数を取得する

query HyperdriveQueries(
	$accountTag: string!
	$configId: string!
	$datetimeStart: Time!
	$datetimeEnd: Time!
) {
	viewer {
		accounts(filter: { accountTag: $accountTag }) {
			hyperdriveQueriesAdaptiveGroups(
				limit: 10000
				filter: {
					configId: $configId
					datetime_geq: $datetimeStart
					datetime_leq: $datetimeEnd
				}
			) {
				count
				dimensions {
					cacheStatus
				}
			}
		}
	}
}

エラーで失敗したクエリを除き、指定期間内に Hyperdrive 設定が処理したクエリの平均クエリレイテンシと接続レイテンシを取得する

query AverageHyperdriveLatencies(
	$accountTag: string!
	$configId: string!
	$datetimeStart: Time!
	$datetimeEnd: Time!
) {
	viewer {
		accounts(filter: { accountTag: $accountTag }) {
			hyperdriveQueriesAdaptiveGroups(
				limit: 10000
				filter: {
					configId: $configId
					eventStatus: "complete"
					datetime_geq: $datetimeStart
					datetime_leq: $datetimeEnd
				}
			) {
				avg {
					connectionLatency
					queryLatency
				}
			}
		}
	}
}

Hyperdrive 設定を通過したクエリバイトと結果バイトの合計を取得する

query HyperdriveQueryAndResultBytesForSuccessfulQueries(
	$accountTag: string!
	$configId: string!
	$datetimeStart: Date!
	$datetimeEnd: Date!
) {
	viewer {
		accounts(filter: { accountTag: $accountTag }) {
			hyperdriveQueriesAdaptiveGroups(
				limit: 10000
				filter: {
					configId: $configId
					datetime_geq: $datetimeStart
					datetime_leq: $datetimeEnd
				}
			) {
				sum {
					queryBytes
					resultBytes
				}
			}
		}
	}
}

Hyperdrive 設定のプールサイズメトリクスを取得する

query HyperdrivePoolSizes(
	$accountTag: string!
	$configId: string!
	$datetimeStart: Time!
	$datetimeEnd: Time!
) {
	viewer {
		accounts(filter: { accountTag: $accountTag }) {
			hyperdrivePoolSizesAdaptiveGroups(
				limit: 10000
				filter: {
					configId: $configId
					datetime_geq: $datetimeStart
					datetime_leq: $datetimeEnd
				}
			) {
				avg {
					currentPoolSize
					availablePoolSlots
					waitingClients
				}
				max {
					maxPoolSize
					currentPoolSize
					waitingClients
				}
				dimensions {
					coloCode
				}
			}
		}
	}
}

役に立ちましたか?