INTEGRITY Dokumentace

Metriky a analytika

Hyperdrive poskytuje analytiku, díky které můžete sledovat objem dotazů, latenci dotazů, poměr úspěšných zásahů do mezipaměti a metriky fondu připojení pro každou konfiguraci Hyperdrive ve vašem účtu.

Metriky

Hyperdrive v současnosti exportuje metriky prostřednictvím hyperdriveQueriesAdaptiveGroups a hyperdrivePoolSizesAdaptiveGroups datové sady GraphQL.

Metriky dotazů

hyperdriveQueriesAdaptiveGroups datová sada obsahuje následující metriky:

Metrika Název pole GraphQL Popis
Dotazy count Počet dotazů odeslaných na váš Hyperdrive za dané časové období.
Cache Status cacheStatus Zda byl dotaz uložen do mezipaměti. Může nabývat jedné z hodnot disabled, hit, miss, uncacheable, multiplestatements, notaquery, oversizedquery, oversizedresult, parseerror, transaction, a volatile.
Bajty dotazů queryBytes Velikost vašich dotazů v bajtech.
Result Bytes resultBytes Velikost vašeho dotazu výsledky, v bajtech.
Latence připojení connectionLatency Čas (v milisekundách) potřebný k navázání nových připojení z Hyperdrive k vaší databázi, měřený z fondu (fondů) připojení Hyperdrive.
Latence dotazů queryLatency Čas (v milisekundách) potřebný k dotazování vaší databáze a získání výsledků, měřený z fondu (fondů) připojení Hyperdrive.
Stav události eventStatus Zda dotaz proběhl úspěšně (complete) nebo neúspěšné (error).

volatile stav mezipaměti znamená, že dotaz obsahuje funkci PostgreSQL zařazenou jako STABLE nebo VOLATILE (například NOW(), RANDOM()). Viz Ukládání dotazů do mezipaměti podrobnosti o tom, které funkce ovlivňují možnost ukládání do mezipaměti.

Metriky velikosti fondu

hyperdrivePoolSizesAdaptiveGroups datová sada obsahuje následující metriky fondu připojení:

Metrika Název pole GraphQL Popis
Avg. open connections avg.currentPoolSize Průměrný počet aktuálně otevřených připojení ve fondu.
Avg. available slots avg.availablePoolSlots Průměrný počet připojení ve fondu dostupných k použití.
Avg. waiting clients avg.waitingClients Průměrný počet klientů čekajících na volné připojení z fondu.
Maximální velikost fondu max.maxPoolSize Nakonfigurovaná maximální velikost fondu připojení.
Nejvyšší počet otevřených připojení max.currentPoolSize Nejvyšší počet otevřených připojení ve fondu.
Nejvyšší počet čekajících klientů max.waitingClients Nejvyšší počet klientů čekajících na volné připojení z fondu.

Soupeření o připojení se projevuje jako nárůst počtu čekajících klientů nebo jako situace, kdy se počet otevřených připojení trvale blíží maximální velikosti fondu. Pokud se vaše otevřená připojení pravidelně blíží tomuto limitu, zvažte zvýšení limitu připojení Hyperdrive.

Metriky lze dotazovat (a jsou uchovávány) po dobu posledních 31 dnů.

Zobrazit metriky v dashboardu

Analytika Hyperdrive pro jednotlivé databáze je k dispozici v Cloudflare dashboardu. Aktuální a historické metriky konfigurace Hyperdrive zobrazíte takto:

  1. V dashboardu Cloudflare přejděte na Hyperdrive stránce.

    Přejděte na Hyperdrive ↗
  2. Vyberte existující konfiguraci Hyperdrive.

  3. Vyberte Metriky kartě.

Volitelně můžete vybrat časové okno pro dotaz. Výchozí hodnota je posledních 24 hodin.

Dashboard obsahuje Připojení ve fondu graf, který zobrazuje čekající připojení, otevřená připojení a maximální velikost poolu. Pomocí výběru lokality můžete filtrovat podle konkrétních lokalit Cloudflare.

Dotazování přes GraphQL API

Analytiku svých konfigurací Hyperdrive můžete programově dotazovat prostřednictvím GraphQL Analytics API. Toto API dotazuje stejné datové sady jako dashboard Cloudflare a podporuje GraphQL introspekce.

Datové sady GraphQL služby Hyperdrive vyžadují accountTag filtr s ID vašeho účtu Cloudflare. Hyperdrive zpřístupňuje hyperdriveQueriesAdaptiveGroups a hyperdrivePoolSizesAdaptiveGroups datových sad.

Psaní dotazů GraphQL

Příklady, jak prozkoumat metriky Hyperdrive.

Získejte počet dotazů zpracovaných prostřednictvím vaší konfigurace Hyperdrive podle stavu mezipaměti

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
				}
			}
		}
	}
}

Zjištění průměrné latence dotazů a připojení u dotazů zpracovaných prostřednictvím vaší konfigurace Hyperdrive za dané časové období, s výjimkou dotazů, které selhaly kvůli chybě

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
				}
			}
		}
	}
}

Získejte celkový objem bajtů dotazů a výsledků procházejících vaší konfigurací 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
				}
			}
		}
	}
}

Získejte metriky velikosti fondu připojení pro vaši konfiguraci 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
				}
			}
		}
	}
}