העלאת נתוני תנועה לממשק API ל-Apigee – גרסת בטא

Edge for Private Cloud גרסה 4.17.01

כל לקוחות Edge for Private Cloud נדרשים לשלוח ל-Apigee נתונים סטטיסטיים לגבי תעבורת הנתונים בשרת proxy ל-API. Apigee ממליצה ללקוחות להעלות את המידע הזה פעם ביום, כנראה על ידי יצירת משימת cron.

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

כדי לעזור בהעלאת הנתונים האלה, Apigee מספקת את גרסת הבטא של כלי שורת הפקודה apigee-analytics-collector. כלי השירות הזה שולח את דוח נפח הקריאות של ה-API חזרה ל-Apigee. כל Edge להתקנה של ענן פרטי יכול להשתמש בכלי השירות הזה כדי לאחזר נתוני תעבורת נתונים ולדווח עליהם ל-Apigee.

מידע נוסף על התהליך של העלאת נתוני תנועה ל-Apigee זמין בשאלות הנפוצות.

צפה בסרטון קצר כדי לראות את הכלי בפעולה.

התקנה של apigee-analytics-collector

כלי העזר apigee-analytics-collector הוא מודול של Node.js שאתם מתקינים באמצעות npm.

דרישות התקנה

כדי להשתמש בכלי apigee-analytics-collector, צריך:

  • npm 2.x ואילך
  • Node.js 4.x.

איפה להתקין

הצומת שבו מתקינים את כלי השירות apigee-analytics-collector יכול להיות כל צומת שיכול לגשת ל-Edge Management API בשרת Edge Management Server. אפשר להתקין אותו ישירות בשרת הניהול, בצומת אחר של התקנת Edge או בצומת נפרד, כל עוד הצומת יכול לשלוח בקשות API לשרת הניהול.

דרישות גישה לאינטרנט

מתקינים את תוכנת העזר apigee-analytics-collector במחשב עם גישה חיצונית לאינטרנט. לאחר מכן, כלי העזר apigee-analytics-collector יכול להעלות נתונים ישירות ל-Apigee.

אם אין צומת עם גישה ל-Edge Management API בשרת הניהול של Edge וגם גישה חיצונית לאינטרנט, אפשר להשתמש ב-Edge Management API כדי לשמור את נתוני התעבורה באופן מקומי. לאחר מכן צריך להעביר את הנתונים למחשב עם גישה לאינטרנט להעלאה אל Apigee. בתרחיש כזה, אין צורך להשתמש בכלי העזר apigee-analytics-collector. מידע נוסף מופיע בקטע העלאה ידנית של נתונים ל-Apigee בהמשך.

התקנה

כדי להתקין את כלי העזר apigee-analytics-collector, משתמשים בפקודה הבאה:

> npm install apigee-analytics-collector -g

מריץ את apigee-analytics-collector

בקטע הזה נסביר איך מפעילים את הכלי apigee-analytics-collector.

המידע הנדרש להפעלת apigee-analytics-collector

יש צורך בפרטים הבאים כדי להריץ את הפקודה apigee-analytics-collector ולהעביר נתונים ל-Apigee:

  • apigee_mgmt_api_uri: כתובת ה-URL הבסיסית של ממשק Edge API בשרת הניהול שלכם. הפורמט של כתובת ה-URL הוא בדרך כלל:
    http://ms_IP:8080/v1

    כאשר ms_IP היא כתובת ה-IP או שרת הניהול שלכם, ו-8080 היא היציאה שבה נעשה שימוש ב-Edge API. אם יצרת רשומת DNS ל-Edge API, כתובת ה-URL היא בפורמט הבא:
    http://ms_DNS/v1

    אם הפעלת TLS ב-Edge Management API, היא מופיעה בפורמט הבא:
    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: כתובת האימייל של חשבון עם גישה לממשקי ה-API של /stats Edge. בדרך כלל זו תהיה כתובת האימייל של מנהל המערכת ב-Edge או של מנהל הארגון בארגון.
  • apigee_mgmt_api_password: סיסמת Edge לחשבון שצוינה על ידי apigee_mgmt_api_email.
  • apigee_analytics_client_id ו-apigee_analytics_secret: פרטי הכניסה שלכם להעלאת נתונים ל-Apigee. יש לשלוח פנייה מהתמיכה של Apigee כדי לקבל את apigee_analytics_client_id ו-apigee_analytics_secret.

פקודות לדוגמה

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

> apigee-analytics-collector export traffic \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret

שימו לב שהפקודה מכילה את כל המידע הנדרש, כמו הערכים apigee_analytics_client_id ו-apigee_analytics_secret.

התוצאות אמורות להופיע בצורה הבאה:

[
  {
    "org": "myOrg",
    "env": "prod",
    "time_range_start": "08/27/2016 00:00",
    "time_range_end": "08/30/2016 00:00",
    "response": [
      {
        "store_org_env_metrics_hourly_v4": 1
      }
    ]
  },
  {
    "org": "VALIDATE",
    "env": "test",
    "time_range_start": "08/27/2016 00:00",
    "time_range_end": "08/30/2016 00:00",
    "response": [
      {
        "store_org_env_metrics_hourly_v4": 1
      }
    ]
  }
]

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

  • -i, --include_orgs <רשימת פריטים מופרדת בפסיקים>
  • -x, --exclude_orgs <רשימת פריטים מופרדת בפסיקים>
  • -n, --include_envs <רשימת פריטים מופרדת בפסיקים>
  • -e, --exclude_envs <רשימת פריטים מופרדת בפסיקים>

לדוגמה, כדי לציין רק את הארגונים והסביבות בסביבת הייצור, משתמשים באפשרויות -i (או --i) ו--i (או -i):

> apigee-analytics-collector export traffic -i myOrg -n prod \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret

בדוגמה הזו, אוספים נתונים רק מסביבת הייצור של myOrg.

כדי להעתיק את הנתונים למסך לצורך בדיקה לפני שליחתם אל Apigee, יש להשתמש באפשרות -S:

> apigee-analytics-collector export traffic -i myOrg -n prod -S \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret 

האפשרות -S משמיטה את הנתונים שמעלים ל-Apigee. אחר כך אפשר להריץ מחדש את הפקודה בלי האפשרות -S כדי לשלוח את הנתונים ל-Apigee.

אחת הסיבות לשימוש באפשרות -S היא כדי להציג סוגים שונים של נתונים באופן מקומי. ב-Apigee יש להעלות רק נתוני תנועה מ-API, אבל אם בוחרים באפשרות -D, ניתן להציג נתונים על מוצרי API, מפתחים, אפליקציות או שרתי proxy של API. בדוגמה הבאה השתמשנו באפשרויות -D ו- -S כדי להציג את נתוני המפתח באופן מקומי:

> apigee-analytics-collector export traffic -i myOrg -n prod -S -D devs \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret 

כוללים את האפשרות -v כדי לקבל פלט מילולי ואת האפשרות -v כדי להציג את פקודות ה-Curl שנוצרו על ידי -v:

 > apigee-analytics-collector export traffic -i myOrg -n prod -S -R -v \
--apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \
--apigee_mgmt_api_email $ae_username \
--apigee_mgmt_api_password $ae_password \
--apigee_analytics_client_id $apigee_analytics_client_id \
--apigee_analytics_secret $apigee_analytics_secret 

הקטע הבא כולל רשימה מלאה של אפשרויות שורת הפקודה.

פרמטרים של פקודות

בטבלה הבאה מפורטת קבוצת האפשרויות המלאה לכלי העזר apigee-analytics-collector:

פקודה

שימוש

-h, --עזרה

מידע על השימוש בפלט

-D, --מאפיין <dimension>

מאפיין התנועה שרוצים לאסוף. מאפיינים חוקיים: apiproducts, devs, apps, apiproxy (ברירת מחדל)

-d, --ימים <days>

מספר הימים שחלפו, החל מהתאריך הנוכחי, של הנתונים לאיסוף. ברירת המחדל היא 3.

אם ציינתם -d, אל תציינו גם -s ו- -z כדי להגדיר טווח זמן.

-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri>

כתובת ה-URL של Edge Management API.

-u, --apigee_mgmt_api_email <apigee_mgmt_api_email>

כתובת האימייל של חשבון עם גישה לממשקי API /stats של Edge. בדרך כלל זו תהיה כתובת האימייל של מנהל המערכת ב-Edge או של מנהל הארגון בארגון בסביבת הייצור.

-p, --apigee_mgmt_api_password <apigee_mgmt_api_password>

הסיסמה משויכת לחשבון האימייל של Edge Management API שצוין באמצעות -u.

-i, --include_orgs <items>

רשימה מופרדת בפסיקים של ארגונים שצריך לכלול בפלט.

-x, --exclusion_orgs <items>

רשימה מופרדת בפסיקים של ארגונים שצריך להחריג מהפלט.

-n, --include_envs <items>

רשימה מופרדת בפסיקים של סביבות שיש לכלול בפלט.

-e, --Exclude_envs <items>

רשימה מופרדת בפסיקים של סביבות להכללה מהפלט.

-o, --output <path>

הנתיב ושם הקובץ לשמירת הפלט.

-s, --time_range_start <time_range_start>

טווח זמן להתחלת שאילתה על נתונים סטטיסטיים של תנועה, בפורמט: "03/01/2016 00:00".

אם מציינים -d, לא מציינים גם -s ו- -z כדי להגדיר טווח זמן.

-z, --time_range_end <time_range_end>

תאריך הסיום של טווח הזמן לשליחת שאילתות לגבי נתונים סטטיסטיים של תנועה, בפורמט: "04/01/2016 24:00".

אם מציינים -d, לא מציינים גם -s ו- -z כדי להגדיר טווח זמן.

-t, --time_unit <time_unit>

יחידת הזמן לנתוני תנועה. שבוע ברירת המחדל. יחידות ברירת מחדל לפי שעה. יחידות זמן חוקיות: שנייה, דקה, שעה, יום, שבוע.

-S, --standard_output

כותבים את הפלט בטרמינל (stdout), במקום להעלות אותו ל-Apigee.

-c, --apigee_analytics_client_id <apigee_analytics_client_id>

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

-r, --apigee_analytics_secret <apigee_analytics_secret>

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

-R, --include_curl_commands

כוללים את פקודות ה-cURL שנוצרות בפלט לצורך ניפוי באגים.

-v, --verbose

הצגת פלט מילולי.

העלאה ידנית של נתונים ל-Apigee

Apigee ממליצה להתקין את תוכנת השירות apigee-analytics-collector במחשב עם גישה חיצונית לאינטרנט. לאחר מכן, כלי העזר apigee-analytics-collector יכול להעלות נתונים ישירות ל-Apigee.

עם זאת, אם למחשב אין גישה חיצונית לאינטרנט, צריך להשתמש ב-Edge management API כדי לאסוף נתוני תעבורת נתונים, ואז להשתמש בפקודות cURL כדי להעלות את הנתונים ל-Apigee ממחשב עם גישה לאינטרנט. צריך לחזור על התהליך הזה לכל ארגון וסביבה בסביבת ייצור בהתקנת Edge.

משתמשים בפקודה הבאה ל-cURL כדי לאסוף נתוני תנועה של ארגון וסביבה ספציפיים בטווח זמן מוגדר:

curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://<ms_IP>:8080/v1/organizations/{org_name}/environments/{env_name}/stats/apiproxy?select=sum(message_count)&timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour"

פקודה זו משתמשת בממשק ה-API של Edge Get API לספירת הודעות. בפקודה זו:

  • החלק apigee_mgmt_api_email:apigee_mgmt_api_password מציין את כתובת האימייל של חשבון עם גישה לממשקי Edge /stats API.
  • <ms_IP> הוא כתובת ה-IP או שם ה-DNS של שרת הניהול של Edge.
  • {org_name} ו-{env_name} מציינים את הארגון והסביבה.
  • apiproxy הוא המבנה שמקבץ מדדים לפי שרתי proxy של API.
  • החלק MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour מציין את טווח הזמן חלקי יחידות הזמן של המדדים שיש לאסוף. שימו לב שהפקודה cURL משתמשת בקוד ההקסדצימלי %20 לרווחים בטווח הזמן.

לדוגמה, כדי לאסוף ספירות של הודעות proxy ל-API שעה אחרי שעה בתקופה של 24 שעות, משתמשים ב קריאה הבאה ל-API לניהול. ה-timeRange מכיל תווים בקידוד כתובות URL.

curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://192.168.56.103:8080/v1/organizations/myOrg/environments/prod/stats/apiproxy?select=sum(message_count)&timeRange=01%2F01%2F2018%2000%3A00~01%2F02%2F2018%2000%3A00"

אמורה להופיע תשובה בטופס:

{
  "environments" : [ {
    "metrics" : [ {
      "name" : "sum(message_count)",
      "values": [
                {
                  "timestamp": 1514847600000,
                  "value": "35.0"
                },
                {
                  "timestamp": 1514844000000,
                  "value": "19.0"
                },
                {
                  "timestamp": 1514840400000,
                  "value": "58.0"
                },
                {
                  "timestamp": 1514836800000,
                  "value": "28.0"
                },
                {
                  "timestamp": 1514833200000,
                  "value": "29.0"
                },
                {
                  "timestamp": 1514829600000,
                  "value": "33.0"
                },
                {
                  "timestamp": 1514826000000,
                  "value": "26.0"
                },
                {
                  "timestamp": 1514822400000,
                  "value": "57.0"
                },
                {
                  "timestamp": 1514818800000,
                  "value": "41.0"
                },
                {
                  "timestamp": 1514815200000,
                  "value": "27.0"
                },
                {
                  "timestamp": 1514811600000,
                  "value": "47.0"
                },
                {
                  "timestamp": 1514808000000,
                  "value": "66.0"
                },
                {
                  "timestamp": 1514804400000,
                  "value": "50.0"
                },
                {
                  "timestamp": 1514800800000,
                  "value": "41.0"
                },
                {
                  "timestamp": 1514797200000,
                  "value": "49.0"
                },
                {
                  "timestamp": 1514793600000,
                  "value": "35.0"
                },
                {
                  "timestamp": 1514790000000,
                  "value": "89.0"
                },
                {
                  "timestamp": 1514786400000,
                  "value": "42.0"
                },
                {
                  "timestamp": 1514782800000,
                  "value": "47.0"
                },
                {
                  "timestamp": 1514779200000,
                  "value": "21.0"
                },
                {
                  "timestamp": 1514775600000,
                  "value": "27.0"
                },
                {
                  "timestamp": 1514772000000,
                  "value": "20.0"
                },
                {
                  "timestamp": 1514768400000,
                  "value": "12.0"
                },
                {
                  "timestamp": 1514764800000,
                  "value": "7.0"
                }
              ]
            }
          ],
          "name" : "proxy1"
  } ],
  "metaData" : {
    "errors" : [ ],
    "notices" : [ "query served by:53dab80c-e811-4ba6-a3e7-b96f53433baa", "source pg:6b7bab33-e732-405c-a5dd-4782647ce096", "Table used: myorg.prod.agg_api" ]
  }
}

לאחר מכן, כדי להעלות את הנתונים ל-Apigee ממחשב עם גישה לאינטרנט, השתמש בפקודה cURL הבאה:

curl -X POST -H 'Content-Type:application/json' \
-u apigee_analytics_client_id:apigee_analytics_secret \
https://nucleus-api-prod.apigee.com/v1/apigee-analytics-cli-api/traffic/orgs/{org_name}/apis -d '{"environments"...}'

איפה:

  • apigee_analytics_client_id:apigee_analytics_secret כדי לציין את פרטי הכניסה שלך לצורך העלאת נתונים ל-Apigee שקיבלת מהתמיכה של Apigee.
  • {org_name} מציין את הארגון.
  • {"environments"...} מכיל את התוצאות של פקודת ה-cURL שבה השתמשתם כדי לאסוף נתונים סטטיסטיים למעלה.