アカウントメトリクスAPIによるサンプルサイトの帯域幅

この記事では、サイトの最大アップストリームおよびダウンストリームスループットを監視するためのサンプルアカウントメトリクスAPIクエリについて説明します。

クエリの作成

ピークメトリクスであるbytesUpstreamMaxおよびbytesDownstreamMaxを使用することをお勧めします。 Catoライセンスは、平均スループットではなく、これらの値に基づいています。

これは、2024年2月6日の15:00:00から15:10:00のタイムフレームで、ID=12345のサイトのタイムシリーズを10バケット分取得するクエリです。 10分のタイムフレームで10バケットは、各バケットが実質的に1分であることを意味します。

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

タイムシリーズ結果の解釈

タイムスタンプ

タイムシリーズ/データ配列の各要素はリストであり、最初の要素はそのバケットの開始時点のタイムスタンプで、2番目の要素はそのバケットのメトリックです。 タイムスタンプはUTC、ナノ秒単位のUnixエポック時間です。 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

ピークアップストリームスループット

タイムシリーズ要素の2番目の項目は、この場合、そのバケット内のピークアップストリームスループットを示すメトリックです。 単一のクエリで複数のメトリックを要求できます。通常、bytesUpstreamMaxとbytesDownstreamMaxの両方を要求します。 メトリックは、perSecond入力パラメータに関係なく、常にレートとして表現されます。 unitsフィールドはこれがバイトであることを示しているので、通常のビット毎秒に変換するには8倍する必要があります。

上記の応答で最初の要素を見ると、

[
1707231600000,
6008
],

これを以下のように解釈できます。

  • 2024-02-06 15:00:00 UTCはこのバケットの開始でした。

  • パラメータからこれは1分間のバケットであることがわかっています(不明な場合はAPIにバケットの粒度を返すよう依頼することもできます)。

  • このバケットの間、最高スループットは秒あたり6008バイトでした。 8倍すると、ピーク値は8×6008 = 48,064 bits per second = 48kbpsです。

この原則を返されたタイムシリーズ内のすべてのアイテムに適用すると、次の値が得られます。

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グラフが非常に多くのバケットを持つクエリから来ているからです。デモの容易さのため、Playgroundクエリでは小規模なバケット数(10)を使用しています。 ExcelのグラフをCMAグラフの上に配置すると、強い相関が見られます。

04-excel.png

この記事は役に立ちましたか?

0人中0人がこの記事が役に立ったと言っています

0件のコメント