← Analytics / analytics / graphql-api / tutorials
Dotazování metrik Containers pomocí GraphQL
Tento příklad používá rozhraní GraphQL Analytics API k dotazování na metriky pro vaše Containers. K dispozici jsou dva endpointy:
containersMetricsAdaptiveGroupsvrací metriky pro kód spuštěný uvnitř vašeho kontejneru, včetně všech procesů uvnitř něj. Pomocí tohoto endpointu můžete sledovat chování CPU, paměti, disku, sítě a doby provozu vaší vlastní zátěže.containersUsageAdaptiveGroupsvrací prostředky spotřebované vaším kontejnerem společně s micro VM sandboxem potřebným k jeho spuštění. Jde o hodnoty, které se zobrazují v odhadech využití na dashboardu Cloudflare a které byste měli použít při odhadování nákladů na fakturaci.
Oba koncové body sdílejí stejnou datovou sadu, ale zpřístupňují její odlišné výřezy.
Nahraďte <CLOUDFLARE_ACCOUNT_TAG> a <API_TOKEN>1 svým ID účtu a API tokenem a upravte datetimeStart a datetimeEnd hodnoty pro časové rozmezí, které chcete dotazovat.
Dotazování metrik zátěže kontejnerů
Použijte containersMetricsAdaptiveGroups k pochopení chování vašeho kontejneru a jeho podprocesů. Vrácená čísla odrážejí využití prostředků vaším vlastním kódem a nezahrnují žádnou režii platformy.
Dimenze
Výsledky můžete seskupit podle libovolné z následujících dimenzí:
| Dimenze | Popis |
|---|---|
instanceId |
ID instance kontejneru. Jde o stejné ID, jaké se zobrazuje v Cloudflare dashboardu a v Wrangler. |
placementId |
Jedna instance kontejneru může být v průběhu své životnosti umístěna na různých místech (například při přesunu mezi datovými centry). Seskupit podle placementId k rozdělení metrik podle jednotlivých umístění. |
applicationId |
Aplikace Containers, ke které instance patří. |
location |
Datové centrum Cloudflare, ve kterém kontejner běží. |
region |
Region, ve kterém kontejner běží. |
label(name: "...") |
Hodnota konkrétního štítku kontejneru. Viz Filtrování a seskupování podle štítků. |
date, datetime, datetimeMinute, datetimeFiveMinutes, datetimeFifteenMinutes, datetimeHour, datetimeSixHours |
Časové intervaly s různou granularitou. |
Metriky
K dispozici jsou následující skupiny metrik. Každá skupina zpřístupňuje více polí: použijte introspekci GraphQL nebo GraphQL API Explorer a zobrazte si celý seznam.
| Skupina | Příklady | Popis |
|---|---|---|
count |
, | Počet přijatých vzorků metrik. |
avg |
memory, cpuUtilization, rxBandwidthBps, txBandwidthBps, gpuMemory, containerUptime |
Průměr metriky za vybrané časové období. |
sum |
cpuTimeSec, allocatedMemory, allocatedDisk, allocatedCpu, rxBytes, txBytes, containerUptime |
Celková hodnota metriky za vybrané časové období. |
max |
memory, cpuUtilization, diskUsage, diskUsagePercentage, rxBandwidthBps, txBandwidthBps, containerUptime |
Maximální pozorovaná hodnota metriky. |
quantiles |
memory, cpuUtilization, rxBandwidthBps, txBandwidthBps, diskUsage, diskUsagePercentage, gpuMemory, containerUptime |
Vážené kvantily. Každá metrika je k dispozici s P50, P95, nebo P99 příponu (například memoryP95). |
volání API
Následující dotaz vrací dobu využití CPU a špičkové využití paměti pro jednu instanci kontejneru, rozdělené po hodinách:
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 .Odpověď
{
"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
}Dotazování fakturačního využití kontejnerů
Použijte containersUsageAdaptiveGroups k odhadu nákladů na fakturaci. Výsledky zahrnují jak využití prostředků vaším kontejnerem, tak sandbox micro VM potřebný k jeho spuštění, a odpovídají hodnotám využití zobrazeným v dashboardu Cloudflare.
Dimenze
Výsledky můžete seskupit podle libovolné z následujících dimenzí:
| Dimenze | Popis |
|---|---|
instanceId |
ID instance kontejneru. Jde o stejné ID, jaké se zobrazuje v Cloudflare dashboardu a v Wrangler. |
placementId |
Jedna instance kontejneru může být v průběhu své životnosti umístěna na různých místech (například při přesunu mezi datovými centry). Seskupit podle placementId k rozdělení metrik podle jednotlivých umístění. |
applicationId |
Aplikace Containers, ke které instance patří. |
location |
Datové centrum Cloudflare, ve kterém kontejner běží. |
region |
Region, ve kterém kontejner běží. |
label(name: "...") |
Hodnota konkrétního štítku kontejneru. Viz Filtrování a seskupování podle štítků. |
date, datetime, datetimeMinute, datetimeFiveMinutes, datetimeFifteenMinutes, datetimeHour, datetimeSixHours |
Časové intervaly s různou granularitou. |
Metriky
Pouze sum jsou k dispozici tyto metriky:
| Pole | Popis |
|---|---|
cpuTimeSec |
Celkový čas CPU v sekundách. |
allocatedMemory |
Celková přidělená paměť, v byte-sekundách. |
allocatedDisk |
Celkový přidělený diskový prostor, v byte-sekundách. |
txBytes |
Celkový počet přenesených bajtů. |
volání API
Následující dotaz vrací denní využití CPU a paměti za posledních 30 dní:
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 .Odpověď
{
"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
}Filtrování a seskupování podle štítků
Oba koncové body zpřístupňují štítky kontejnerů prostřednictvím dvou polí:
labelsje polekey=valueřetězce a je určen k filtrování. Použijte_hasoperátor odpovídající konkrétnímu štítku.label(name: "...")je seskupovací dimenze, která vrací hodnotu pojmenovaného štítku. Přiřaďte jí alias podle vhodného názvu pole ve své odpovědi.
Následující dotaz například vrací čas CPU a využití paměti u produkčních kontejnerů seskupených podle prostředí:
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
}
}
}
}
}Aliasované dimenze se zobrazují přímo u každého výsledku:
{
"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
}Poznámky pod čarou
-
Viz Nakonfigurujte token Analytics API kde najdete další informace o konfiguraci a oprávněních. ↩