← Cloudflare Zaraz / zaraz / monitoring
API мониторинга
Zaraz Monitoring API позволяет пользователям получать подробные данные о событиях Zaraz через GraphQL Analytics API. С помощью этого API вы можете отслеживать события, просмотры страниц, триггеры, действия и статусы серверных запросов, включая все ошибки и успешные выполнения. Данные, доступные через API, совпадают с теми, что отображаются на странице Zaraz Monitoring в панели управления, но благодаря API вы можете запрашивать их программно, чтобы создавать оповещения и уведомления о неожиданных отклонениях.
Для начала сгенерируйте токен Analytics API, следуя Руководство по аутентификации с помощью API-токена.
Ключевые сущности
Monitoring API включает следующие основные сущности, каждая из которых даёт особую информацию:
- zarazTrackAdaptiveGroups: Содержит данные о событиях Zaraz, такие как количество событий и временные метки.
- zarazActionsAdaptiveGroups: Предоставляет информацию о Zaraz Actions.
- zarazTriggersAdaptiveGroups: Отслеживает данные Zaraz Triggers.
- zarazFetchAdaptiveGroups: Фиксирует данные серверных запросов, включая URL-адреса и коды состояния, возвращаемые при выполнении Zaraz сторонних запросов.
Примеры запросов 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 в соответствии с вашей конкретной зоной, а также задайте нужные даты начала и окончания
Описание параметров
- zoneTag: Уникальный идентификатор вашей зоны Cloudflare.
- лимит: Максимальное количество возвращаемых результатов.
- start и end: Определяет диапазон дат для запроса в формате ISO 8601.
- orderBy: Определяет порядок сортировки, например по возрастанию или убыванию даты и времени.
Пример 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
- Авторизация:
Authorizationзаголовок требует токен Bearer. Замените$TOKENна ваш фактический токен API. - Content-Type: Задает
application/jsonчтобы обозначить полезную нагрузку JSON. - Полезная нагрузка данных: Эта полезная нагрузка включает запрос GraphQL и параметры переменных, такие как
zoneTag,start,end,limit, а такжеorderBy.
Это curl пример вернет ответ в формате JSON с количеством событий и временными метками за указанный период. Измените variables значения в соответствии с вашим сценарием использования.
Дополнительные материалы
См. полную документацию по GraphQL Analytics API для получения дополнительных сведений о доступных полях, фильтрах и других параметрах настройки запросов к Zaraz Monitoring API.