この例では、GraphQL Analytics API を使って Containers のメトリクスをクエリします。エンドポイントは 2 つあります。
containersMetricsAdaptiveGroupsは、コンテナ内で動くコードのメトリクスを返します。コンテナ内のすべてのプロセスが含まれます。自身のワークロードの CPU、メモリ、ディスク、ネットワーク、稼働時間を調べるときに使います。containersUsageAdaptiveGroupsは、コンテナが消費したリソースに加え、実行に必要なマイクロ VM サンドボックス分も含めて返します。Cloudflare ダッシュボードの利用量見積もりに使われる値で、課金コストを見積もるときはこちらを使います。
どちらのエンドポイントも同じ基盤データセットを共有しますが、切り出す範囲が異なります。
<CLOUDFLARE_ACCOUNT_TAG> と <API_TOKEN>1 を、ご自身のアカウント ID と API トークンに置き換えます。クエリしたい期間に合わせて、datetimeStart と datetimeEnd も調整します。
コンテナとそのサブプロセスの動きを把握するには、containersMetricsAdaptiveGroups を使います。返る数値は自身のコードのリソース使用量で、プラットフォームのオーバーヘッドは含まれません。
ディメンション
次のいずれかのディメンションで結果をグループ化できます。
| ディメンション | 説明 |
|---|---|
instanceId |
コンテナのインスタンス ID です。Cloudflare ダッシュボードと Wrangler に表示される ID と同じです。 |
placementId |
1 つのコンテナインスタンスは、寿命のあいだに別の場所へ配置されることがあります(データセンター間の移動など)。placementId でグループ化すると、配置ごとのメトリクスを分けられます。 |
applicationId |
インスタンスが属する Containers アプリケーションです。 |
location |
コンテナが動いている Cloudflare データセンターです。 |
region |
コンテナが動いているリージョンです。 |
label(name: "...") |
特定のコンテナラベルの値です。ラベルで絞り込んでグループ化する を参照してください。 |
date, datetime, datetimeMinute, datetimeFiveMinutes, datetimeFifteenMinutes, datetimeHour, datetimeSixHours |
粒度の異なる時間バケットです。 |
メトリクス
次のメトリクスグループを使えます。各グループは複数のフィールドを公開します。一覧は GraphQL イントロスペクション、または GraphQL API Explorer で確認できます。
| グループ | 例 | 説明 |
|---|---|---|
count |
— | 受け取ったメトリクスサンプル数です。 |
avg |
memory, cpuUtilization, rxBandwidthBps, txBandwidthBps, gpuMemory, containerUptime |
選択した期間におけるメトリクスの平均です。 |
sum |
cpuTimeSec, allocatedMemory, allocatedDisk, allocatedCpu, rxBytes, txBytes, containerUptime |
選択した期間におけるメトリクスの合計です。 |
max |
memory, cpuUtilization, diskUsage, diskUsagePercentage, rxBandwidthBps, txBandwidthBps, containerUptime |
観測したメトリクスの最大値です。 |
quantiles |
memory, cpuUtilization, rxBandwidthBps, txBandwidthBps, diskUsage, diskUsagePercentage, gpuMemory, containerUptime |
重み付き分位数です。各メトリクスは P50、P95、P99 の接尾辞付きで使えます(例: memoryP95)。 |
次のクエリは、1 つのコンテナインスタンスについて、CPU 時間とピークメモリ使用量を 1 時間単位で返します。
echo '{ "query":
"query ContainersMetrics($accountTag: String, $datetimeStart: Time, $datetimeEnd: Time, $instanceId: String) {
viewer {
accounts(filter: {accountTag: $accountTag}) {
containersMetricsAdaptiveGroups(
limit: 100
filter: {
datetime_geq: $datetimeStart,
datetime_leq: $datetimeEnd,
instanceId: $instanceId
}
orderBy: [datetimeHour_ASC]
) {
dimensions {
datetimeHour
instanceId
}
sum {
cpuTimeSec
}
max {
memory
}
quantiles {
cpuUtilizationP95
memoryP95
}
}
}
}
}",
"variables": {
"accountTag": "<CLOUDFLARE_ACCOUNT_TAG>",
"datetimeStart": "2026-04-15T00:00:00Z",
"datetimeEnd": "2026-04-16T00:00:00Z",
"instanceId": "4c9b1b3c-8e8d-4a2d-9a3f-7f2b1c0a0e55"
}
}' | tr -d '\n' | curl --silent \
https://api.cloudflare.com/client/v4/graphql \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data @- | jq .{
"data": {
"viewer": {
"accounts": [
{
"containersMetricsAdaptiveGroups": [
{
"dimensions": {
"datetimeHour": "2026-04-15T00:00:00Z",
"instanceId": "4c9b1b3c-8e8d-4a2d-9a3f-7f2b1c0a0e55"
},
"max": {
"memory": 312475648
},
"quantiles": {
"cpuUtilizationP95": 0.4821,
"memoryP95": 298123264
},
"sum": {
"cpuTimeSec": 128.47
}
},
{
"dimensions": {
"datetimeHour": "2026-04-15T01:00:00Z",
"instanceId": "4c9b1b3c-8e8d-4a2d-9a3f-7f2b1c0a0e55"
},
"max": {
"memory": 305135616
},
"quantiles": {
"cpuUtilizationP95": 0.3914,
"memoryP95": 291454976
},
"sum": {
"cpuTimeSec": 104.91
}
}
]
}
]
}
},
"errors": null
}課金コストを見積もるには、containersUsageAdaptiveGroups を使います。結果には、コンテナ自身のリソース使用量と、実行に必要なマイクロ VM サンドボックス分が含まれ、Cloudflare ダッシュボードに表示される利用量と一致します。
ディメンション
次のいずれかのディメンションで結果をグループ化できます。
| ディメンション | 説明 |
|---|---|
instanceId |
コンテナのインスタンス ID です。Cloudflare ダッシュボードと Wrangler に表示される ID と同じです。 |
placementId |
1 つのコンテナインスタンスは、寿命のあいだに別の場所へ配置されることがあります(データセンター間の移動など)。placementId でグループ化すると、配置ごとのメトリクスを分けられます。 |
applicationId |
インスタンスが属する Containers アプリケーションです。 |
location |
コンテナが動いている Cloudflare データセンターです。 |
region |
コンテナが動いているリージョンです。 |
label(name: "...") |
特定のコンテナラベルの値です。ラベルで絞り込んでグループ化する を参照してください。 |
date, datetime, datetimeMinute, datetimeFiveMinutes, datetimeFifteenMinutes, datetimeHour, datetimeSixHours |
粒度の異なる時間バケットです。 |
メトリクス
使えるのは sum メトリクスだけです。
| フィールド | 説明 |
|---|---|
cpuTimeSec |
CPU 時間の合計(秒)です。 |
allocatedMemory |
割り当てメモリの合計(バイト秒)です。 |
allocatedDisk |
割り当てディスクの合計(バイト秒)です。 |
txBytes |
送信バイト数の合計です。 |
次のクエリは、直近 30 日の日次 CPU 使用量とメモリ使用量を返します。
echo '{ "query":
"query ContainersUsage($accountTag: String, $datetimeStart: Time, $datetimeEnd: Time) {
viewer {
accounts(filter: {accountTag: $accountTag}) {
containersUsageAdaptiveGroups(
limit: 100
filter: {
date_geq: $datetimeStart,
date_leq: $datetimeEnd
}
orderBy: [date_ASC]
) {
dimensions {
date
}
sum {
cpuTimeSec
allocatedMemory
allocatedDisk
txBytes
}
}
}
}
}",
"variables": {
"accountTag": "<CLOUDFLARE_ACCOUNT_TAG>",
"datetimeStart": "2026-03-23",
"datetimeEnd": "2026-04-22"
}
}' | tr -d '\n' | curl --silent \
https://api.cloudflare.com/client/v4/graphql \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data @- | jq .{
"data": {
"viewer": {
"accounts": [
{
"containersUsageAdaptiveGroups": [
{
"dimensions": {
"date": "2026-04-20"
},
"sum": {
"allocatedDisk": 172800000000000,
"allocatedMemory": 22118400000000,
"cpuTimeSec": 3742.18,
"txBytes": 8471239
}
},
{
"dimensions": {
"date": "2026-04-21"
},
"sum": {
"allocatedDisk": 172800000000000,
"allocatedMemory": 22118400000000,
"cpuTimeSec": 3955.02,
"txBytes": 9023841
}
}
]
}
]
}
},
"errors": null
}どちらのエンドポイントも、コンテナラベルを次の 2 つのフィールドで公開します。
labelsはkey=value文字列の配列で、絞り込み向けです。特定のラベルに一致させるには_has演算子 を使います。label(name: "...")は、名前付きラベルの値を返すグループ化ディメンションです。レスポンスでは扱いやすいフィールド名にエイリアスできます。
たとえば、次のクエリは本番コンテナの CPU 時間とメモリ使用量を、環境ごとにグループ化して返します。
query ContainersByLabel(
$accountTag: String
$datetimeStart: Time
$datetimeEnd: Time
) {
viewer {
accounts(filter: { accountTag: $accountTag }) {
containersMetricsAdaptiveGroups(
limit: 100
filter: {
datetime_geq: $datetimeStart
datetime_leq: $datetimeEnd
labels_has: "env=production"
}
) {
dimensions {
env: label(name: "env")
region: label(name: "region")
}
sum {
cpuTimeSec
}
max {
memory
}
}
}
}
}エイリアスしたディメンションは、各結果にそのまま現れます。
{
"data": {
"viewer": {
"accounts": [
{
"containersMetricsAdaptiveGroups": [
{
"dimensions": {
"env": "production",
"region": "enam"
},
"max": { "memory": 412316672 },
"sum": { "cpuTimeSec": 9812.41 }
},
{
"dimensions": {
"env": "production",
"region": "weur"
},
"max": { "memory": 398458880 },
"sum": { "cpuTimeSec": 7421.08 }
}
]
}
]
}
},
"errors": null
}-
設定と権限の詳細は、Analytics API トークンを設定する を参照してください。 ↩