Эта статья объясняет пример запроса API accountMetrics для мониторинга максимальной пропускной способности восходящего и нисходящего потоков для площадки.
Мы рекомендуем использовать bytesUpstreamMax и bytesDownstreamMax, которые являются пиковыми метриками. Лицензии Cato основаны на этих значениях, а не на средней пропускной способности.
Это запрос для получения временного ряда из 10 сегментов за временной отрезок с 15:00:00 до 15:10:00 6 февраля 2024 года для площадки с ID=12345. 10 сегментов за 10 минут означают, что каждый сегмент фактически является одной минутой.
{
accountMetrics(
accountID: 7890
timeFrame: "utc.2024-02-06/{15:00:00--15:10:00}"
groupDevices: true
groupInterfaces: true
) {
from
to
sites (siteIDs:[12345]) {
interfaces {
name
timeseries (labels:[bytesUpstreamMax] buckets:10) {
label
units
data
}
}
}
}
}
Этот запрос выглядит следующим образом в GraphQL API Playground:
Полный ответ:
{
"data": {
"accountMetrics": {
"from": "2024-02-06T15:00:00Z",
"to": "2024-02-06T15:10:00Z",
"sites": [
{
"interfaces": [
{
"name": "all",
"timeseries": [
{
"label": "bytesUpstreamMax",
"units": "bytes",
"data": [
[
1707231600000,
6008
],
[
1707231660000,
12802
],
[
1707231720000,
6557
],
[
1707231780000,
3467
],
[
1707231840000,
7168
],
[
1707231900000,
3660
],
[
1707231960000,
6791
],
[
1707232020000,
5839
],
[
1707232080000,
4183
],
[
1707232140000,
4684
]
]
}
]
}
]
}
]
}
}
}
Каждый элемент временного ряда / массива данных — это список, где первый элемент — это временная метка в начале данного сегмента, а второй элемент — это метрика для этого сегмента. Все временные метки представлены в формате UTC, времени Unix Epoch в наносекундах. Одна команда Python одной строкой преобразует временную метку в первом сегменте в человеко-читаемую строку:
python3 -c "import datetime;print(datetime.datetime.fromtimestamp(1707231600000/1000))"
Запуск этой команды на Mac выглядит так:
sh-3.2$ python3 -c "import datetime;print(datetime.datetime.fromtimestamp (1707231600000/1000))" 2024-02-06 15:00:00 sh-3.2$
Также можно запустить команду bash следующим образом:
date -r $((1707231600000/1000))
Это результаты команды bash:
Cato-admin-M:tools catoadmin$ date -r $((1707231600000/1000)) Tue 6 Feb 2024 15:00:00 GMT
Используя эти методы для преобразования всех временных меток из вышеуказанного вывода, мы видим, что они соответствуют началу сегментов для каждой минуты в нашем временном отрезке:
1707231600000 -> 2024-02-06 15:00:00 1707231660000 -> 2024-02-06 15:01:00 1707231720000 -> 2024-02-06 15:02:00 1707231780000 -> 2024-02-06 15:03:00 1707231840000 -> 2024-02-06 15:04:00 1707231900000 -> 2024-02-06 15:05:00 1707231960000 -> 2024-02-06 15:06:00 1707232020000 -> 2024-02-06 15:07:00 1707232080000 -> 2024-02-06 15:08:00 1707232140000 -> 2024-02-06 15:09:00
Второй элемент в каждом элементе временного ряда — это метрика, в данном случае это максимальная восходящая пропускная способность в этом сегменте. Несколько метрик могут быть запрошены в одном запросе — обычно запрашиваются как bytesUpstreamMax, так и bytesDownstreamMax. Метрика всегда выражена как скорость, независимо от параметра perSecond. Поле units показывает, что это байты, поэтому мы должны умножить на 8, чтобы преобразовать в более привычные биты в секунду.
Рассмотрим первый элемент в нашем предыдущем ответе:
[ 1707231600000, 6008 ],
Мы можем интерпретировать это так:
-
2024-02-06 15:00:00 UTC было началом этого сегмента.
-
Мы знаем из наших параметров, что это одноминутный сегмент (вы также можете попросить API вернуть зернистость сегмента, если вы не уверены).
-
В течение этого сегмента наибольшая пропускная способность составила 6008 байт в секунду. Умножив на 8, мы получаем пиковое значение 8*6008 = 48,064 бит в секунду = 48 кбит/с.
Применяя этот же принцип ко всем элементам возвращенного временного ряда, мы получаем следующие значения:
1707231600000 -> 2024-02-06 15:00:00 48kbps 1707231660000 -> 2024-02-06 15:01:00 102kbps 1707231720000 -> 2024-02-06 15:02:00 52kbps 1707231780000 -> 2024-02-06 15:03:00 27kbps 1707231840000 -> 2024-02-06 15:04:00 57kbps 1707231900000 -> 2024-02-06 15:05:00 29kbps 1707231960000 -> 2024-02-06 15:06:00 54kbps 1707232020000 -> 2024-02-06 15:07:00 46kbps 1707232080000 -> 2024-02-06 15:08:00 33kbps 1707232140000 -> 2024-02-06 15:09:00 37kbps
Если мы построим график этих значений в Excel, линейный график будет выглядеть так:
Для соответствующего временного интервала и площадки график «Макс. пропускная способность – восходящая» выглядит следующим образом:
На первый взгляд эти графики выглядят по-разному, но это в основном потому, что график CMA получен из запроса с гораздо большим количеством сегментов — для простоты демонстрации мы используем небольшой счетчик сегментов (10) с нашим запросом Playground. Если мы наложим график из Excel на график CMA, можно увидеть сильную корреляцию:
0 комментариев
Статья закрыта для комментариев.