INTEGRITY Документация

API мониторинга

Zaraz Monitoring API позволяет пользователям получать подробные данные о событиях Zaraz через GraphQL Analytics API. С помощью этого API вы можете отслеживать события, просмотры страниц, триггеры, действия и статусы серверных запросов, включая все ошибки и успешные выполнения. Данные, доступные через API, совпадают с теми, что отображаются на странице Zaraz Monitoring в панели управления, но благодаря API вы можете запрашивать их программно, чтобы создавать оповещения и уведомления о неожиданных отклонениях.

Для начала сгенерируйте токен Analytics API, следуя Руководство по аутентификации с помощью API-токена.

Ключевые сущности

Monitoring API включает следующие основные сущности, каждая из которых даёт особую информацию:

Примеры запросов GraphQL

С помощью указанных выше наборов данных можно составить любой нужный запрос, но вот несколько примеров запросов, которые можно использовать.

Запрос количества событий Zaraz, сгруппированных по времени.

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

Запрос количества загрузок Zaraz, сгруппированных по времени.

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

Запрос общего количества срабатываний каждого триггера, обработанного 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
				}
			}
		}
	}
}

Запрос количества серверных ответов 400, сгруппированных по времени и URL-адресу.

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

Пример переменных

{
	"zoneTag": "d6dfdf32c704a77ac227243a5eb5ca61",
	"start": "2025-01-01T00:00:00Z",
	"end": "2025-01-30T00:00:00Z",
	"limit": 10000,
	"orderBy": "datetimeHour_ASC"
}

Обязательно укажите zoneTag в соответствии с вашей конкретной зоной, а также задайте нужные даты начала и окончания

Описание параметров

Пример curl Request

Используйте этот curl команду, чтобы запросить у Zaraz Monitoring API количество событий, обработанных Zaraz. Замените $TOKEN на ваш токен API, $ZONE_TAG на ваш zone tag и при необходимости скорректируйте даты начала и окончания.

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

Описание curl Components

Это curl пример вернет ответ в формате JSON с количеством событий и временными метками за указанный период. Измените variables значения в соответствии с вашим сценарием использования.

Дополнительные материалы

См. полную документацию по GraphQL Analytics API для получения дополнительных сведений о доступных полях, фильтрах и других параметрах настройки запросов к Zaraz Monitoring API.