במסמך הזה מוסבר איך ליצור מדדים מוגדרים על ידי המשתמש ואיך לכתוב את נתוני המדדים האלה באמצעות Cloud Monitoring API. מדדים שהוגדרו על ידי המשתמש משתמשים באותם רכיבים שבהם משתמשים המדדים המובנים של Cloud Monitoring:
- קבוצה של נקודות נתונים.
- מידע על סוג המדד, שמסביר מה מייצגות הנקודות על הגרף.
- מידע על משאבים במעקב, שמאפשר לדעת מה המקור של נקודות הנתונים.
אפשר להשתמש במדדים שהוגדרו על ידי המשתמש, שלפעמים נקראים מדדים מותאמים אישית, באותו אופן שבו משתמשים במדדים מובנים. כלומר, אפשר ליצור תרשימים והתראות לגבי נתוני המדדים האלה.
מדדים מבוססי-יומן הם סוג של מדדים שמוגדרים על ידי המשתמש, אבל אי אפשר ליצור אותם באמצעות Cloud Monitoring API. מדדים מבוססי-יומן גוזרים נתוני מדדים מיומני רישום, אבל Monitoring API לא מספק דרך לציין איך לחלץ נתוני מדדים מיומני רישום. במקום זאת, צריך להשתמש ב-Cloud Logging כדי ליצור מדדים מבוססי-יומן. כשיוצרים מדד מבוסס-יומן, שירות Logging יוצר את המבנים שמתוארים במסמך הזה ושולח את נתוני המדד אל Cloud Monitoring. מידע על יצירת מדדים מבוססי-יומן זמין במאמרים הבאים:
כדי להוסיף לאפליקציה כלי מדידה, מומלץ להשתמש במסגרת מדידה ניטרלית ובעלת קוד פתוח, כמו OpenTelemetry, במקום בממשקי API או בספריות לקוח ספציפיים לספקים ולמוצרים. מידע על המסגרות האלה זמין במאמרים בנושא מדידה ויכולת צפייה ובחירת גישה למדידה.
לפני שמתחילים
כדי לקבל מידע על המבנים שמהווים בסיס לכל המדדים, אפשר לעיין במאמר מדדים, סדרות זמנים ומשאבים.
כדי להשתמש ב-Cloud Monitoring, צריך ליצור Google Cloud פרויקט עם חיוב מופעל. כשצריך, מבצעים את הפעולות הבאות:
-
בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project (בחירת פרויקט): כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שהוקצה לכם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
- מוודאים ש-Monitoring API מופעל. פרטים נוספים זמינים במאמר בנושא הפעלת Monitoring API.
- באפליקציות שפועלות מחוץ ל- Google Cloud, צריך לאמת את האפליקציה באמצעות Application Default Credentials (ADC) מקומיים. Google Cloud למידע נוסף אפשר לעיין במאמר הגדרת ADC לספק שירותי ענן מקומי או אחר.
יצירת סוג מדד מוגדר על ידי המשתמש
כדי ליצור מדד שהמשתמש מגדיר, מגדירים אובייקט MetricDescriptor שמציין מידע שונה על המדד, או כותבים נתוני מדד. כשכותבים נתוני מדדים, Monitoring יוצר בשבילכם את תיאור המדד על סמך מבנה הנתונים שאתם מספקים.
מידע על עיצוב של מתאר מדד זמין במאמר מתארי מדדים למדדים שהוגדרו על ידי המשתמש.
יצירה אוטומטית של מתארי מדדים
אם אתם כותבים נתוני מדדים כשעדיין לא קיים מתאר מדד למדד שהוגדר על ידי המשתמש, מתאר מדד נוצר באופן אוטומטי. עם זאת, יכול להיות שתיאור המדד החדש לא יהיה בדיוק מה שרציתם, כי יצירה אוטומטית של תיאורי מדדים כוללת כמה הנחות וערכי ברירת מחדל.
Cloud Monitoring יוצר MetricDescriptor חדש כשמתבצעת הפניה לאובייקט Metric שכולל שם של סוג מדד שלא קיים באובייקט TimeSeries שכלול בקריאה ל-timeSeries.create.
Cloud Monitoring משתמש בכללים הבאים כדי לאכלס את MetricDescriptor:
-
type: הסוג מועתק מהשדהtypeשל אובייקטMetric. -
name: השם נוצר ממזהה הפרויקט בהפעלת method ומערךtypeבאובייקטMetric. -
labels: התוויות שמופיעות באובייקטMetric. כל תיאור של תווית במדד החדש כולל את השדות הבאים:-
key: מפתח התווית באובייקטMetric. valueType:STRING-
description: לא מוגדר
-
-
metricKind: סוג המדד מוגדר כ-GAUGEאלא אם מציינים את הפרמטרmetricKindשל אובייקטTimeSeries. כשמציינים אתmetricKind, המדד החדש מקבל את הסוג הזה. אפשר לציין רק את הסוגיםGAUGEו-CUMULATIVE. -
valueType: סוג הערך נלקח מהערך המוקלד שלPointשנכתב. סוג הערך חייב להיותBOOL,INT64,DOUBLEאוDISTRIBUTION. כשמציינים סוג ערך בשדהvalueTypeשלTimeSeries, הסוג הזה צריך להיות זהה לסוג שלPoint. -
unit: לא מוגדר description:"Auto created custom metric.".-
displayName: לא מוגדר
בקריאה אחת של timeSeries.create, אפשר לכלול כמה אובייקטים של TimeSeries שמתייחסים לאותו סוג מדד שלא קיים. במקרה כזה, התוויות בתיאור המדד החדש הן איחוד של כל התוויות באובייקטים Metric בכל סדרות הזמן בקריאה הזו אל create.
השלב הבא: קוראים את המאמר כתיבת מדדים מוגדרים על ידי המשתמש.
יצירה ידנית של מתארי מדדים
כדי ליצור מתאר מדד:
קובעים את המבנה של מתאר המדד. כדי לקבל עזרה בבחירת המדדים, אתם יכולים לעיין במדדים המובנים ולבדוק את נתוני ציר הזמן שלהם:
בוחרים שם מדד למדד שהוגדר על ידי המשתמש.
בוחרים שם לתצוגה ותיאור למדד. השם המוצג משמש במסוף Google Cloud .
בוחרים פרויקט או פרויקטים שבהם רוצים להגדיר את המדד המוגדר על ידי המשתמש ולכתוב את נתוני הסדרות העיתיות שלו. אם אתם צריכים את אותו מדד בכמה פרויקטים, אתם צריכים ליצור הגדרות זהות של המדד בכל פרויקט.
קובעים את הסוג, סוג הערך (value type) והיחידות (אופציונלי) של המדד. לא כל סוגי הערכים וסוגי המדדים נתמכים במדדים מוגדרים על ידי המשתמש. מידע נוסף על השדות האלה זמין במאמר בנושא סוגי ערכים וסוגי מדדים.
בוחרים את התוויות של המדד – השמות, סוגי הערכים והתיאורים שלהן.
קובעים את המשאבים במעקב שביחס אליהם נכתבים נתוני המדדים. בוחרים מתוך הרשימה הבאה:
-
aws_ec2_instance: מופע Amazon EC2. -
dataflow_job: משימת Dataflow. -
gae_instance: מופע של App Engine. -
gce_instance: מכונה של Compute Engine. -
generic_node: צומת מחשוב שצוין על ידי המשתמש. -
generic_task: משימה בהגדרת המשתמש. -
gke_container: מופע של קונטיינר GKE. -
global: משתמשים במשאב הזה כשאין סוג משאב אחר שמתאים. ברוב תרחישי השימוש,generic_nodeאוgeneric_taskהם אפשרויות טובות יותר מ-global. -
k8s_cluster: אשכול Kubernetes. -
k8s_container: קונטיינר Kubernetes. -
k8s_node: צומת Kubernetes. -
k8s_pod: פוד של Kubernetes.
-
יוצרים אובייקט
MetricDescriptorומעבירים אותו כארגומנט לקריאה ל-methodmetricDescriptors.create.
בדרך כלל, קריאה ל-metricDescriptors.create באמצעות אותו שם סוג כמו של תיאור מדד קיים היא שגיאה. עם זאת, אם כל השדות של אובייקט MetricDescriptor החדש זהים בדיוק לשדות של המתאר הקיים, זו לא שגיאה אבל אין לזה השפעה.
בדוגמה הבאה יוצרים מדד מסוג gauge.
פרוטוקול
כדי ליצור מתאר מדד, משתמשים בשיטה metricDescriptors.create.
אפשר להריץ את ה-method הזה באמצעות הווידג'ט של APIs Explorer בדף ההפניה של ה-method. מידע נוסף זמין במאמר בנושא APIs Explorer.
אלה פרמטרים לדוגמה של metricDescriptors.create:
- name (כתובת URL):
projects/[PROJECT_ID] גוף הבקשה: צריך לספק אובייקט
MetricDescriptorכמו זה שבהמשך:{ "name": "", "description": "Daily sales records from all branch stores.", "displayName": "Sales", "type": "custom.googleapis.com/stores/sales", "metricKind": "GAUGE", "valueType": "DOUBLE", "unit": "{USD}", "labels": [ { "key": "store_id", "valueType": "STRING", "description": "The ID of the store." }, ], }
מזינים את הערכים האלה בשדות בווידג'ט, ומזינים את מזהה הפרויקט במקום [PROJECT_ID]:
לוחצים על הלחצן Execute (ביצוע) כדי להריץ את השיטה.
כשיוצרים מדד חדש, המערכת מתעלמת מהשדה name ב-MetricDescriptor, ואפשר להשמיט אותו. השיטה create מחזירה את מתאר המדד החדש עם השדה name שמולא. בדוגמה הזו, זה יהיה:
"name": "projects/[PROJECT_ID]/metricDescriptors/custom.googleapis.com/stores/daily_sales"
לדוגמה, אם רוצים לקבל את התיאור של מדד, משתמשים בשם הזה.
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. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
אם נתקלתם בבעיות, אפשר לעיין במאמר בנושא פתרון בעיות בקריאות ל-API.
השלב הבא: קוראים את המאמר כתיבת מדדים מוגדרים על ידי המשתמש.
כתיבת מדדים שהוגדרו על ידי המשתמש
אפשר לכתוב נתונים רק לסוגי מדדים של מדדים שהוגדרו על ידי המשתמש. כדי לכתוב את הנתונים, משתמשים בשיטה timeSeries.create.
אם סדרת הזמן קיימת, השיטה הזו מוסיפה נקודה על הגרף חדשה לסדרת הזמן הקיימת. אם סדרת הזמן לא קיימת, השיטה הזו יוצרת אותה ומצרפת את הנתונים.
כדי לכתוב נקודות נתונים, מעבירים רשימה של אובייקטים מסוג TimeSeries אל timeSeries.create.
הגודל המקסימלי של הרשימה הוא 200, וכל אובייקט ברשימה חייב לציין סדרת זמן שונה:
- הערכים בשדות
metricו-resourceמזהים אובייקטTimeSeriesספציפי. השדות האלה מייצגים את סוג המדד של הנתונים ואת המשאב המפוקח שממנו נאספו הנתונים. - לא כוללים את השדות
metricKindו-valueType. המערכת מתעלמת מהם כשכותבים נקודות נתונים. כל אובייקט
TimeSeriesחייב להכיל רק אובייקטPointאחד:- הערך של הנקודה ומרווח הזמן צריכים להיות תואמים להגדרה של סוג המדד. מידע על מרווחי זמן לסוגים שונים של מדדים זמין במאמר
TimeInterval. - מרווח הזמן של הנקודה צריך להיות מאוחר יותר מכל נקודה שכבר נמצאת בסדרת הזמן.
- שעת הסיום של המרווח לא יכולה להיות יותר מ-25 שעות בעבר או יותר מחמש דקות בעתיד.
- הערך של הנקודה ומרווח הזמן צריכים להיות תואמים להגדרה של סוג המדד. מידע על מרווחי זמן לסוגים שונים של מדדים זמין במאמר
כדי לכתוב יותר מנקודה אחת לאותה סדרת זמן, צריך להשתמש בקריאה נפרדת לשיטה
timeSeries.createלכל נקודה. אל תכתבו נתונים לסדרת זמן יחידה בקצב מהיר יותר מנקודה אחת כל 5 שניות. כשמוסיפים נקודות נתונים לסדרות זמן שונות, אין הגבלת קצב.
פרוטוקול
כדי לכתוב נתוני מדדים, משתמשים בשיטה timeSeries.create.
אפשר להריץ את ה-method הזה באמצעות הווידג'ט של APIs Explorer בדף ההפניה של ה-method. מידע נוסף זמין ב-APIs Explorer.
כדי לכתוב נקודה למדד stores/daily_sales שנוצר ביצירה ידנית של מתארי מדדים:
- עוברים אל דף העזר בנושא
timeSeries.create. - מזינים את הפרמטרים הבאים בווידג'ט של APIs Explorer.
- לוחצים על הלחצן Execute.
אפשר להשתמש בפרמטרים לדוגמה הבאים:
- name:
projects/[PROJECT_ID] גוף הבקשה: כולל רשימה של אובייקטים
TimeSeries. בדוגמה הבאה יש רק סדרת זמן אחת ברשימה.{ "timeSeries": [ { "metric": { "type": "custom.googleapis.com/my_metric", "labels": { "my_label": "my_value" } }, "resource": { "type": "gce_instance", "labels": { "project_id": "[PROJECT_ID]", "instance_id": "1234567890123456789", "zone": "us-central1-f" } }, "points": [ { "interval": { "endTime": "2018-06-01T10:00:00-04:00" }, "value": { "doubleValue": 123.45 } } ] } ] }
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. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
אם נתקלתם בבעיות, אפשר לעיין במאמר בנושא פתרון בעיות בקריאות ל-API.
מחיקה של מדדים שהוגדרו על ידי המשתמש
כדי למחוק מדד בהגדרת המשתמש, צריך למחוק את תיאור המדד שלו. אי אפשר למחוק את נתוני הסדרות העיתיות שמאוחסנים ב Google Cloud פרויקט, אבל אם מוחקים את תיאור המדד, אי אפשר לגשת לנתונים. הנתונים יפוגו ויימחקו בהתאם למדיניות שמירת הנתונים.
אי אפשר למחוק את תיאור המדד של מדד מובנה.
כדי למחוק את תיאור המדד, צריך לבצע קריאה ל-method metricDescriptors.delete.
פרוטוקול
כדי למחוק תיאור מדד, משתמשים בשיטה metricDescriptors.delete.
אפשר להריץ את ה-method הזה באמצעות הווידג'ט של APIs Explorer בדף ההפניה של ה-method. מידע נוסף זמין ב-APIs Explorer.
כדי למחוק את המדד stores/daily_sales שנוצר בקטע יצירה ידנית של תיאורי מדדים:
- עוברים אל דף העזר בנושא
metricDescriptors.delete: מזינים את השם של מתאר המדד בווידג'ט של API Explorer:
name:
projects/[PROJECT_ID]/metricDescriptors/custom.googleapis.com/stores/daily_salesלוחצים על הלחצן Execute.
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. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
אם נתקלתם בבעיות, אפשר לעיין במאמר בנושא פתרון בעיות בקריאות ל-API.
שינוי של מדד שהוגדר על ידי המשתמש
כדי לשנות מדד שהוגדר על ידי המשתמש, צריך לעדכן את האובייקט MetricDescriptor שמגדיר את המדד.
השינוי הנתמך היחיד הוא הוספת תוויות.
כדי להוסיף תוויות למדד קיים שהוגדר על ידי המשתמש, משתמשים בשיטה timeSeries.create וכוללים את התוויות החדשות בנתוני הסדרות העיתיות. התוויות מתווספות לתיאור המדד אם התוויות שניסיתם לכתוב תקינות ומספר התוויות הכולל קטן מ-30.
אחר כך נתוני הסדרה העיתית נכתבים כאילו התווית הייתה שם מההתחלה.
אם רוצים לעשות יותר מאשר להוסיף תוויות חדשות, צריך למחוק את תיאור המדד וליצור אותו מחדש. במקרה כזה, כל נתוני הסדרות העיתיות שנאספו בעבר עבור תיאור המדד הישן יאבדו. מידע נוסף זמין במאמר בנושא מחיקת מדדים שהוגדרו על ידי המשתמש.
אי אפשר לשנות את השם של מדד.