أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
تسجّل Apigee Edge مجموعة متنوعة من بيانات التشغيل والبيانات التجارية التي تنتقل عبر واجهات برمجة التطبيقات. والمقاييس المستخلَصة من هذه البيانات مفيدة في المراقبة التشغيلية ومراقبة الأنشطة التجارية. باستخدام "إحصاءات واجهة Edge API"، يمكنك، على سبيل المثال، تحديد واجهات برمجة التطبيقات التي تعمل بشكل جيد أو سيئ، والمطوّرين الذين يقدّمون أكبر عدد من الزيارات القيّمة، والتطبيقات التي تسبّب معظم المشاكل لخدمات الخلفية.
للمساعدة في الوصول إلى بيانات المقاييس هذه بسهولة، يعرض Edge واجهة برمجة تطبيقات RESTful. يمكنك استخدام واجهة برمجة التطبيقات للمقاييس عندما تحتاج إلى تنفيذ بعض وظائف "إحصاءات Google" تلقائيًا، مثل استرداد المقاييس بشكل دوري باستخدام برنامج أو نص برمجي للإدارة التلقائية. يمكنك أيضًا استخدام واجهة برمجة التطبيقات لإنشاء التصورات الخاصة بك في شكل أدوات مخصّصة يمكنك تضمينها في البوابات أو التطبيقات المخصّصة.
لمعرفة كيفية استخدام "إحصاءات Google" في واجهة مستخدم إدارة API Edge، راجِع نظرة عامة على إحصاءات واجهة برمجة التطبيقات.
لمحة عن واجهات برمجة التطبيقات الخاصة بالمقاييس
توفّر Edge واجهتَي برمجة تطبيقات للمقاييس:
تعرض الدالة getMetrics مقاييس مؤسسة وبيئة خلال فترة زمنية معيّنة، مثل ساعة أو يوم أو أسبوع.
على سبيل المثال، إذا أردت الحصول على ما يلي للأسبوع السابق:
- عدد الأخطاء المتعلقة بالسياسة
- متوسط الوقت المستغرَق للردّ
- إجمالي عدد الزيارات
تعرض الدالة Get metrics organized by dimensions مقاييس على مدار فترة زمنية لمؤسسة وبيئة مجمّعة حسب السمة.
على سبيل المثال، بالنسبة إلى الأسبوع السابق، يمكنك استخدام السمات لتجميع المقاييس حسب منتج واجهة برمجة التطبيقات وخادم وكيل واجهة برمجة التطبيقات والبريد الإلكتروني للمطوّر للحصول على ما يلي:
- عدد أخطاء السياسة لكل منتج من منتجات واجهة برمجة التطبيقات
- متوسط الوقت المستغرَق للردّ لكل خادم وكيل لواجهة برمجة التطبيقات
- إجمالي عدد الزيارات لكل عنوان بريد إلكتروني خاص بمطوِّر
تتيح واجهة برمجة التطبيقات الحصول على المقاييس منظَّمة حسب السمات ميزات إضافية لا تتيحها واجهة برمجة التطبيقات الحصول على المقاييس، بما في ذلك:
لمحة عن حصص واجهة برمجة التطبيقات الخاصة بالمقاييس
يفرض 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.
الحصول على مقاييس باستخدام Management API
الفرق الرئيسي بين واجهتَي برمجة التطبيقات هو أنّ Get metrics تعرض مقاييس أولية للمؤسسة والبيئة بأكملها، بينما تتيح لك Get metrics organized by dimensions تجميع المقاييس حسب أنواع الكيانات المختلفة، مثل منتج واجهة برمجة التطبيقات والمطوّر والتطبيق.
عنوان URL للطلب الخاص بواجهة برمجة التطبيقات Get metrics هو:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/statsبالنسبة إلى واجهة برمجة التطبيقات Get metrics organized by dimensions، يمكنك تضمين مورد إضافي في عنوان 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تحديد المقاييس المطلوب عرضها
بالنسبة إلى واجهتَي برمجة التطبيقات Get metrics وGet metrics organized by dimensions، يمكنك استخدام مَعلمة طلب البحث select لتحديد المقاييس التي تريد استردادها، بالإضافة إلى دالة تجميع اختيارية، وذلك بالشكل التالي:
?select=metric
أو:
?select=aggFunction(metric)
المكان:
- تحدّد المقياس البيانات التي تريد عرضها. على سبيل المثال، عدد الطلبات من واجهة برمجة التطبيقات أو عدد مرات الوصول إلى ذاكرة التخزين المؤقت أو أخطاء السياسة. راجِع المقاييس
للاطّلاع على جدول يحدّد اسم المقياس الذي سيتم استخدامه مع مَعلمة طلب البحث
select. تحدّد aggFunction دالة التجميع الاختيارية التي يتم تنفيذها على المقياس. على سبيل المثال، يمكنك استخدام دوال التجميع التالية مع مقياس وقت استجابة المعالجة:
avg: تعرض متوسط وقت استجابة المعالجة.-
min: تعرض الحد الأدنى لوقت استجابة المعالجة. max: تعرض الحد الأقصى لوقت استجابة المعالجة.-
sum: تعرض مجموع جميع أوقات استجابة المعالجة.
لا تتوافق بعض المقاييس مع جميع دوال التجميع. تتضمّن المستندات حول المقاييس جدولاً يحدّد اسم المقياس والدالة (
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 باستخدام ,.
نماذج لطلبات البيانات من واجهة برمجة التطبيقات
يحتوي هذا القسم على أمثلة تستخدم واجهتَي برمجة التطبيقات Get metrics وGet metrics organized by dimensions. يمكنك الاطّلاع على أمثلة على واجهة برمجة التطبيقات Metrics API للحصول على أمثلة إضافية.
عرض إجمالي عدد الطلبات التي تم إجراؤها إلى واجهات برمجة التطبيقات لمدة شهر واحد
للاطّلاع على إجمالي عدد طلبات البيانات من جميع واجهات برمجة التطبيقات في مؤسستك وبيئتك لمدة شهر واحد، استخدِم واجهة برمجة التطبيقات Get metrics:
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/6/2018 ونهاية 21/6/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/6/2018 ونهاية 21/6/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
للحصول على "الصفحة" الثانية من النتائج، استخدِم مَعلمة طلب البحث offset على النحو التالي. يُرجى العِلم أنّ الحدّ والإزاحة متطابقان. ويرجع ذلك إلى أنّ الرقم 0 يُعدّ العنصر الأول. مع حد أقصى يبلغ 50 وإزاحة تبلغ 0، يتم عرض العناصر من 0 إلى 49. مع إزاحة بمقدار 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