← Cloudflare Magic Transit / magic-transit / analytics
Dotazování na výsledky kontrol stavu tunelu Magic Transit pomocí GraphQL
Tento příklad používá GraphQL Analytics API k dotazování na výsledky kontrol stavu tunelu Magic Transit. Tyto výsledky se agregují z jednotlivých kontrol stavu, které servery Cloudflare provádějí u tunelů nakonfigurovaných ve vašem účtu. Dotazovat můžete až týden dat, přičemž data mohou sahat až tři měsíce do minulosti.
Následující volání API si vyžádá kontroly stavu tunelu pro konkrétní účet za období jednoho dne a pro konkrétní datacentrum Cloudflare a vrátí požadovaná pole. Nahraďte <CLOUDFLARE_ACCOUNT_TAG> a <API_TOKEN>1 s vašimi přihlašovacími údaji API a upravte datetimeStart a datetimeEnd proměnné podle potřeby.
Volání API vrací výsledky kontrol stavu tunelu podle datového centra Cloudflare. Cloudflare agreguje výsledek jednotlivých datových center z kontrol stavu prováděných na jednotlivých serverech. tunnelState pole představuje stav tunelu. Magic Transit tyto stavy používá pro směrování. tunnelState hodnotu 0 představuje nedostupný tunel, 0.5 představuje degradovaný tunel a 1 představuje funkční tunel.
Volání API
echo '{ "query":
"query GetTunnelHealthCheckResults($accountTag: string, $datetimeStart: string, $datetimeEnd: string) {
viewer {
accounts(filter: {accountTag: $accountTag}) {
magicTransitTunnelHealthChecksAdaptiveGroups(
limit: 100,
filter: {
datetime_geq: $datetimeStart,
datetime_lt: $datetimeEnd,
}
) {
avg {
tunnelState
}
dimensions {
tunnelName
edgeColoName
}
}
}
}
}",
"variables": {
"accountTag": "<CLOUDFLARE_ACCOUNT_TAG>",
"datetimeStart": "2022-08-04T00:00:00.000Z",
"datetimeEnd": "2022-08-04T01:00:00.000Z"
}
}' | 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 @-Výsledky se vrací ve formátu JSON (jak bylo požadováno), takže přesměrování výstupu do jq je formátuje pro snazší analýzu (parsování), jak ukazuje následující příklad:
... | 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 .
## Example response:
#=> {
#=> "data": {
#=> "viewer": {
#=> "accounts": [
#=> {
#=> "conduitEdgeTunnelHealthChecks": [
#=> {
#=> {
#=> "avg": {
#=> "tunnelState": 1
#=> },
#=> "dimensions": {
#=> "edgeColoName": "mel01",
#=> "tunnelName": "tunnel_01",
#=> "tunnelState": 0.5
#=> }
#=> },
#=> {
#=> "avg": {
#=> "tunnelState": 0.5
#=> },
#=> "count": 310,
#=> "dimensions": {
#=> "edgeColoName": "mel01",
#=> "tunnelName": "tunnel_02",
#=> "tunnelState": 0.5
#=> }
#=> }
#=> ]
#=> }
#=> ]
#=> }
#=> },
#=> "errors": null
#=> }Poznámky pod čarou
-
Podrobnosti najdete v Nakonfigurujte token Analytics API. ↩