مثال معدل نقل الموقع باستخدام واجهة برمجة التطبيقات accountMetrics

توضح هذه المقالة استعلامًا نموذجيًا لواجهة برمجة التطبيقات 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 بالنانoseconds. يقوم أمر 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. المقياس دائمًا يُعبر عنه كنسبة بغض النظر عن معلمة الإدخال للثانية. تشير حقل الوحدات إلى أن هذه بوصة، لذلك يجب الضرب في 8 للتحويل إلى وحدات بت في الثانية.

بالنظر إلى العنصر الأول في استجابتنا أعلاه:

[
1707231600000,
6008
],

يمكننا تفسير ذلك كالتالي:

  • كان 2024-02-06 15:00:00 UTC هو بداية هذه المجموعة

  • نعرف من معلماتنا أن هذه هي مجموعة دقيقة واحدة (يمكنك أيضًا طلب الواجهة البرمجية لإرجاع دقة المجموعة إذا لم تكن متأكدًا)

  • خلال هذه المجموعة، كانت أعلى معدل نقل 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 وجدوا هذا مفيداً

لا توجد تعليقات