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

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

تسجِّل Apigee Edge مجموعة متنوعة من بيانات التشغيل والتجاري التي تتدفق على واجهات برمجة التطبيقات. وتُعدّ المقاييس المستخلصة من هذه البيانات مفيدة لمراقبة التشغيل ومراقبة النشاط التجاري. وباستخدام إحصاءات واجهة برمجة تطبيقات Edge، يمكنك مثلاً تحديد واجهات برمجة التطبيقات التي تحقق أداءً جيدًا أو ضعيفًا، والمطوّرون الذين يحقّقون أعلى عدد من الزيارات، والتطبيقات التي تتسبّب في معظم المشاكل في خدمات الخلفية.

للمساعدة في الوصول إلى بيانات المقاييس هذه بسهولة، يعرض Edge واجهة برمجة تطبيقات RESTful. يمكنك استخدام واجهة برمجة التطبيقات للمقاييس عندما تحتاج إلى برمجة وظائف "إحصاءات Google" معينة، مثل استرداد المقاييس بشكل دوري باستخدام برنامج تشغيل آلي أو نص برمجي. يمكنك أيضًا استخدام واجهة برمجة التطبيقات لإنشاء مرئيات خاصة بك على شكل تطبيقات مصغّرة مخصّصة يمكنك تضمينها في بوابات إلكترونية أو تطبيقات مخصّصة.

ولمعرفة كيفية استخدام "إحصاءات Google" في واجهة مستخدم إدارة API Edge، يمكنك الاطّلاع على نظرة عامة على "إحصاءات واجهة برمجة التطبيقات".

لمحة عن واجهات برمجة التطبيقات للمقاييس

توفّر Edge واجهة برمجة تطبيقات للمقياسَين:

  • يعرض الحصول على مقاييس مقاييس لمؤسسة وبيئة على مدار فترة زمنية، مثل ساعة أو يوم أو أسبوع.

    على سبيل المثال، بالنسبة إلى الأسبوع السابق الذي تريد الحصول عليه:

    • عدد أخطاء السياسة
    • متوسط الوقت المستغرَق للردّ
    • إجمالي عدد الزيارات
  • يؤدي الحصول على مقاييس منظَّمة حسب السمات إلى عرض المقاييس على مدار فترة زمنية معيّنة لمؤسسة وبيئة مجمعة حسب السمة.

    على سبيل المثال، بالنسبة إلى الأسبوع السابق، تستخدِم سمات لتجميع المقاييس حسب منتج واجهة برمجة التطبيقات والخادم الوكيل لواجهة برمجة التطبيقات وعنوان البريد الإلكتروني للمطوّر للحصول على ما يلي:

    • عدد الأخطاء المتعلقة بالسياسة لكل منتج من منتجات واجهة برمجة التطبيقات
    • متوسط وقت الاستجابة لكل خادم وكيل لواجهة برمجة التطبيقات
    • إجمالي عدد الزيارات لكلّ عنوان بريد إلكتروني للمطوِّر

    تتيح واجهة برمجة التطبيقات تنظيم المقاييس حسب السمات ميزات إضافية لا تتيحها واجهة برمجة التطبيقات الحصول على مقاييس، بما في ذلك:

لمحة عن حصص واجهات برمجة التطبيقات للمقاييس

يفرض Edge الحصص التالية على هذه المكالمات. تعتمد الحصة على نظام الخلفية الذي يعالج الطلب:

  • Postgres: 40 مكالمة في الدقيقة
  • BigQuery: 12 مكالمة في الدقيقة

تحديد نظام الخلفية الذي يعالج الاستدعاء عن طريق فحص كائن الاستجابة. يحتوي كل عنصر استجابة على سمة metaData تسرد الخدمة التي تعاملت مع الطلب في السمة Source. على سبيل المثال، بالنسبة إلى Postgres:

{
  ...
  "metaData": {
    "errors": [],
    "notices": [
      "Source:Postgres",
      "Table used: xxxxxx.yyyyy",
      "query served by:111-222-333"
    ]
  }
}

بالنسبة إلى BigQuery، السمة Source هي:

"Source:Big Query"

في حال تجاوزك حصة المكالمات، ستعرض واجهة برمجة التطبيقات استجابة HTTP 429.

الحصول على المقاييس باستخدام واجهة برمجة تطبيقات الإدارة

يكمن الاختلاف الرئيسي بين واجهتَي برمجة التطبيقات في أنّ خيار الحصول على المقاييس يعرض المقاييس الأوّلية للمؤسسة والبيئة بأكملها، في حين يتيح لك الحصول على المقاييس منظَّمة حسب السمات تجميع المقاييس حسب أنواع الكيانات المختلفة، مثل منتج واجهة برمجة التطبيقات ومطوّر البرامج والتطبيق.

عنوان URL لطلب واجهة برمجة التطبيقات الحصول على مقاييس هو:

https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats

بالنسبة إلى واجهة برمجة التطبيقات تنظيم المقاييس حسب السمات، عليك تضمين مورد إضافي إلى عنوان URL بعد /stats يحدد السمة المطلوبة:

https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/dimension

على سبيل المثال، للحصول على مقاييس مجمّعة حسب الخادم الوكيل لواجهة برمجة التطبيقات، يمكنك استخدام عنوان URL التالي لطلب بيانات من واجهة برمجة تطبيقات الإدارة:

https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/apiproxy

تحديد المقاييس المطلوب عرضها

في كلٍّ من واجهات برمجة تطبيقات الحصول على مقاييس وتنظيم المقاييس حسب السمات، يمكنك استخدام مَعلمة طلب البحث select لتحديد metrics التي تريد استردادها، ودالة تجميع اختيارية، بالشكل التالي:

?select=metric

أو:

?select=aggFunction(metric)

المكان:

  • metric تحدد البيانات التي تريد عرضها. على سبيل المثال، عدد طلبات البيانات من واجهة برمجة التطبيقات أو نتائج ذاكرة التخزين المؤقت أو أخطاء السياسة. يمكنك الاطّلاع على metrics للاطّلاع على جدول يحدّد اسم المقياس المطلوب استخدامه مع مَعلمة طلب البحث select.
  • تحدّد aggFunction دالة التجميع الاختيارية التي يتم تشغيلها وفقًا للمقياس. على سبيل المثال، يمكنك استخدام دوال التجميع التالية مع مقياس وقت استجابة المعالجة:

    • avg: لعرض متوسط وقت استجابة المعالجة.
    • min: لعرض الحدّ الأدنى لوقت استجابة المعالجة.
    • max: لعرض الحدّ الأقصى لوقت استجابة المعالجة
    • sum: يعرض مجموع كل أوقات استجابة المعالجة.

    لا تتيح بعض المقاييس كل وظائف التجميع. تحتوي المستندات حول metrics على جدول يحدد اسم المقياس والدالة (sum وavg وmin وmax) المتوافقة مع المقياس.

على سبيل المثال، لعرض متوسط عدد المعاملات، ما يعني طلبات الخادم الوكيل لواجهة برمجة التطبيقات، في الثانية:

?select=tps

لاحظ أن هذا المثال لا يتطلب دالة تجميع. يستخدم المثال التالي دالة تجميع لعرض مجموع نتائج ذاكرة التخزين المؤقت:

?select=sum(cache_hit)

ويمكنك عرض مقاييس متعددة لطلب بيانات واحد من واجهة برمجة التطبيقات. للحصول على مقاييس لمجموع أخطاء السياسة ومتوسّط حجم الطلب، اضبط معلمة طلب البحث select باستخدام قائمة مقاييس مفصولة بفواصل:

?select=sum(policy_error),avg(request_size)

تحديد الفترة الزمنية

تعرض واجهة برمجة التطبيقات للمقاييس بيانات لفترة زمنية محددة. ويمكنك استخدام مَعلمة طلب البحث timeRange لتحديد الفترة الزمنية بالصيغة:

?timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM

لاحِظ %20 قبل HH:MM. تتطلّب المَعلمة timeRange حرف مسافة بترميز عنوان URL قبل HH:MM، أو حرف + على النحو التالي: MM/DD/YYYY+HH:MM~MM/DD/YYYY+HH:MM.

مثال:

?timeRange=03/01/2018%2000:00~03/30/2018%2023:59

لا تستخدم الساعة 24:00 كوقت لأنها تقترب من الساعة 00:00 تقريبًا. استخدِم 23:59 بدلاً من ذلك.

استخدام المحدِّد

لفصل السمات المتعددة في طلب بيانات من واجهة برمجة التطبيقات، استخدِم فاصلة (,) كمُحدِّد. على سبيل المثال، في طلب بيانات من واجهة برمجة التطبيقات

curl https://api.enterprise.apigee.com/v1/o/myorg/e/prod/stats/apis,apps?select=sum(message_count)&timeRange=9/24/2018%2000:00~10/25/2018%2000:00&timeUnit=day

يتم فصل السمتين apis وapps بواسطة ,.

نماذج طلبات البيانات من واجهة برمجة التطبيقات

يتضمّن هذا القسم أمثلة باستخدام الحصول على مقاييس وواجهة برمجة تطبيقات الحصول على مقاييس منظَّمة حسب السمات. يمكنك الاطّلاع على أمثلة لواجهة برمجة تطبيقات المقاييس للحصول على أمثلة إضافية.

عرض إجمالي عدد الطلبات التي تم إجراؤها إلى واجهات برمجة التطبيقات لمدة شهر واحد

للاطّلاع على إجمالي عدد الطلبات التي تم إجراؤها على جميع واجهات برمجة التطبيقات في مؤسستك وبيئتك لمدة شهر واحد، يمكنك استخدام واجهة برمجة التطبيقات الحصول على المقاييس:

curl -v "https://api.enterprise.apigee.com/v1/o/{org}/e/{env}/stats/?select=sum(message_count)&timeRange=03/01/2018%2000:00~03/31/2018%2023:59" \
-u email:password

نموذج إجابة:

{
  "environments": [
    {
      "metrics": [
        {
          "name": "sum(message_count)",
          "values": [
            "7.44944088E8"
          ]
        }
      ],
      "name": "prod"
    }
  ],
...
}

عرض إجمالي عدد الرسائل لكل خادم وكيل لواجهة برمجة التطبيقات لمدة يومين

في هذا المثال، تعرض مقاييس لعدد الطلبات التي تلقّتها جميع الخوادم الوكيلة لواجهة برمجة التطبيقات على مدار يومَين. تحدِّد معلمة طلب البحث select دالة التجميع sum للمقياس message_count في السمة apiproxy. يعرض التقرير سرعة معالجة رسائل الطلب لجميع واجهات برمجة التطبيقات التي تم استلامها خلال الفترة من 20 حزيران (يونيو) 2018 إلى نهاية 21 حزيران (يونيو) 2018، وذلك بالتوقيت العالمي المنسّق:

curl  https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59" \
-u email:password

نموذج إجابة:

{
  "environments" : [ {
    "dimensions" : [ {
      "metrics" : [ {
        "name" : "sum(message_count)",
        "values" : [ {
          "timestamp" : 1498003200000,
          "value" : "1100.0"
        } ]
      } ],
      "name" : "target-reroute"
    } ],
    "name" : "test"
  } ]...
}

تشير هذه الاستجابة إلى أنّه تم استلام 1100 رسالة من خلال خادم وكيل واحد لواجهة برمجة التطبيقات يُسمى "target-reroute" ويجري في بيئة الاختبار بين بداية 20 حزيران (يونيو) 2018 ونهاية 21 حزيران (يونيو) 2018.

للحصول على مقاييس لسمات أخرى، حدِّد سمة مختلفة كمَعلمة معرّف الموارد المنتظم (URI). على سبيل المثال، يمكنك تحديد السمة developer_app لاسترداد المقاييس لتطبيقات مطوّري البرامج. يعرض طلب البيانات من واجهة برمجة التطبيقات التالي إجمالي سرعة معالجة البيانات (الرسائل المستلمة) من أي تطبيقات خلال الفترة الزمنية المحدّدة:

curl  https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/developer_app?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59&timeUnit=day" \
-u email:password

نموذج إجابة:

{
  "environments": [
    {
      "dimensions": [
        {
          "metrics": [
            {
              "name": "sum(message_count)",
              "values": [
                {
                  "timestamp": 1498003200000,
                  "value": "886.0"
                }
              ]
            }
          ],
          "name": "Test-App"
        },
        {
          "metrics": [
            {
              "name": "sum(message_count)",
              "values": [
                {
                  "timestamp": 1498003200000,
                  "value": "6645.0"
                }
              ]
            }
          ],
          "name": "johndoe_app"
        },
        {
          "metrics": [
            {
              "name": "sum(message_count)",
              "values": [
                {
                  "timestamp": 1498003200000,
                  "value": "1109.0"
                }
              ]
            }
          ],
          "name": "marys_app"
        }
  ]...
}

ترتيب النتائج حسب الترتيب النسبي

في كثير من الأحيان، عند الحصول على مقاييس، تريد فقط الحصول على نتائج لمجموعة فرعية من مجموعة البيانات الإجمالية. وتحتاج عادةً إلى الحصول على نتائج حول "أهم 10 تطبيقات"، على سبيل المثال، "أهم 10 واجهات برمجة تطبيقات" أو "أهم 10 تطبيقات نشطة". يمكنك إجراء ذلك باستخدام مَعلمة طلب البحث topk كجزء من الطلب.

على سبيل المثال، قد تكون مهتمًا بمعرفة من هم أبرز المطوّرين لديك، ويتم قياسهم من خلال سرعة معالجة البيانات، أو معرفة التطبيقات التي تحقّق أفضل أداء (على سبيل المثال، "الأبطأ" في واجهات برمجة التطبيقات المستهدفة حسب وقت الاستجابة.

تتيح السمة topk (أي الكيانات التي تحمل اسم "أهم k") إعداد التقارير عن الكيانات المرتبطة بأعلى قيمة لمقياس معيّن. يتيح لك ذلك فلترة المقاييس لقائمة من الكيانات التي تمثّل شرطًا معيّنًا. على سبيل المثال، لمعرفة عنوان URL المستهدف الذي كان أكثر عرضة للخطأ على مدار الأسبوع الماضي، يتم إلحاق المَعلمة topk بالطلب بقيمة 1:

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&topk=1" \
  -u email:password
{
  "environments": [
    {
      "dimensions": [
        {
          "metrics": [
            {
              "name": "sum(is_error)",
              "values": [
                {
                  "timestamp": 1494201600000,
                  "value": "12077.0"
                }
              ]
            }
          ],
          "name": "http://api.company.com"
        }
      ]...
}

ونتيجة هذا الطلب هي مجموعة من المقاييس التي توضّح أنّ عنوان URL المستهدف الأقل أخطاء هو http://api.company.com.

يمكنك أيضًا استخدام المعلَمة topk لترتيب واجهات برمجة التطبيقات التي تسجّل أعلى سرعة لمعالجة البيانات. يستعرض المثال التالي المقاييس في واجهة برمجة التطبيقات الأعلى ترتيبًا، والتي يتم تحديدها حسب أعلى سرعة لمعالجة البيانات في الأسبوع الماضي:

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(message_count)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=day&sortby=sum(message_count)&sort=DESC&topk=1" \
-u email:password

نموذج إجابة

{
  "environments": [
    {
      "dimensions": [
        {
          "metrics": [
            {
              "name": "sum(message_count)",
              "values": [
                {
                  "timestamp": 1494720000000,
                  "value": "5750.0"
                },
                {
                  "timestamp": 1494633600000,
                  "value": "5752.0"
                },
                {
                  "timestamp": 1494547200000,
                  "value": "5747.0"
                },
                {
                  "timestamp": 1494460800000,
                  "value": "5751.0"
                },
                {
                  "timestamp": 1494374400000,
                  "value": "5753.0"
                },
                {
                  "timestamp": 1494288000000,
                  "value": "5751.0"
                },
                {
                  "timestamp": 1494201600000,
                  "value": "5752.0"
                }
              ]
            }
          ],
          "name": "testCache"
        }
      ],
      "name": "test"
    }
  ]...
}

فلترة النتائج

للحصول على مستوى أعلى من الدقة، يمكنك فلترة النتائج للحدّ من البيانات المعروضة. عند استخدام الفلاتر، عليك استخدام السمات كسمات فلاتر.

على سبيل المثال، لنفترض أنّك بحاجة إلى استرداد عدد الأخطاء من خدمات الخلفية التي تمّت فلترتها باستخدام فعل HTTP الخاص بالطلب. ويتمثل هدفك في معرفة عدد طلبات POST وPUT التي تؤدّي إلى حدوث أخطاء لكل خدمة خلفية. لإجراء ذلك، يمكنك استخدام السمة target_url مع الفلتر request_verb:

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&filter=(request_verb%20in%20'POST','PUT')" \
-u email:password

نموذج الإجابة:

{
  "environments" : [
    {
      "dimensions" : [
        {
          "metrics" : [
            {
              "name" : "sum(is_error)",
              "values" : [
                {
                  "timestamp" : 1519516800000,
                  "value" : "1.0"
                }
              ]
          }
        ],
        "name" : "testCache"
        }
      ],
      "name" : "test"
    }
  ]...
}

تقسيم النتائج على عدّة صفحات

في بيئات الإنتاج، تؤدي بعض الطلبات إلى واجهة برمجة تطبيقات Edge analytics إلى عرض مجموعات بيانات كبيرة جدًا. لتسهيل عرض مجموعات البيانات الكبيرة في سياق تطبيق مستند إلى واجهة المستخدم، تتيح واجهة برمجة التطبيقات في الأصل تقسيم النتائج على عدّة صفحات.

لتقسيم النتائج إلى صفحات، استخدِم مَعلمتَي طلب البحث offset وlimit، بالإضافة إلى مَعلمة الترتيب sortby لضمان ترتيب متّسق للعناصر.

على سبيل المثال، من المرجّح أن يعرض الطلب التالي مجموعة بيانات كبيرة، لأنّه يسترد مقاييس جميع الأخطاء في جميع واجهات برمجة التطبيقات في بيئة المنتج خلال الأسبوع الماضي.

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)" \
-u email:password

إذا كان بإمكان التطبيق المستند إلى واجهة المستخدم عرض 50 نتيجة بشكل معقول في كل صفحة، يمكنك ضبط الحدّ الأقصى على 50 نتيجة. بما أنّ القيمة 0 يتم احتسابها كأول عنصر، تعرض المكالمة التالية العناصر من 0 إلى 49 بترتيب تنازلي (الإعداد التلقائي هو sort=DESC).

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=0" \
-u email:password

في ما يخص "الصفحة" الثانية من النتائج، استخدِم مَعلمة طلب البحث الإزاحة على النحو التالي. يُرجى العلم أنّ الحدّ الأقصى والإزاحة متطابقان. وذلك لأن الرقم 0 يتم احتسابه كأول عنصر. يتم إرجاع العناصر من 0 إلى 49 بحد أقصى 50 وإزاحة 0. مع إزاحة من 50، يتم إرجاع العناصر 50-99.

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=50" \
-u email:password