أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
تسجِّل Apigee Edge مجموعة متنوعة من البيانات التشغيلية والتجارية التي تتدفق عبر واجهات برمجة التطبيقات. تعتبر المقاييس المستمدة من هذه البيانات مفيدة للمراقبة التشغيلية ومراقبة الأعمال. باستخدام Edge API Analytics، يمكنك على سبيل المثال، نحدد واجهات برمجة التطبيقات التي تحقق أداءً جيدًا أو ضعيفًا، للمطوّرين الذين يقدمون الزيارات الأعلى قيمة، والتطبيقات التي تتسبب في أكبر قدر من المشاكل في خدمات الخلفية.
وللمساعدة في الوصول إلى بيانات المقاييس بسهولة، يعرض Edge واجهة برمجة تطبيقات RESTful. يمكنك استخدام واجهة برمجة التطبيقات للمقاييس عندما تحتاج إلى التشغيل الآلي لوظائف معيّنة في "إحصاءات Google"، مثل استرداد المقاييس بشكل دوري باستخدام برنامج تشغيل آلي أو نص برمجي يمكنك أيضًا استخدام واجهة برمجة التطبيقات لإنشاء والتمثيليات في شكل تطبيقات مصغّرة مخصصة يمكنك تضمينها في بوابات أو تطبيقات مخصصة.
التعرّف على كيفية استخدام "إحصاءات Google" في واجهة برمجة التطبيقات واجهة مستخدم إدارة 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
لتحديد المقاييس
لاستردادها، ودالة تجميع اختيارية، بالشكل التالي:
?select=metric
أو:
?select=aggFunction(metric)
المكان:
- metric البيانات التي تريد عرضها. على سبيل المثال:
عدد طلبات واجهة برمجة التطبيقات أو نتائج ذاكرة التخزين المؤقت أو أخطاء السياسة. الاطّلاع على المقاييس
لجدول يحدّد اسم المقياس المطلوب استخدامه مع مَعلمة طلب البحث
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)
تحديد الفترة الزمنية
تعرض Metrics API البيانات لفترة زمنية محدّدة. استخدام 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
بعلامة ,
.
نماذج طلبات البيانات من واجهة برمجة التطبيقات
يحتوي هذا القسم على أمثلة تستخدم الحصول على مقاييس تنظيم المقاييس حسب السمات واجهات برمجة التطبيقات. يمكنك الاطّلاع على أمثلة على المقاييس API للاطّلاع على أمثلة إضافية.
عرض إجمالي عدد الطلبات التي تم إجراؤها مع واجهات برمجة التطبيقات لمدة شهر واحد
للاطّلاع على إجمالي عدد الاتصالات التي تم إجراؤها لجميع واجهات برمجة التطبيقات في مؤسستك وبيئتك لمدة شهر واحد، استخدِم السمة واجهة برمجة تطبيقات الحصول على المقاييس:
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 ونهاية 2018/6/21، في
التوقيت العالمي المنسق:
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" } ]... }
تشير هذه الاستجابة إلى أنّه تم استلام 1,100 رسالة من خلال خادم وكيل لواجهة برمجة تطبيقات واحد يسمى "إعادة التوجيه المستهدفة" في بيئة الاختبار بين بداية 20/6/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 بطئ".
API"، وهي "أكثر 10 تطبيقات نشاطًا". يمكنك إجراء ذلك باستخدام مَعلمة طلب البحث "topk
".
كجزء من الطلب.
على سبيل المثال، قد تكون مهتمًا بمعرفة من هم أهم مطوري البرامج لديك، ويتم قياسهم من خلال سرعة معالجة البيانات، أو أسوأ أداء لديك (أي "أعلى أبطأ" واجهات برمجة التطبيقات المستهدفة حسب وقت الاستجابة.
تعمل منصة topk
(أي كيانات "أهم الكيانات") على تفعيل الإبلاغ عن الكيانات المرتبطة.
ذات القيمة الأعلى لمقياس معين. ويتيح لك ذلك فلترة المقاييس لقائمة
الكيانات التي تمثل شرطًا معينًا. على سبيل المثال، للعثور على عنوان 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 analyticss إلى إرجاع بيانات كبيرة جدًا مجموعات. لتسهيل عرض مجموعات كبيرة من البيانات في سياق تطبيق مستند إلى واجهة المستخدم، تتيح واجهة برمجة التطبيقات في الأصل تقسيم النتائج على عدّة صفحات.
لتقسيم النتائج على صفحات، استخدِم مَعلمتَي طلب البحث 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 يحسب العنصر الأول. بحد أقصى 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