← Cloudflare Zaraz / zaraz / monitoring
Monitoring API
Zaraz Monitoring API umožňuje uživatelům získávat podrobná data o událostech Zaraz prostřednictvím GraphQL Analytics API. Pomocí tohoto API můžete sledovat události, zobrazení stránek, triggery, akce a stavy server-side požadavků, včetně chyb i úspěšných výsledků. Data dostupná přes API odpovídají tomu, co se zobrazuje na stránce Zaraz Monitoring v dashboardu, ale přes API je můžete dotazovat programově a vytvářet tak upozornění na neočekávané odchylky.
Než začnete, vygenerujte token Analytics API podle Průvodce ověřováním pomocí API tokenu.
Klíčové entity
Monitoring API obsahuje následující základní entity, z nichž každá poskytuje odlišný přehled:
- zarazTrackAdaptiveGroups: Obsahuje data o událostech Zaraz, například počty událostí a časová razítka.
- zarazActionsAdaptiveGroups: Poskytuje informace o Zaraz Actions.
- zarazTriggersAdaptiveGroups: Sleduje data o Zaraz Triggers.
- zarazFetchAdaptiveGroups: Zaznamenává data o server-side požadavcích, včetně URL adres a vrácených stavových kódů u požadavků třetích stran, které provádí Zaraz.
Příklady GraphQL dotazů
Pomocí výše uvedených datových sad si můžete sestavit libovolný dotaz, zde je ale několik příkladů dotazů, které můžete použít.
Dotaz na počet událostí Zaraz seskupených podle času.
query ZarazEvents(
$zoneTag: string
$limit: uint64!
$start: Time
$end: Time
$orderBy: ZoneZarazTrackAdaptiveGroupsOrderBy!
) {
viewer {
zones(filter: { zoneTag: $zoneTag }) {
data: zarazTrackAdaptiveGroups(
limit: $limit
filter: { datetimeHour_geq: $start, datetimeHour_leq: $end }
orderBy: [$orderBy]
) {
count
dimensions {
ts: datetimeHour
}
}
}
}
}Dotaz na počet načtení Zaraz seskupených podle času.
query ZarazLoads(
$zoneTag: string
$limit: uint64!
$start: Date
$end: Date
$orderBy: ZoneZarazTriggersAdaptiveGroupsOrderBy!
) {
viewer {
zones(filter: { zoneTag: $zoneTag }) {
data: zarazTriggersAdaptiveGroups(
limit: $limit
filter: { date_geq: $start, date_leq: $end, triggerName: Pageview }
orderBy: [$orderBy]
) {
count
dimensions {
ts: date
}
}
}
}
}Dotaz na celkový počet spuštění jednotlivých triggerů zpracovaných službou Zaraz.
query ZarazTriggers(
$zoneTag: string
$limit: uint64!
$start: Date
$end: Date
) {
viewer {
zones(filter: { zoneTag: $zoneTag }) {
data: zarazTriggersAdaptiveGroups(
limit: $limit
filter: { date_geq: $start, date_leq: $end }
orderBy: [count_DESC]
) {
count
dimensions {
name: triggerName
}
}
}
}
}Dotaz na počet serverových odpovědí 400, seskupených podle času a URL adresy.
query ErroneousResponses(
$zoneTag: string
$limit: uint64!
$start: Time
$end: Time
$orderBy: ZoneZarazFetchAdaptiveGroupsOrderBy!
) {
viewer {
zones(filter: { zoneTag: $zoneTag }) {
data: zarazFetchAdaptiveGroups(
limit: $limit
filter: {
datetimeHour_geq: $start
datetimeHour_leq: $end
url_neq: ""
status: 400
}
orderBy: [$orderBy]
) {
count
dimensions {
ts: datetimeHour
name: url
}
}
}
}
}Příklad proměnných
{
"zoneTag": "d6dfdf32c704a77ac227243a5eb5ca61",
"start": "2025-01-01T00:00:00Z",
"end": "2025-01-30T00:00:00Z",
"limit": 10000,
"orderBy": "datetimeHour_ASC"
}Nezapomeňte upravit zoneTag tak, aby odpovídal vaší konkrétní zóně, a nastavit požadovaná data začátku a konce
Vysvětlení parametrů
- zoneTag: Jedinečný identifikátor vaší zóny Cloudflare.
- limit: Maximální počet vrácených výsledků.
- start a end: Určuje časové rozmezí dotazu ve formátu ISO 8601.
- orderBy: Určuje pořadí řazení, například podle vzestupného nebo sestupného data a času.
Příklad curl Request
Použijte tento curl příkaz pro dotaz na Zaraz Monitoring API na počet událostí zpracovaných Zaraz. Nahraďte $TOKEN svým API tokenem, $ZONE_TAG svým zone tag a podle potřeby upravte data zahájení a ukončení.
curl -X POST https://api.cloudflare.com/client/v4/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"query": "query AllEvents($zoneTag: String!, $limit: Int!, $start: Date, $end: Date, $orderBy: [ZoneZarazTriggersAdaptiveGroupsOrderBy!]) { viewer { zones(filter: { zoneTag: $zoneTag }) { data: zarazTrackAdaptiveGroups( limit: $limit filter: { datetimeHour_geq: $start datetimeHour_leq: $end } orderBy: [$orderBy] ) { count dimensions { ts: datetimeHour } } } } }",
"variables": {
"zoneTag": "$ZONE_TAG",
"start": "2025-01-01T00:00:00Z",
"end": "2025-01-30T00:00:00Z",
"limit": 10000,
"orderBy": "datetimeHour_ASC"
}
}'Vysvětlení curl Components
- Autorizace:
Authorizationhlavička vyžaduje Bearer token. Nahraďte$TOKENsvým skutečným API tokenem. - Content-Type: Nastavte
application/jsonk označení JSON payloadu. - Data Payload: Tento payload obsahuje dotaz GraphQL a proměnné parametry, jako například
zoneTag,start,end,limit, aorderBy.
Tento curl příklad vrátí JSON odpověď obsahující počty událostí a časová razítka v rámci zadaného časového rozsahu. Upravte variables hodnoty podle potřeby vašeho případu použití.
Další zdroje
Viz úplná dokumentace k GraphQL Analytics API kde najdete podrobnosti o dostupných polích, filtrech a dalších možnostech přizpůsobení dotazů na Zaraz Monitoring API.