במאמר הזה מוסבר איך לקרוא נתוני מדדים, שנקראים גם נתונים של סדרות זמן, באמצעות השיטה timeSeries.list ב-Monitoring API.
יש כמה דרכים לקרוא לשיטה timeSeries.list:
- אתם יכולים להשתמש בכרטיסיות Protocol בדף הזה כדי להשתמש ב-APIs Explorer מבוסס-טפסים.
- אפשר להשתמש בספריית לקוח ספציפית לשפה.
- אפשר להשתמש ב-Metrics Explorer.
דרך נוספת לקרוא את נתוני המדדים היא לשלוח פקודה ל-method timeSeries.query, שנדרשת בה שפת שאילתת מעקב (MQL). במסמך הזה לא מתוארים MQL או השיטה timeSeries.query. מידע על הנושאים האלה זמין במאמר אחזור נתונים באמצעות timeSeries.query.
סקירה כללית
כל קריאה לשיטה timeSeries.list יכולה להחזיר כל מספר של סדרות זמן מסוג מדד יחיד. לדוגמה, אם אתם משתמשים ב-Compute Engine, למדד compute.googleapis.com/instance/cpu/usage_time יש סדרת זמן נפרדת לכל אחד מהמופעים של המכונות הווירטואליות.
במאמר מדדים, סדרות זמנים ומשאבים מופיע מבוא למדדים ולסדרות זמנים.
כדי לציין את נתוני הסדרות העיתיות שרוצים, צריך לספק את הפרטים הבאים לשיטה timeSeries.list:
- ביטוי מסנן שמציין את סוג המדד. אפשר גם להשתמש במסנן כדי לבחור קבוצת משנה של סדרת הזמן של המדד על ידי ציון המשאבים שמפיקים את סדרת הזמן או על ידי ציון ערכים לתוויות מסוימות בסדרת הזמן.
- מרווח זמן שמגביל את כמות הנתונים שמוחזרת.
- אפשרות נוספת: ציון של אופן השילוב של כמה סדרות זמן כדי ליצור סיכום מצטבר של הנתונים. מידע נוסף ודוגמאות מופיעים במאמר בנושא צבירת נתונים.
מסננים של נתונים כרונולוגיים
כדי לציין אילו סדרות זמנים לאחזר, מעבירים מסנן סדרות זמנים לשיטה timeSeries.list.
הרשימה הבאה מפרטת את רכיבי המסנן הנפוצים:
המסנן חייב לציין סוג מדד יחיד. לדוגמה:
metric.type = "compute.googleapis.com/instance/cpu/usage_time"כדי לאחזר מדדים שהוגדרו על ידי המשתמש, צריך לשנות את הקידומת metric.type במסנן ל-
custom.googleapis.comאו לקידומת אחרת אם נעשה בה שימוש.external.googleapis.comהיא קידומת נפוצה.במסנן אפשר לציין ערכים לתוויות המאפיינים של המדד. סוג המדד קובע אילו תוויות מוצגות. לדוגמה:
(metric.label.instance_name = "your-instance-id" OR metric.label.instance_name = "your-other-instance-id")בביטוי הקודם,
labelהוא הערך הנכון למרות שאובייקט המדד בפועל משתמש ב-labelsכמפתח שלו.המסנן יכול לבחור רק את סדרות הזמן שמכילות סוג ספציפי של משאב שנמצא במעקב:
resource.type = "gce_instance"
אפשר לשלב את רכיבי המסנן במסנן יחיד של סדרת זמן, כמו בדוגמה הבאה:
metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND
(metric.label.instance_name = "your-instance-id" OR
metric.label.instance_name = "your-other-instance-id")
אם לא מציינים ערכים לכל תוויות המדדים, השיטה list מחזירה סדרת זמנים לכל שילוב של ערכים בתוויות שלא צוינו. השיטה מחזירה רק סדרות זמן שיש בהן נתונים.
מרווחי זמן
כשמשתמשים ב-API כדי לקרוא נתונים, צריך לציין את מרווח הזמן שרוצים לאחזר עבורו נתונים על ידי הגדרת שעת התחלה ושעת סיום.
ה-API מאחזר נתונים מהמרווח (start, end], כלומר, מהזמן שאחרי שעת ההתחלה ועד שעת הסיום.
שעת ההתחלה לא יכולה להיות מאוחרת משעת הסיום. אם מציינים שעת התחלה שמאוחרת משעת הסיום, ה-API מחזיר שגיאה.
אם רוצים לאחזר רק נתונים עם חותמת זמן ספציפית, צריך להגדיר את שעת ההתחלה כשווה לשעת הסיום, או לחלופין לא להגדיר את שעת ההתחלה.
פורמט השעה
צריך לציין את זמני ההתחלה והסיום כמחרוזות בפורמט RFC 3339. לדוגמה:
2024-03-01T12:34:56+04:00 2024-03-01T12:34:56.992Z
הפקודה date -Iseconds ב-Linux שימושית ליצירת חותמות זמן.
פעולות בסיסיות ברשימה
אפשר להשתמש בשיטה timeSeries.list כדי להחזיר נתונים גולמיים פשוטים, או כדי להחזיר נתונים שעברו עיבוד מורכב. בקטע הזה מוסבר איך מציגים את סדרות הזמן הזמינות ואיך מקבלים את הערכים בסדרת זמן ספציפית.
דוגמה: הצגת סדרות זמנים זמינות
בדוגמה הזו מוצגות רק השמות והתיאורים של סדרות הזמן שתואמות למסנן, במקום להחזיר את כל הנתונים הזמינים:
פרוטוקול
פותחים את דף העזר של
timeSeries.list.בחלונית עם התווית Try this method (אפשר לנסות את השיטה הזו), מזינים את הפרטים הבאים:
-
name: מזינים את הנתיב לפרויקט.
projects/PROJECT_ID -
filter: מציינים את סוג המדד.
metric.type = "compute.googleapis.com/instance/cpu/utilization" - interval.endTime: מזינים את שעת הסיום.
- interval.startTime: מזינים את שעת ההתחלה ומוודאים שהיא מוקדמת ב-20 דקות משעת הסיום.
לוחצים על הצגת פרמטרים רגילים, ובשדות מזינים את הפרטים הבאים:
timeSeries.metric
-
name: מזינים את הנתיב לפרויקט.
לוחצים על Execute.
פלט הדוגמה מציג סדרות זמן של שתי מכונות VM שונות:
{
"timeSeries": [
{
"metric": {
"labels": {
"instance_name": "your-first-instance"
},
"type": "compute.googleapis.com/instance/cpu/utilization"
},
},
{
"metric": {
"labels": {
"instance_name": "your-second-instance"
},
"type": "compute.googleapis.com/instance/cpu/utilization"
},
}
]
}
כדי לראות את הבקשה כפקודת curl, כבקשת HTTP או ב-JavaScript, לוחצים על fullscreen מסך מלא ב-APIs Explorer.
C#
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
אם נתקלתם בבעיות, תוכלו להיעזר במאמר פתרון בעיות ב-Monitoring API.
דוגמה: קבלת נתונים של סדרות עיתיות
בדוגמה הזו מוחזרים נתוני השימוש במעבד שתועדו במרווח של 20 דקות במכונה ספציפית של Compute Engine. כמות הנתונים שמוחזרת תלויה בשיעור הדגימה של המדד. מכיוון שהמערכת דוגמת את השימוש במעבד כל דקה, התוצאות של השאילתה הזו הן כ-20 נקודות נתונים. כשמוחזרות כמה נקודות נתונים עבור סדרת זמן, ה-API מחזיר את נקודות הנתונים בכל סדרת זמן בסדר זמן הפוך. אי אפשר לשנות את סדר הנקודות הזה.
פרוטוקול
דוגמת הפרוטוקול מגבילה עוד יותר את הפלט, כדי שהנתונים שמוחזרים יהיו קלים יותר לניהול בתיבת התגובה:
- הערך של filter מגביל את סדרת הזמן למכונת VM אחת.
- הערך של fields מציין רק את השעה והערך של המדידות.
ההגדרות האלה מגבילות את כמות הנתונים של סדרות הזמן שמוחזרות בתוצאה.
פותחים את דף העזר של
timeSeries.list.בחלונית עם התווית Try this method (אפשר לנסות את השיטה הזו), מזינים את הפרטים הבאים:
-
name: מזינים את הנתיב לפרויקט.
projects/PROJECT_ID filter: מציינים את סוג המדד.
metric.type = "compute.googleapis.com/instance/cpu/utilization" AND metric.label.instance_name = "INSTANCE_NAME"interval.endTime: מזינים את שעת הסיום.
interval.startTime: מזינים את שעת ההתחלה ומוודאים שהיא מוקדמת ב-20 דקות משעת הסיום.
לוחצים על הצגת פרמטרים רגילים, ובשדות מזינים את הפרטים הבאים:
timeSeries.points.interval.endTime,timeSeries.points.value
-
name: מזינים את הנתיב לפרויקט.
לוחצים על Execute.
הבקשה מחזירה תוצאה כמו בדוגמה הבאה:
{
"timeSeries": [
{
"points": [
{
"interval": {
"endTime": "2024-03-01T00:19:01Z"
},
"value": {
"doubleValue": 0.06763074536575005
}
},
{
"interval": {
"endTime": "2024-03-01T00:18:01Z"
},
"value": {
"doubleValue": 0.06886174467702706
}
},
...
{
"interval": {
"endTime": "2024-03-01T00:17:01Z"
},
"value": {
"doubleValue": 0.06929610064253211
}
}
]
}
]
}
כדי לראות את הבקשה כפקודת curl, כבקשת HTTP או ב-JavaScript, לוחצים על fullscreen מסך מלא ב-APIs Explorer.
C#
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
אם נתקלתם בבעיות, תוכלו להיעזר במאמר פתרון בעיות ב-Monitoring API.
צבירת נתונים
שיטת timeSeries.list
יכולה לבצע צבירות סטטיסטיות וצמצומים בנתוני סדרת הזמן שמוחזרים. בקטעים הבאים מוצגות שתי דוגמאות.
מידע נוסף על סינון וצבירה: שינוי של סדרות זמן
דוגמה: יישור של סדרות זמן
בדוגמה הזו, 20 מדידות השימוש הנפרדות בכל סדרת זמן מצטמצמות ל-2 מדידות: השימוש הממוצע בשני פרקי הזמן של 10 דקות בתוך פרק הזמן של 20 דקות. הנתונים מכל סדרת זמן מיושרים קודם לתקופות של 10 דקות, ואז מחושב ממוצע של הערכים בכל תקופה של 10 דקות.
לפעולת ההתאמה יש שני יתרונות: היא מחליקה את הנתונים ומתאימה את הנתונים מכל נתוני הסדרות העיתיות לגבולות מדויקים של 10 דקות. לאחר מכן אפשר לעבד את הנתונים המתאימים.
פרוטוקול
פותחים את דף העזר של
timeSeries.list.בחלונית עם התווית Try this method (אפשר לנסות את השיטה הזו), מזינים את הפרטים הבאים:
-
name: מזינים את הנתיב לפרויקט.
projects/PROJECT_ID -
aggregation.alignmentPeriod: מזינים
600s -
aggregation.perSeriesAligner: בוחרים באפשרות
ALIGN_MEAN -
filter: מציינים את סוג המדד.
metric.type = "compute.googleapis.com/instance/cpu/utilization" - interval.endTime: מזינים את שעת הסיום.
- interval.startTime: מזינים את שעת ההתחלה ומוודאים שהיא מוקדמת ב-20 דקות משעת הסיום.
-
לוחצים על הצגת פרמטרים רגילים, ובשדות מזינים את הפרטים הבאים:
timeSeries.metric,timeSeries.points
-
name: מזינים את הנתיב לפרויקט.
לוחצים על Execute.
המסנן של מופע יחיד שמוצג בדוגמה הקודמת הוסר: השאילתה הזו מחזירה הרבה פחות נתונים, ולכן אין צורך להגביל אותה למופע אחד של מכונה וירטואלית.
בתוצאה לדוגמה הבאה יש סדרת זמנים לכל אחת משלוש מכונות וירטואליות. לכל סדרת זמנים יש שתי נקודות נתונים, הממוצע של השימוש בתקופות ההתאמה של 10 דקות:
{
"timeSeries": [
{
"metric": {
"labels": {"instance_name": "your-first-instance"},
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": { "doubleValue": 0.06688481346044381 }
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": {"doubleValue": 0.06786652821310177 }
}
]
},
{
"metric": {
"labels": { "instance_name": "your-second-instance" },
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": { "doubleValue": 0.04144239874207415 }
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": { "doubleValue": 0.04045793689050091 }
}
]
},
{
"metric": {
"labels": { "instance_name": "your-third-instance" },
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": { "doubleValue": 0.029650046587339607 }
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": { "doubleValue": 0.03053874224715402 }
}
]
}
]
}
כדי לראות את הבקשה כפקודת curl, כבקשת HTTP או ב-JavaScript, לוחצים על fullscreen מסך מלא ב-APIs Explorer.
C#
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
אם נתקלתם בבעיות, תוכלו להיעזר במאמר פתרון בעיות ב-Monitoring API.
דוגמה: צמצום בסדרות זמן
בדוגמה הזו אנחנו מרחיבים את הדוגמה הקודמת ומשלבים את סדרות הזמנים המיושרות משלושת המכונות הווירטואליות לסדרת זמן אחת שמודדת את ממוצע השימוש בכל המכונות.
פרוטוקול
פותחים את דף העזר של
timeSeries.list.בחלונית עם התווית Try this method (אפשר לנסות את השיטה הזו), מזינים את הפרטים הבאים:
-
name: מזינים את הנתיב לפרויקט.
projects/PROJECT_ID -
aggregation.alignmentPeriod: מזינים
600s -
aggregation.perSeriesAligner: בוחרים באפשרות
ALIGN_MEAN -
aggregation.crossSeriesReducer: בוחרים באפשרות
REDUCE_MEAN -
filter: מציינים את סוג המדד.
metric.type = "compute.googleapis.com/instance/cpu/utilization" - interval.endTime: מזינים את שעת הסיום.
- interval.startTime: מזינים את שעת ההתחלה ומוודאים שהיא מוקדמת ב-20 דקות משעת הסיום.
-
לוחצים על הצגת פרמטרים רגילים, ובשדות מזינים את הפרטים הבאים:
timeSeries.metric,timeSeries.points
-
name: מזינים את הנתיב לפרויקט.
לוחצים על Execute.
תוצאת הדגימה הבאה כוללת רק סדרת זמן אחת ושתי נקודות נתונים. כל נקודה היא הממוצע של השימוש בשלוש המכונות הווירטואליות במהלך התקופה:
{
"timeSeries": [
{
"metric": {
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": {
"doubleValue": 0.045992419596619184
}
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": {
"doubleValue": 0.04628773578358556
}
}
]
}
]
}
כדי לראות את הבקשה כפקודת curl, כבקשת HTTP או ב-JavaScript, לוחצים על fullscreen מסך מלא ב-APIs Explorer.
C#
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
כדי לבצע אימות ב-Monitoring, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
אם נתקלתם בבעיות, תוכלו להיעזר במאמר פתרון בעיות ב-Monitoring API.