Hyperdrive は分析データを公開します。アカウント内の各 Hyperdrive 設定について、クエリ量、クエリレイテンシ、キャッシュヒット率、コネクションプールのメトリクスを確認できます。
Hyperdrive は現在、hyperdriveQueriesAdaptiveGroups と hyperdrivePoolSizesAdaptiveGroups の GraphQL データセットでメトリクスを公開しています。
hyperdriveQueriesAdaptiveGroups データセットには、次のメトリクスが含まれます。
| メトリクス | GraphQL フィールド名 | 説明 |
|---|---|---|
| クエリ数 | count |
指定期間に Hyperdrive へ発行されたクエリ数です。 |
| キャッシュステータス | cacheStatus |
クエリがキャッシュされたかどうかです。取りうる値は disabled、hit、miss、uncacheable、multiplestatements、notaquery、oversizedquery、oversizedresult、parseerror、transaction、volatile です。 |
| クエリバイト数 | 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 設定の現在および過去のメトリクスを見る手順は次のとおりです。
-
Cloudflare ダッシュボードで Hyperdrive ページを開きます。
Hyperdrive を開く ↗ -
既存の Hyperdrive 設定を選択します。
-
Metrics タブを選択します。
照会する時間枠は任意で選べます。デフォルトは直近 24 時間です。
ダッシュボードには Pool connections チャートがあり、待機中の接続、オープンな接続、プールサイズの上限を表示します。ロケーションセレクターで、特定の Cloudflare ロケーションに絞り込めます。
GraphQL Analytics API を使い、Hyperdrive 設定の分析をプログラムから照会できます。この API は Cloudflare ダッシュボードと同じデータセットを照会し、GraphQL の イントロスペクション にも対応しています。
Hyperdrive の GraphQL データセットでは、Cloudflare アカウント ID を指定する accountTag フィルターが必要です。Hyperdrive は hyperdriveQueriesAdaptiveGroups と hyperdrivePoolSizesAdaptiveGroups データセットを公開しています。
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
}
}
}
}
}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
}
}
}
}
}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
}
}
}
}
}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
}
}
}
}
}