← Cloudflare Radar / radar / get-started
Сравнение показателей
При сравнении временных рядов по локациям, диапазонам времени и другим параметрам в эндпоинтах, которые нормализуют значения с помощью min-max, это нужно сделать в одном и том же запросе. Для этого запрашивается несколько рядов. Все значения затем нормализуются с использованием одинаковых минимального и максимального значений и могут безопасно сравниваться между собой.
NetFlows значения нормализуются с помощью min0-max, поэтому мы используем его в качестве примера. См. Получение временных рядов NetFlow, где это описано подробнее.
Сравнение локаций
В следующем примере мы сравним изменение трафика между двумя разными локациями: США и Португалией. В примере используется коды alpha-2 ↗ за последние семь дней:
curl "https://api.cloudflare.com/client/v4/radar/netflows/timeseries?name=us_data&dateRange=7d&location=US&name=pt_data&dateRange=7d&location=PT&format=json" \
--header "Authorization: Bearer <API_TOKEN>"В примере выше запрашиваются два временных ряда. Первый ряд имеет следующие параметры:
name=us_data&dateRange=7d&location=US
Второй ряд данных имеет следующие параметры:
name=pt_data&dateRange=7d&location=PT
Все эти параметры являются массивами, и именно позиция элемента в массиве определяет, к какому ряду относится фильтр. См. Конечная точка NetFlow для получения дополнительной информации о доступных параметрах.
В ответе (сокращен ниже для краткости) используется указанный name свойство для объединения временных меток и соответствующих значений. Если построить график по этим данным, становится очевидно, что Cloudflare получала гораздо меньше трафика из Португалии, чем из США.
{
"success": true,
"errors": [],
"result": {
"us_data": {
"timestamps": [ "2022-10-26T17:00:00Z", "2022-11-02T15:00:00Z" ],
"values": [ "0.871752", "1" ]
},
"pt_data": {
"timestamps": [ "2022-10-26T17:00:00Z", "2022-11-02T15:00:00Z" ],
"values": [ "0.020457", "0.012313" ]
},
"meta": {
"dateRange": {
"startTime": "2022-10-26T17:00:00Z",
"endTime": "2022-11-02T17:00:00Z"
},
"aggInterval": "ONE_HOUR",
// ...
}
}
}Сравнение доступно в большинстве конечных точек, а не только в тех, что используют min-max.
Сравнение диапазонов дат
В следующем примере мы сравним показатели США за разные периоды с помощью быстрых кнопок выбора диапазона дат 7d и 7dControl. Это означает последние семь дней и семь дней перед ними соответственно, другими словами, эта неделя по сравнению с предыдущей.
curl "https://api.cloudflare.com/client/v4/radar/netflows/timeseries?name=this_week&dateRange=7d&location=US&name=previous_week&dateRange=7dControl&location=US&format=json" \
--header "Authorization: Bearer <API_TOKEN>"Первый ряд данных имеет следующие параметры:
name=this_week&dateRange=7d&location=US
Второй ряд данных имеет следующие параметры:
name=previous_week&dateRange=7dControl&location=US
Теперь в разделе result свойство, вы должны получить что-то вроде этого:
{
"this_week": {
"timestamps": [ "2022-10-27T13:00:00Z", "2022-10-27T14:00:00Z", "...", "2022-11-03T12:00:00Z" ],
"values": [ "0.794321", "1", "...", "0.718433"]
},
"previous_week": {
"timestamps": [ "2022-10-20T13:00:00Z", "2022-10-20T14:00:00Z", "...", "2022-10-27T12:00:00Z" ],
"values": [ "0.774392", "0.835071", "...", "0.720181"]
}
}Анализируя эти данные, можно сделать вывод, что максимальное значение было достигнуто в 2022-10-27T14:00:00Z (все временные метки Radar указаны в формате всемирного координированного времени (UTC)). Также можно проверить, что означают быстрые варианты диапазона дат 7d и 7dControl были разрешены на момент выполнения запроса.
Используйте конкретные временные метки
Также можно запросить данные за конкретные временные метки. В следующем примере мы запросим данные относительно Тонга ↗ в октябре по сравнению с январем 2022 года, когда произошел сбой.
curl "https://api.cloudflare.com/client/v4/radar/netflows/timeseries?name=tonga&dateStart=2022-10-15T02%3A00%3A00Z&dateEnd=2022-10-15T05%3A00%3A00Z&location=TO&name=tonga_outage&dateStart=2022-01-15T02%3A00%3A00Z&dateEnd=2022-01-15T05%3A00%3A00Z&location=TO&format=json&aggInterval=1h" \
--header "Authorization: Bearer <API_TOKEN>"Первый ряд данных имеет следующие параметры (в URL-кодировке):
name=tonga&dateStart=2022-10-15T02%3A00%3A00Z&dateEnd=2022-10-15T05%3A00%3A00Z%&location=TO
Второй ряд данных имеет следующие параметры:
name=tonga_outage&dateStart=2022-01-15T02%3A00%3A00Z&&dateEnd=2022-01-15T05%3A00%3A00Z&location=TO
В приведённом выше примере мы запросили интервал агрегации в один час (aggInterval=1h), чтобы результаты можно было отобразить на этой странице. format и aggInterval не являются массивами, как указано в Справочник по API, и применяются глобально ко всем рядам в запросе.
result свойство должно возвращать ответ следующего вида:
{
"tonga": {
"timestamps": ["2022-10-15T02:00:00Z", "2022-10-15T03:00:00Z", "2022-10-15T04:00:00Z", "2022-10-15T05:00:00Z"],
"values": ["1.0", "0.832473", "0.820083", "0.79408"]
},
"tonga_outage": {
"timestamps": ["2022-01-15T02:00:00Z", "2022-01-15T03:00:00Z", "2022-01-15T04:00:00Z", "2022-01-15T05:00:00Z"],
"values": ["0.354105", "0.357287", "0.181811", "0.044198"]
}
}Это показывает, что во время сбоя трафик упал почти до нуля. Если построить график и для наглядности задать конечную дату 18 января, получим следующее:
Следующие шаги
См. раздел Investigate, чтобы подробнее изучить данные, возвращаемые Radar, например NetFlows.