Пример пропускной способности площадки с API accountMetrics

Эта статья объясняет пример запроса 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:

01_accountMetrics.png

Полный ответ:

{
  "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, линейный график будет выглядеть так:

02_excel.png

Для соответствующего временного интервала и площадки график «Макс. пропускная способность – восходящая» выглядит следующим образом:

03_excel.png

На первый взгляд эти графики выглядят по-разному, но это в основном потому, что график CMA получен из запроса с гораздо большим количеством сегментов — для простоты демонстрации мы используем небольшой счетчик сегментов (10) с нашим запросом Playground. Если мы наложим график из Excel на график CMA, можно увидеть сильную корреляцию:

04-excel.png

Была ли эта статья полезной?

Пользователи, считающие этот материал полезным: 0 из 0

0 комментариев