מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
Apigee Edge מתעדת מגוון רחב של נתונים תפעוליים ועסקיים שזורמים בין ממשקי API. המדדים שנגזרים מהנתונים האלה שימושי למעקב תפעולי ולמעקב עסקי. באמצעות Edge API Analytics אפשר, לדוגמה, לקבוע אילו ממשקי API מניבים ביצועים טובים או גרועים, אילו מפתחים מספקים התנועה בעלת הערך הגבוה ביותר, ואילו אפליקציות גורמות להכי הרבה בעיות בשירותים לקצה העורפי.
כדי לגשת לנתוני המדדים האלה בקלות, Edge חושף API ל-RESTful. אפשר להשתמש ב-Metric API כדי להפוך פונקציות מסוימות של Analytics לאוטומטיות, כמו אחזור מדדים. מדי פעם באמצעות לקוח או סקריפט של אוטומציה. תוכלו גם להשתמש ב-API כדי ליצור רכיבים חזותיים בצורת ווידג'טים מותאמים אישית שאפשר להטמיע בפורטלים או באפליקציות מותאמות אישית.
כדי ללמוד איך להשתמש ב-Analytics ב-API ממשק המשתמש של ניהול Edge זמין במאמר סקירה כללית על API Analytics.
מידע על ממשקי ה-API למדדים
Edge מספק שני ממשקי API של מדדים:
קבלת מדדים מחזירה מדדים עבור ארגון וסביבה על פני פרק זמן מסוים, כמו שעה, יום או שבוע.
לדוגמה, לגבי השבוע הקודם שרוצים לקבל:
- מספר השגיאות שקשורות למדיניות
- זמן התגובה הממוצע
- סך כל התנועה
סידור המדדים לפי מאפיינים מחזירה מדדים לאורך זמן עבור הארגון והסביבה שמקובצים לפי מאפיין.
לדוגמה, בשבוע הקודם השתמשתם במאפיינים כדי לקבץ מדדים לפי מוצר API, שרת proxy ל-API, ואת כתובת האימייל של המפתח כדי לקבל:
- מספר השגיאות שקשורות למדיניות לכל מוצר API
- זמן התגובה הממוצע לכל שרת proxy ל-API
- נפח התנועה הכולל לכל אימייל של מפתח
סידור המדדים לפי מאפיינים ה-API תומך בתכונות נוספות שלא נתמכות על ידי מדדי אחזור ב-API, כולל:
מידע על המכסות ל-Metric API ב-API
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"
אם תחרגו ממכסת הקריאות, ה-API יחזיר תגובת HTTP 429.
אחזור מדדים באמצעות ממשק ה-API לניהול
ההבדל העיקרי בין שני ממשקי ה-API הוא קבלת מדדים. מחזירה מדדים גולמיים לכל הארגון והסביבה, סידור המדדים לפי מאפיינים מאפשרת לקבץ מדדים לפי סוגי ישויות שונים, כמו מוצר API, מפתח ואפליקציה.
כתובת ה-URL של הבקשה עבור ה-API Get metrics היא:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats
סידור המדדים לפי מאפיינים
ב-API, צריך לכלול בכתובת ה-URL משאב נוסף אחרי /stats
שמציין את המאפיין הרצוי:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/dimension
לדוגמה, כדי לקבל מדדים המקובצים לפי שרת proxy ל-API, צריך להשתמש בכתובת ה-URL הבאה כדי להפעיל ממשק ה-API לניהול:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/apiproxy
ציון המדדים שיוחזרו
עבור שתי פלטפורמות הפרסום
קבלת מדדים
סידור המדדים לפי מאפיינים
ממשקי API שבהם משתמשים בפרמטר השאילתה select
כדי לציין את המדדים
ופונקציית צבירה אופציונלית, בתבנית:
?select=metric
או:
?select=aggFunction(metric)
כאשר:
- metric מציין את הנתונים שרוצים להחזיר. לדוגמה,
מספר בקשות ה-API, ההיטים במטמון או שגיאות המדיניות. לעיון במדדים
לטבלה שמציינת את שם המדד שבו צריך להשתמש עם פרמטר השאילתה
select
. aggFunction מציין את פונקציית הצבירה האופציונלית שפועלת על המדד. לדוגמה, ניתן להשתמש בפונקציות הצבירה הבאות עם המדד 'זמן אחזור' של העיבוד:
avg
: הפונקציה מחזירה את זמן האחזור הממוצע בעיבוד.min
: הפונקציה מחזירה את זמן האחזור המינימלי לעיבוד.max
: הפונקציה מחזירה את זמן האחזור המקסימלי לעיבוד.-
sum
: מחזירה את הסכום של כל זמני האחזור של העיבוד.
לא כל המדדים תומכים בכל פונקציות הצבירה. התיעוד בכתובת העמודה מדדים מכילה טבלה שמציינת את שם המדד והפונקציה (
sum
,avg
,min
,max
) שנתמכת על ידי המדד.
לדוגמה, כדי להחזיר את מספר העסקאות הממוצע, כלומר בקשות לשרת proxy של API, לשנייה:
?select=tps
שימו לב שלדוגמה הזו לא נדרשת פונקציית צבירה. בדוגמה הבאה משתמשים פונקציית צבירה שתחזיר את סכום ההיטים של המטמון:
?select=sum(cache_hit)
אפשר להחזיר מספר מדדים לקריאה אחת ל-API. כדי לקבל מדדים לגבי סכום השגיאות שקשורות למדיניות
ואת גודל הבקשה הממוצע, מגדירים את פרמטר השאילתה select
באמצעות
רשימת מדדים:
?select=sum(policy_error),avg(request_size)
ציון תקופת הזמן
ה-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.
שימוש בתו מפריד
כדי להפריד בין כמה מאפיינים בקריאה ל-API, צריך להשתמש בפסיק (,
) כתו מפריד.
לדוגמה, בקריאה ל-API
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
הקטע הזה כולל דוגמאות לשימוש באפשרות קבלת מדדים סידור המדדים לפי מאפיינים ממשקי API. דוגמאות נוספות מופיעות בדוגמאות ל-Metrics API.
החזרת המספר הכולל של הקריאות שנשלחו לממשקי ה-API במשך חודש אחד
כדי לראות את המספר הכולל של הקריאות לכל ממשקי ה-API בארגון ובסביבה במשך חודש אחד, צריך להשתמש ב ממשק 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" } ], ... }
החזרת מספר ההודעות הכולל לכל שרת proxy ל-API למשך יומיים
בדוגמה הזו מחזירים מדדים לגבי מספר הבקשות שהתקבלו בכל שרתי ה-proxy ל-API
בתקופה של יומיים. פרמטר השאילתה select
מגדיר את פונקציית הצבירה sum
של המדד
message_count
במאפיין apiproxy
. הדוח מחזיר את התפוקה של הודעת הבקשה
לגבי כל ממשקי ה-API של התנועה שהתקבלה בין תחילת 20 ביוני 2018 לסוף 21 ביוני 2018, ב
שעון UTC:
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 הודעות על ידי שרת proxy אחד של API שנקרא 'יעד-שינוי מסלול' בסביבת הבדיקה שמתחילה ב-20 ביוני 2018 עד סוף 2018 21.06.2018.
כדי לקבל מדדים של מאפיינים אחרים, צריך לציין מאפיין אחר כפרמטר ה-URI. עבור
לדוגמה, אפשר לציין את המאפיין developer_app
כדי לאחזר מדדים
של מפתחים. הקריאה הבאה ל-API מחזירה את התפוקה (הודעות שהתקבלו) מכל האפליקציות
לפרק הזמן שצוין:
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
כחלק מהבקשה.
לדוגמה, אולי תרצו לדעת מיהם המפתחים המובילים שלכם, כאשר הם נמדדים לפי תפוקה, או של האומנים בעלי הביצועים הגרועים ביותר (כלומר ממשקי ה-API המטורגטים 'האיטיים ביותר') הם לפי זמן אחזור.
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
כדי למיין את ממשקי ה-API בעלי האיכות הגבוהה ביותר
תפוקה. הדוגמה הבאה מאחזרת מדדים מה-API בדירוג הגבוה ביותר, לפי ההגדרה הגבוהה ביותר
תפוקה בשבוע האחרון:
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 API מחזירות נתונים גדולים מאוד למשימות. כדי להקל על הצגה של קבוצות נתונים גדולות בהקשר של אפליקציה מבוססת-ממשק משתמש, ה-API תומך באופן טבעי בעימוד.
כדי לחלק את התוצאות לדפים, צריך להשתמש בפרמטרים של השאילתה offset
ו-limit
יחד עם פרמטר המיון sortby
כדי להבטיח סדר עקבי של
פריטים.
לדוגמה, סביר להניח שהבקשה הבאה תחזיר קבוצת נתונים גדולה, כי מאחזרת מדדים לכל השגיאות בכל ממשקי ה-API בסביבת המוצר בשבוע האחרון.
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