הצגת נתוני מדדים באמצעות ה-API

אתם צופים במסמכי העזרה של Apigee Edge.
כניסה למסמכי העזרה של Apigee X.
info

כדי לקבל מדדים של מעקב אחר API, משתמשים בממשקי ה-API שמפורטים בהמשך. מדדים הם ערכי הנתונים שנצברו על ידי מעקב ה-API מהנתונים הגולמיים שמופיעים ביומני מעקב ה-API.

בקטעים הבאים מוסבר איך לנהל מדדים באמצעות ה-API.

מידע נוסף על Metrics API זמין במאמר Metrics API.

מידע על אפשרויות ה-cURL שבהן נעשה שימוש בדוגמאות האלה זמין במאמר שימוש ב-cURL.

ממשקי Metrics API

כתובת ה-URL הבסיסית שבה משתמשים כדי לשלוח בקשת GET ל-Metrics API היא:

https://apimonitoring.enterprise.apigee.com/metrics/resource

כאשר resource תואם למדד ספציפי. בטבלה הבאה מפורטים משאבי המדדים:

משאב תיאור
/traffic קבלת מדדי תנועה. אפשר לציין מסננים כמו שם שרת proxy, מרווח זמן, חלון זמן, יעד, קוד סטטוס ועוד.
/latency הצגת מדדי זמן אחזור לבקשות

ל-Edge וליעדים לקצה העורפי. אפשר לציין מסננים כמו שם שרת proxy, מרווח זמן, יעד, קוד סטטוס ועוד.

/targets הצגת כל דומייני היעד של ארגון וסביבה ספציפיים.
/alerthistory הצגת מדדים של היסטוריית ההתראות לארגון ולחלון זמן ספציפיים.
/alertinstance/instanceid הצגת מדדי היסטוריית ההתראות של מזהה המופע הספציפי של ההתראה.
/alertsummary הצגת המספר הכולל של ההתראות לארגון ולחלון זמן מסוים.
/faultcodenames הצגת כל השמות של faultcode.
/faultcodes קבלת קודי תקלות.
/faultcodecategories אחזור קטגוריות של קודי תקלות.
/faultcodesubcategories אחזור של קטגוריות משנה של קודי תקלות.
/faultcodedetails הצגת כל קודי השגיאה עם פרטים.

אחזור פרטי הבאג

כל המשאבים מסוג /fault* מחזירים מטא-נתונים על הכשלים האפשריים ב-Edge. לדוגמה, כדי להציג את הרשימה של כל קטגוריות השגיאות האפשריות:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/faultcodecategories" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

מגדירים את $ACCESS_TOKEN לאסימון הגישה מסוג OAuth 2.0, כפי שמתואר במאמר קבלת אסימון גישה מסוג OAuth 2.0.

התגובה מופיעה כך:

{
  "faultCodeCategories":[
    "","API Protocol","Developer/App","Extension Policy","Gateway",
    "Mediation Policy","Mint","Security Policy","Sense","Traffic Mgmt Policy"
  ]
}

לאחר מכן אפשר לקבוע את רשימת קודי השגיאה של הקטגוריה API Protocol:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/faultcodes?faultCodeCategory=API Protocol" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

אפשרויות נוספות מפורטות במאמר Metrics API.

תיעוד מדדים של תנועה וזמן אחזור

ב-Metrics API יש מסננים שאפשר להחיל על ה-API כדי לציין טווחי זמן מותאמים אישית, שרתים אנונימיים, אזורים, סביבות ומסננים אחרים למדדים המחושבים. לדוגמה, כדי להציג את המדד 'עסקאות לשנייה (tps)' בכל 10 דקות לשעה הקודמת בכל הסביבות:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=10m&groupBy=env&org=myorg" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN" 

מגדירים את $ACCESS_TOKEN לאסימון הגישה מסוג OAuth 2.0, כפי שמתואר במאמר קבלת אסימון גישה מסוג OAuth 2.0.

הקריאה הזו מחזירה תוצאות בפורמט:

{
  "results":[
    {
      "series":[
        {
          "name":"proxy",
        "tags":
             {
                "env":"prod",
                "intervalSeconds":"60",
                "org":"myorg",
                "region":"myregion"
              },
            "columns":["time","tps"],
            "values":[
              ["2018-08-15T13:10:00Z",5.03],
              ["2018-08-15T13:20:00Z",5.01],
              ["2018-08-15T13:30:00Z",5.81],
              ["2018-08-15T13:40:00Z",5.95],
              
            ]
          },
       
       }
    }]
}

שימו לב איך המאפיין columns מציין את הפורמט של values. המאפיין values מכיל את tps שמחושב כל 10 דקות, עבור התקופה של 10 הדקות הקודמות.

פרמטר השאילתה interval מגדיר את התדירות שבה המדד נשמר בתוצאות ואת חלון הדגימה של הערך בתוצאות. בדוגמה שלמעלה, המדד מחושב על סמך 10 הדקות הקודמות ונכתב בתוצאות כל 10 דקות.

משתמשים בפרמטרי השאילתה from ו-to כדי לציין טווח זמן בפורמט ISO. משך הזמן המקסימלי שמצוין ב-from וב-to הוא 24 שעות.

פורמט התאריך יכול להיות:

  • yyyy-mm-ddThh:mm:ssZ
  • yyyy-mm-ddThh:mm:ss+00:00

לדוגמה:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=2018-08-13T14%3A04%3A00Z&to=2018-08-13T14%3A10%3A00Z&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

לחלופין, אפשר להשתמש בפרמטרים של השאילתה from ו-to כדי לציין טווח זמן יחסי, למשל לשעה האחרונה:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

אפשרות אחרת היא להשתמש בפרמטר השאילתה proxy כדי להציג עסקאות לשנייה (tps) בשרת proxy יחיד:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

במדדי זמן האחזור, מציינים הרבה מהקריטריונים שהוגדרו למדדי התנועה. עם זאת, למשאב /latency:

  • צריך לציין את פרמטר השאילתה percentile כ-50,‏ 90,‏ 95 או 99. לדוגמה, אם מציינים את הערך 90, ה-API מחזיר את ערך זמן האחזור הכולל של התגובה ב-90 percentile.
  • הערך של windowsize קבוע בדקה אחת.

לדוגמה, כדי להציג את המדדים של זמן האחזור הכולל באחוזון ה-90 בחלון זמן של דקה אחת:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/latency?percentile=90&select=totalLatency&from=-1h&to=now&interval=5m&windowsize=1m&groupBy=org,env,region&org=myorg" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

אפשרויות נוספות מפורטות במאמר Metrics API.

איך מתעדים מדדים להתראות

Metrics API מחזיר מדדים לכל ההתראות, להתרעה ספציפית או לסיכום של ההתראות. לדוגמה, כדי לקבל את היסטוריית ההתראות של ארגון בשעה האחרונה:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/alerthistory?org=myorg&from=-1h&to=now" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

מגדירים את $ACCESS_TOKEN לאסימון הגישה מסוג OAuth 2.0, כפי שמתואר במאמר קבלת אסימון גישה מסוג OAuth 2.0.

קריאת ה-API הזו מחזירה תשובה בפורמט:

[
  {
"id":"983c4c7a-c301-4697-95cc-9a7c53e05fac",
"organization":"myorg",
"environment":"prod",
"name":"Public Api 5xx error rate",
"type":"Alert",
"source":"https://www.apigee.net/sonar",
"raw_payload":"
{
    \"reportUUID\":\"\",
    \"reportEnabled\":false,
    \"organization\":\"myorg\",
    \"name\":\"Public Api 5xx error rate\",
    \"self\":\"/alerts/95cc9ef4-345f-11e8-9fd3-12774584e062\",
    \"description\":\"\",
    \"conditions\":[
    {
        \"comparator\":\"\u003e\",
        \"metric\":\"rate\",
        \"durationSeconds\":3600,
        \"name\":\"\",
        \"description\":\"\",
        \"threshold\":0.01,
        \"dimensions\":
        {
            \"proxy\":\"myAPI\",
            \"org\":\"myorg\",
            \"env\":\"prod\",
            \"region\":\"myRegion\",
            \"statusCode\":\"5xx\"
            }
        }],
        \"uuid\":\"95cc9ef4-345f-11e8-9fd3-12774584e062\",
    \"playbook\":\"This is a test alert.\"
    }",
"time":"2018-08-14T12:45:28Z"
 },
 
]

לאחר מכן אפשר להשתמש ב-id במערך המוחזר כדי לקבל מידע על התראה ספציפית:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/alertinstance/983c4c7a-c301-4697-95cc-9a7c53e05fac" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

אפשרויות נוספות מפורטות במאמר Metrics API.