← Cloudflare Durable Objects / durable-objects / observability
Metriky a analytika
Durable Objects poskytují analytiku metrik na úrovni namespace Durable Object i na úrovni jednotlivých požadavků.
Metriky zobrazené v Cloudflare dashboard ↗ grafy se získávají z dat Cloudflare GraphQL Analytics API. K metrikám máte přístup přes programově přes GraphQL nebo HTTP klienta.
Zobrazit metriky a analytiku
Analytika za jednotlivé namespace pro Durable Objects je k dispozici na Cloudflare dashboardu. Aktuální a historické metriky namespace zobrazíte takto:
-
V dashboardu Cloudflare přejděte na Durable Objects stránce.
Přejděte na Durable Objects ↗ -
Zobrazte využití Durable Objects na úrovni účtu.
-
Vyberte existující Durable Object namespace.
-
Vyberte Metriky kartě.
Volitelně můžete vybrat časové okno pro dotaz. Výchozí hodnota je posledních 24 hodin.
Grafy můžete také filtrovat na jediný Durable Object zadáním jeho ID nebo název a výběrem shody. Vymazáním filtru se vrátíte k metrikám na úrovni namespace.
Využití paměti
Využití paměti graf na Metriky karta zobrazuje V8 izolát využití paměti, pravidelně vzorkované, zatímco jsou vaše Durable Objects aktivní, rozdělené do percentilů P50, P90, P99 a P999. Na každý isolate se vztahuje limit paměti 128 MB.
Tato paměť uchovává stav v paměti, který se v objektech hromadí, například vlastnosti třídy, mezipaměti a aktivní spojení WebSocket, a zůstává zachován napříč požadavky, dokud není objekt hibernován nebo vytěsněn z paměti. Tento stav se při odebrání z paměti, hibernaci ani pádu nezachovává, proto vše důležité ukládejte trvale do úložiště.
To, co graf zobrazuje, závisí na tom, zda použijete filtr:
- Bez filtru (zobrazení namespace): se percentily počítají napříč periodickými vzorky paměti všech Durable Objects v daném namespacu, čímž ukazují rozložení paměti izolátů v rámci celého namespacu.
- Filtrováno podle ID nebo název: se percentily počítají pouze z periodických vzorků hlášených pro daný jeden Durable Object. Každý vzorek přitom stále představuje paměť celého izolátu, který jej hostuje (ten může zahrnovat i další Durable Objects sdílející tentýž izolát), takže nejde o měření paměti tohoto jediného objektu izolovaně.
Využití paměti je založeno na durableObjectsPeriodicGroups GraphQL dataset, který zpřístupňuje memoryUsageBytes metrika. Hodnoty percentilů jsou dostupné jako quantiles.memoryUsageBytesP50 přes quantiles.memoryUsageBytesP999, v bajtech.
Pokud si všimnete, že využití paměti v čase postupně roste, může to znamenat únik paměti. Použijte profilování paměti pomocí DevTools lokálně a pořídit heap snapshots, abyste identifikovali konkrétní objekty způsobující vysokou spotřebu paměti.
Zobrazit protokoly
Protokoly Durable Object můžete zobrazit v Cloudflare dashboardu. Protokoly se agregují podle názvu skriptu a názvu třídy Durable Object.
Chcete-li začít používat logování Durable Object:
-
Protokolování Durable Object povolte v konfiguračním souboru Wrangler toho Workeru, který definuje vaši třídu Durable Object:
{ "observability": { "enabled": true } }[observability] enabled = true -
Nasaďte nejnovější verzi Workeru s aktualizovaným bindingem.
-
Přejděte na Durable Objects stránce.
Přejděte na Durable Objects ↗ -
Vyberte existující Durable Object namespace.
-
Vyberte Protokoly kartě.
Dotazování přes GraphQL API
Metriky Durable Object jsou založené na GraphQL.
Mezi datové sady, které obsahují metriky Durable Object, patří:
durableObjectsInvocationsAdaptiveGroupsdurableObjectsPeriodicGroupsdurableObjectsStorageGroupsdurableObjectsSubrequestsAdaptiveGroups
Použijte Introspekce GraphQL pro informace o polích, která jednotlivé datové sady zpřístupňují.
Metriky WebSocketu
Durable Objects používající WebSockets uvidíte metriky požadavků napříč několika datovými sadami GraphQL, protože WebSockets mají různé typy požadavků.
- Metriky samotného WebSocket připojení jsou zobrazeny v
durableObjectsInvocationsAdaptiveGroupsjakmile se připojení uzavře. Vzhledem k tomu, že WebSocket připojení bývají dlouhotrvající, často se neukončí dříve, než skončí samotný Durable Object. - Metriky příchozích a odchozích zpráv WebSocket na daném WebSocket připojení jsou k dispozici v
durableObjectsPeriodicGroups. Pokud WebSocket spojení používá WebSocket Hibernation, příchozí zprávy WebSocket jsou místo toho reprezentovány vdurableObjectsInvocationsAdaptiveGroups.
Příklad dotazu GraphQL pro Durable Objects
viewer {
/*
Replace with your account tag, the 32 hex character id visible at the beginning of any url
when logged in to dash.cloudflare.com or under "Account ID" on the sidebar of the Workers & Pages Overview
*/
accounts(filter: {accountTag: "your account tag here"}) {
// Replace dates with a recent date
durableObjectsInvocationsAdaptiveGroups(filter: {date_gt: "2023-05-23"}, limit: 1000) {
sum {
// Any other fields found through introspection can be added here
requests
responseBodySize
}
}
durableObjectsPeriodicGroups(filter: {date_gt: "2023-05-23"}, limit: 1000) {
sum {
cpuTime
}
}
durableObjectsStorageGroups(filter: {date_gt: "2023-05-23"}, limit: 1000) {
max {
storedBytes
}
}
}
}Viz Dotazování metrik Workers pomocí GraphQL pro ověřování a zjistěte více o dotazování na datové sady Workers.
Další zdroje
- Pokyny k nastavení dashboardu Grafana pro dotazování na GraphQL Analytics API Cloudflare najdete v Výchozí šablona Grafana Dashboard pro metriky Durable Object ↗.
Časté dotazy
Jak zjistím, která instance Durable Object vygenerovala daný záznam v logu?
Můžete použít $workers.durableObjectId pro identifikaci konkrétní instance Durable Object, která záznam protokolu vygenerovala.