במאמר הזה מוסבר איך ליצור לוחות בקרה בהתאמה אישית ולנהל אותם ואת הווידג'טים שמופיעים בהם באמצעות המשאב Dashboard ב-Cloud Monitoring API.
בדוגמאות שבהמשך מוסבר איך לנהל את לוחות הבקרה באמצעות curl כדי להפעיל את ה-API, ואיך להשתמש ב-Google Cloud CLI.
אפשר גם לנהל את לוחות הבקרה המותאמים אישית דרךGoogle Cloud המסוף, אבל ה-API מספק דרך פרוגרמטית לנהל הרבה לוחות בקרה בו-זמנית.
נקודת הקצה תומכת בשיטות הבאות לניהול ולהגדרה של מרכזי בקרה:
-
dashboards.create: יצירת מרכז שליטה -
dashboards.delete: מחיקת מרכז בקרה ספציפי -
dashboards.list: אחזור רשימה של כל לוחות הבקרה בפרויקט נתון -
dashboards.get: אחזור של מרכז בקרה שצוין -
dashboards.patch: מעדכן את המבנה של מרכז בקרה שצוין
אפשר להפעיל את ה-API ישירות באמצעות כלי השירות curl או באמצעות Google Cloud CLI.
אי אפשר לאחזר, לערוך או למחוק לוחות בקרה מוגדרים מראש.
התכונה הזו נתמכת רק בפרויקטים של Google Cloud . בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
מידע על לוחות בקרה
כשיוצרים לוח בקרה, צריך לציין אילו רכיבים, או ווידג'טים, רוצים להציג, ומה פריסת הווידג'טים. אפשר גם להוסיף תוויות ומסננים למרכז הבקרה. תוויות יכולות לעזור לכם למצוא מרכז בקרה או לציין את סוג התוכן במרכז הבקרה.
פריסות של לוחות בקרה
פריסות מגדירות את הסדר של הרכיבים במרכז הבקרה. ה-API מספק את הפריסות הבאות:
GridLayout: מחלק את השטח הזמין לעמודות אנכיות ברוחב שווה ומסדר קבוצה של ווידג'טים לפי אסטרטגיה של שורה ראשונה.
MosaicLayout: מחלק את השטח הזמין לרשת. כל ווידג'ט יכול לתפוס משבצת אחת או יותר ברשת.
RowLayout: מחלק את השטח הזמין לשורות ומסדר קבוצה של ווידג'טים לרוחב בכל שורה.
ColumnLayout: מחלק את השטח הזמין לעמודות אנכיות ומסדר קבוצה של ווידג'טים בצורה אנכית בכל עמודה.
לדוגמה, הקטע הבא מציג את ייצוג ה-JSON של לוח בקרה ב-RowLayout עם שלושה ווידג'טים של Text:
{
"displayName": "Row-layout example",
"rowLayout": {
"rows": [
{
"widgets": [
{
"text": {
"content": "Text Widget 1",
"format": "RAW"
}
},
{
"text": {
"content": "**Text Widget 2**",
"format": "MARKDOWN"
}
},
{
"text": {
"content": "_Text Widget 3_",
"format": "MARKDOWN"
}
}
]
}
]
}
}
ווידג'טים של מרכז הבקרה
ווידג'ט מכיל רכיב אחד של מרכז בקרה ואת התצורה של אופן הצגת הרכיב במרכז הבקרה. בלוח בקרה יכולים להיות כמה ווידג'טים. יש כמה סוגים של אובייקטים של Widget:
בווידג'ט
XyChartמוצגים נתונים על ציר ה-X וציר ה-Y.בווידג'ט הזה מוצג מערך נתונים שיכול להיות נתונים של סדרת זמן או נתונים שנוצרו על ידי שאילתת SQL. בעזרת הווידג'ט הזה אפשר לשייך את הנתונים בתרשים לציר ה-Y השמאלי או הימני. כשמציגים בתרשים כמה סוגים של מדדים, אפשר להשתמש בשני צירי ה-Y. בווידג'ט
XyChartיש תמיכה בסגנונות התצוגה הבאים:- תרשימי קו
- תרשימי עמודות
- תרשימי שטח משולבים
- מפות חום
ווידג'טים שמציגים נתונים ממאפיין אחד, כמו הערך האחרון:
PieChart: מוצגים הערכים האחרונים של אוסף של סדרות זמן, כאשר כל סדרת זמן תורמת פרוסה אחת לתרשים העוגה.
Scorecard: מציג את הערך האחרון של סדרת זמן אחת, ואת הקשר בין הערך הזה לבין סף אחד או יותר.
TimeSeriesTable: מוצג הערך האחרון או ערך מצטבר של כל סדרת זמן. הטבלאות תומכות בהתאמה אישית. לדוגמה, אפשר להגדיר צבעים לתאים, שמות לעמודות ויישור לנתונים.
ווידג'טים שמציגים מידע על מדיניות התראות או על אירועים:
AlertChart: מציג סיכום של מדיניות התראות עם תנאי אחד. בווידג'ט הזה מוצגים הנתונים בתרשים קווי, מוצג סף ההתראה ומפורט מספר האירועים הפתוחים.
IncidentList: הצגת רשימה של אירועים. אפשר להגדיר את הווידג'ט כך שיוצגו בו אירועים שקשורים למדיניות ספציפית של התראות או לסוגים ספציפיים של משאבים.
ווידג'טים שמציגים רשומות ביומן ושגיאות:
ErrorReportingPanel: מוצגות קבוצות שגיאות שמאוחסנות בפרויקטGoogle Cloud שנבחר.
LogsPanel: הצגה של רשומות ביומן ברמת הפרויקט שמאוחסנות בפרויקט הנוכחי Google Cloud . אתם יכולים להגדיר את הווידג'ט כך שיוצגו בו רשומות ביומן שנשמרו ב Google Cloud פרויקטים שאפשר לגשת אליהם דרך היקף המדדים הנוכחי.
ווידג'טים של טקסט וארגון:
CollapsibleGroup: הצגת אוסף של ווידג'טים. אפשר לכווץ את התצוגה של קבוצה.
SingleViewGroup: הצגת ווידג'ט אחד באוסף של ווידג'טים. אתם יכולים לבחור איזה ווידג'ט יוצג.
SectionHeader: יוצר קו הפרדה אופקי במרכז הבקרה, ויוצר רשומה בתוכן העניינים של מרכז הבקרה.
Text: הצגת תוכן טקסטואלי, כטקסט חופשי או כמחרוזת Markdown.
כדי לכלול את ווידג'ט הטקסט והארגון במרכז בקרה, צריך שיהיה במרכז הבקרה
MosaicLayout.
בנוסף לאובייקטים האלה, אפשר גם להוסיף ללוח בקרה placeholder ריק.
לדוגמה, הקטע הבא מציג את ייצוג ה-JSON של ווידג'ט XyChart שהוגדר לו ציר Y ימני:
{
"displayName": "Demo dashboard",
"gridLayout": {
"widgets": [
{
"title": "Sample line chart",
"xyChart": {
"dataSets": [
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\"",
"aggregation": {
"perSeriesAligner": "ALIGN_MEAN",
"crossSeriesReducer": "REDUCE_MAX",
"groupByFields": [
"resource.label.zone"
]
}
},
"unitOverride": "1"
},
"plotType": "LINE"
}
],
"timeshiftDuration": "0s",
"yAxis": {
"label": "y1Axis",
"scale": "LINEAR"
},
"chartOptions": {
"mode": "COLOR"
}
}
}
]
}
}
תוויות בלוח הבקרה
תוויות יכולות לעזור לכם לנהל ולארגן את לוחות הבקרה. לדוגמה, אפשר להוסיף תווית בשם prod כדי לציין שהלוח מציג נתונים של סדרות זמן ונתוני יומנים של משאבי הייצור. אפשרות אחרת היא להוסיף את התווית playbook כדי לציין שמרכז הבקרה מכיל מידע שיעזור לכם לפתור בעיות.
הוספת תוויות למרכז הבקרה היא אופציונלית.
לדוגמה, בדוגמה הבאה מוצג אובייקט Dashboard שמציין את התווית בשם playbook.
{
"displayName": "Example",
"mosaicLayout": {
"columns": 12,
"tiles": [
...
]
},
"dashboardFilters": [],
"labels": {
"playbook": ""
}
}
כפי שאפשר לראות בדוגמה הקודמת, השדה labels מיושם כ-map, כאשר השדות key ו-value הם מחרוזות. כשמוסיפים תווית ללוח בקרה, מגדירים את key לשם התווית ואת השדה value למחרוזת ריקה.
מסננים ומשתנים של מרכז בקרה
כשמעצבים לוח בקרה, יכול להיות שתזהו כמה דרכים להצגת הנתונים שמופיעים בו. לדוגמה, נניח שבלוח בקרה מוצגים נתונים של סדרות זמן לגבי המכונות הווירטואליות (VM) שלכם. יכול להיות שתרצו לראות את נתוני הסדרות העיתיות של כל המכונות הווירטואליות, ויכול להיות שתרצו לראות רק את הנתונים שנמצאים באזור ספציפי. במצב כזה, מומלץ ליצור מסנן מוצמד או משתנה, ואז להגדיר את ערך ברירת המחדל של המסנן לאזור הנצפה ביותר.
מסננים מוצמדים חלים על כל הווידג'טים בלוח הבקרה שתומכים בתווית שצוינה במסנן, אלא אם הווידג'ט מכיל מסנן עם אותו מפתח תווית.
לדוגמה, אם תרשים כולל את המסנן zone = us-central1-a, התרשים הזה מתעלם ממסנן מוצמד שמפתח התווית שלו הוא zone. באופן דומה, המערכת מתעלמת מהמסנן הזה בתרשימים שלא כוללים תווית עם מפתח zone.
משתנים הם כמו מסננים מוצמדים, אבל הם חלים רק על ווידג'טים ספציפיים. משתנים יכולים להתבסס על תוויות או להכיל רק ערך.
משתנים עם ערך בלבד מכילים ערך ברירת מחדל אחד או יותר, ורשימה של כל הערכים האפשריים. אם לא מציינים ערך ברירת מחדל, ברירת המחדל היא התו הכללי (*). כדי להגדיר את קבוצת כל הערכים האפשריים, אפשר לספק מערך של ערכים או לכתוב שאילתת SQL.
אם יוצרים מסנן או משתנה מוצמדים, כלי המעקב מעדכן את סרגל הכלים של מרכז הבקרה המותאם אישית כדי להציג מסנן.
במסננים מוצמדים, השם של המסנן בסרגל הכלים הוא השם של המסנן המוצמד. במקרה של משתנים, שם המסנן בסרגל הכלים הוא סימן דולר $ ואחריו שם המשתנה. כל מסנן בסרגל הכלים מכיל תפריט שמאפשר לשנות את הערך של המסנן או המשתנה המשויך המוצמד.
למשתנים, אפשר להחליף את המסנן בסרגל הכלים בווידג'ט של מרכז הבקרה. מידע נוסף זמין במאמר בנושא לוח בקרה עם ווידג'ט FilterControl.
בווידג'טים שמבצעים שאילתות על נתונים, אפשר לכלול משתנה בשאילתה של הווידג'ט, ואפשר להשתמש במשתנה כדי לשלוט בנראות של הווידג'ט. כשהשאילתה תלויה במשתנה, הנתונים שהווידג'ט מבקש משתנים כשמשנים את הערך של המשתנה. כתוצאה מכך, גם הנתונים שמוצגים משתנים. כשמשתמשים במשתנה כדי לשלוט בחשיפה של ווידג'ט, מופיע סמל visibility Visible בסרגל הכלים. הגבלות שקשורות לחשיפה מפורטות במאמר בנושא הגדרת החשיפה של ווידג'ט.
אותו מבנה נתונים משמש לייצוג של מסננים ומשתנים מוצמדים.
מידע נוסף זמין במאמר DashboardFilter.
דוגמה שמראה איך אפשר לשלוט בחשיפה של ווידג'ט באמצעות משתנה מופיעה במאמר לוח בקרה עם הגדרת חשיפה של ווידג'ט.
כדי ללמוד איך לעדכן את השאילתה של ווידג'ט עם משתנה מבוסס-תווית או משתנה עם ערך בלבד, אפשר לעיין בקטעים הבאים:
- תחביר כללי לביטול ההפניה למשתנה
- ווידג'טים בחלונית היומנים
- תרשימים עם שאילתות PromQL
- תרשימים עם שאילתות SQL
תרשימים עם שאילתות של מסנני מעקב
כשמשתמשים בממשק מבוסס-תפריטים כדי ליצור תרשים שמציג נתונים של סדרות עיתיות, הבחירות שלכם מומרות למסנן מעקב.
יצירה של מסננים ומשתנים
המסוף
במסמכים הבאים מוסבר איך משתמשים במסוף Google Cloud כדי ליצור מסננים ומשתנים מוצמדים:
API
כדי להגדיר מסננים ומשתנים מוצמדים, משתמשים במבנה הנתונים dashboardFilters.
- כדי ליצור משתנה, מגדירים את הערך של השדה
templateVariableלשם המשתנה. כדי ליצור מסנן מוצמד, משמיטים את השדה הזה או מגדירים את הערך למחרוזת ריקה. - כדי ליצור מסנן מוצמד או משתנה שמבוסס על תווית, צריך לציין את השדה
labelKey. משמיטים את השדה הזה כשרוצים משתנה עם ערך בלבד. מגדירים את ערך ברירת המחדל של המסנן או המשתנה. ההגדרה של השדה הזה קובעת אם המשתמש יכול לבחור בדיוק אפשרות אחת מתוך תפריט הערכים, או אם הוא יכול לבחור כמה ערכים.
- כדי להגדיר ערך ברירת מחדל יחיד ולמנוע מהמשתמשים לבחור יותר מאפשרות אחת בתפריט הערכים, צריך להגדיר את השדה
valueTypeכ-STRINGוגם להגדיר את השדהstringValue:
"valueType": "STRING", "stringValue": "my-default-value",- כדי להגדיר לפחות ערך ברירת מחדל אחד ולאפשר למשתמשים לבחור כמה אפשרויות בתפריט הערכים, צריך להגדיר את השדה
valueTypeכ-STRING_ARRAYולהגדיר גם את השדהstringArrayValue. בדוגמה הבאה, יש שלושה ערכי ברירת מחדל.
"valueType": "STRING_ARRAY", "stringArrayValue": { "values": [ "a", "b", "c" ] },- כדי להגדיר ערך ברירת מחדל יחיד ולמנוע מהמשתמשים לבחור יותר מאפשרות אחת בתפריט הערכים, צריך להגדיר את השדה
אופציונלי: כדי לציין את רשימת כל הערכים האפשריים למשתנה מסוג ערך בלבד, מגדירים את השדה
stringArrayאו את השדהtimeSeriesQuery. אם מציינים שאילתה, היא חייבת להיות שאילתת ניתוח נתונים.
לדוגמה, אובייקט dashboardFilters הבא:
{
"dashboardFilters": [
{
"labelKey": "zone"
"stringValue": "us-central1-c",
"valueType": "STRING",
"filterType": "RESOURCE_LABEL"
},
{
"labelKey": "instance_id",
"stringValue": "3133577226154888113",
"valueType": "STRING",
"filterType": "RESOURCE_LABEL",
"templateVariable": "my_label_based_variable"
},
{
"filterType": "VALUE_ONLY",
"templateVariable": "my_value_only_variable",
timeSeriesQuery: {
opsAnalyticsQuery: {
sql: "
SELECT log_name
FROM `MY_TABLE`
GROUP BY log_name
",
}
}
}
],
"displayName": "Illustrate Variables",
...
}
קובץ ה-JSON הקודם מגדיר מסנן מוצמד אחד ושני משתנים:
למסנן המוצמד יש מפתח תווית
zone, שמוצג בסרגל הכלים. בשדותvalueTypeו-stringValueמצוין ערך ברירת המחדל היחיד. מידע נוסף מופיע בדף הפניות ל-API בנושא מבנה הנתונים שלdashboardFilters.למשתנה מבוסס-התוויות יש את השם
my_label_based_variable, ומפתח התווית שלו הואinstance_id. ערך ברירת המחדל של המשתנה הזה מוגדר למזהה ספציפי של מופע. אפשר גם להגדיר את ערך ברירת המחדל באמצעות מערך. בסרגל הכלים, המסנן מוצג עם השםmy_label_based_variable.המשתנה עם הערך בלבד נקרא
my_value_only_variable. במאפיין הזה לא מציינים ערך ברירת מחדל, ולכן מוחל באופן אוטומטי האופרטור של התו הכללי לחיפוש,(*). בנוסף, המשתנה הזה משתמש בשאילתת SQL כדי ליצור את רשימת הערכים האפשריים של המשתנה.
שימו לב שהאובייקט dashboardFilters לא מפרט את הווידג'טים שהמשתנה חל עליהם. במקום זאת, מעדכנים את השאילתה של הווידג'ט כך שתהיה תלויה במשתנה.
תחביר כללי לביטול ההפניה למשתנה
לכל הווידג'טים, חוץ מאלה שמוגדרים על ידי SQL, משתמשים בתחביר הבא כדי להחיל משתנה על שאילתה:
כדי להחיל משתנה מבוסס-תווית ולפתור את מפתח התווית ואת ערך התווית לביטוי מסנן תקין בשפת השאילתות, משתמשים ב-
${my_label_based_variable}.כדי להחיל רק את הערך של משתנה מבוסס-תווית, משתמשים ב-
${my_label_based_variable.value}. ההשוואה חייבת להתבצע באמצעות ביטוי רגולרי.כדי להחיל רק את הערך של משתנה מסוג value-only, משתמשים בפונקציה
${my_value_only_variable}. למשתנים שהם רק ערכים, לא צריך לכלול פסקה של.value. ההשוואה חייבת להתבצע באמצעות ביטוי רגולרי.
ווידג'טים של חלונית היומנים
כדי להחיל משתנה על ווידג'ט בחלונית היומנים, צריך לעדכן את חלונית השאילתות. התחביר של הווידג'טים האלה זהה לתחביר שמופיע בקטע תחביר כללי.
המסוף
לדוגמה, בשאילתה הבאה נעשה שימוש בביטוי רגולרי כדי להשוות בין הערך של השדה jsonPayload.message לבין ערך מחרוזת שכולל את הערך של משתנה מבוסס-תווית:
jsonPayload.message=~"Connected to instance: ${my_label_based_variable.value}"
דוגמה נוספת: נניח שיש משתנה עם ערך בלבד, value_only_severity_variable, ושבתפריט הערכים נבחרו שלושה ערכים: ERROR, INFO ו-NOTICE.
בשלב הבא, מוסיפים את הרכיבים הבאים לחלונית השאילתות של הווידג'ט של חלונית היומנים:
severity =~ "${value_only_severity_variable}"
האיור הבא מציג את הטופס שעבר רינדור:
severity =~ "^(ERROR|INFO|NOTICE)$"
API
לדוגמה, קטע ה-JSON הבא מראה איך לעדכן את השאילתה של ווידג'ט של חלונית יומנים באמצעות משתנה מבוסס-תווית:
"logsPanel": {
"filter": "${my_label_based_variable}",
"resourceNames": [
"projects/1234512345"
]
},
לדוגמה, בשאילתה הבאה נעשה שימוש בביטוי רגולרי כדי להשוות בין הערך של השדה jsonPayload.message לבין ערך מחרוזת שכולל את הערך של משתנה מבוסס-תווית:
"logsPanel": {
"filter": "resource.type=\"gce_instance\"\n
resource.labels.project_id=~\"${my_label_based_variable.value}\"\n",
"resourceNames": [
"projects/012345"
]
}
דוגמה נוספת: נניח שיש משתנה עם ערכים בלבד, value_only_severity_variable, ושלושה ערכים נבחרו בתפריט: ERROR, INFO ו-NOTICE.
בשלב הבא, מוסיפים את הרכיבים הבאים לחלונית השאילתות של הווידג'ט של חלונית היומנים:
"logsPanel": {
"filter": "severity =~ \"${value_only_severity_variable}\"\n",
...
}
האיור הבא ממחיש את השאילתה כפי שהיא מבוצעת על ידי הווידג'ט של חלונית היומנים:
severity =~ "^(ERROR|INFO|NOTICE)$"
אם הגדרתם שאילתה עבור חלונית היומנים ואז לחצתם על הלחצן כדי לפתוח את Logs Explorer, המשתנים יאותרו לפני ש-Logs Explorer ייפתח.
בטבלה הבאה מוסבר איך חלונית היומנים פותרת את משתני הדוגמה. כמו שצוין קודם, כשמשתמשים רק בערך של משתנה, צריך להשתמש בביטוי רגולרי כאופרטור ההשוואה:
| תחביר | הערך שנבחר |
ביטוי בחלונית של יומנים שנפתרו |
|---|---|---|
${my_label_based_variable} |
12345 |
resource.labels."instance_id"="12345"
משתנה הדוגמה מבוסס על תווית המשאב |
${my_label_based_variable} |
* |
"" |
${my_label_based_variable.value}${my_value_based_variable} |
12345 |
12345 |
${my_label_based_variable.value}${my_value_based_variable} |
* |
.* |
תרשימים עם שאילתות PromQL
כדי לעדכן תרשים עם שאילתת PromQL כך שיהיה תלוי במשתנה מבוסס-תווית, פועלים לפי ההנחיות שמפורטות במאמר בנושא תחביר כללי.
המסוף
לדוגמה, השאילתה הבאה מסתמכת על המשתנה מבוסס התווית, my_label_based_variable, שפוענח לביטוי סינון:
compute_googleapis_com:instance_cpu_utilization{
monitored_resource="gce_instance", ${my_label_based_variable} }
אפשר גם לשנות את השאילתה כדי לקבל רק את הערך של משתנה.
בדוגמה הבאה נעשה שימוש בביטוי רגולרי כדי להשוות בין הערך של שאילתה שמבוססת על תווית לבין instance_id:
compute_googleapis_com:instance_cpu_utilization{
instance_id=~"${my_label_based_variable.value}"
}
אם יש לכם משתנה עם ערך בלבד, אל תכללו את פסקה .value. לדוגמה, כדי לסנן לפי אזור באמצעות משתנה עם ערך בלבד, השאילתה תכלול משהו כמו הדוגמה הבאה:
zone=~"${my_value_only_variable}"
API
לדוגמה, קטע ה-JSON הבא ממחיש שאילתה שמסתמכת על המשתנה מבוסס התווית, my_label_based_variable, שמומר לביטוי סינון:
"timeSeriesQuery": {
"prometheusQuery": "avg_over_time(
compute_googleapis_com:instance_cpu_utilization{
monitored_resource=\"gce_instance\",
${my_label_based_variable}
}[${__interval}])",
"unitOverride": "",
"outputFullDuration": false
},
אפשר גם לשנות את השאילתה כדי לקבל רק את הערך של משתנה.
בדוגמה הבאה נעשה שימוש בביטוי רגולרי כדי להשוות בין הערך של שאילתה שמבוססת על תווית לבין instance_id:
"timeSeriesQuery": {
"prometheusQuery": "avg_over_time(
compute_googleapis_com:instance_cpu_utilization{
monitored_resource=\"gce_instance\",
instance_id=~\"${my_label_based_variable.value}\"
}[${__interval}])",
"unitOverride": "",
"outputFullDuration": false
},
אם יש לכם משתנה עם ערך בלבד, אל תכללו את פסקה .value. לדוגמה, כדי לסנן לפי אזור באמצעות משתנה עם ערך בלבד, השאילתה תכלול משהו כמו הדוגמה הבאה:
zone=~\"${my_value_only_variable}\"
בטבלה הבאה מוסבר איך המשתנים לדוגמה נפתרים על ידי PromQL. כמו שצוין קודם, כשמשתמשים רק בערך של משתנה, צריך להשתמש בביטוי רגולרי כאופרטור ההשוואה:
| תחביר | הערך שנבחר |
ביטוי PromQL שנפתר |
|---|---|---|
${my_label_based_variable} |
12345 |
instance_id == '12345'
משתנה הדוגמה מבוסס על תווית המשאב |
${my_label_based_variable} |
* |
noop_filter=~".*" |
${my_label_based_variable.value}${my_value_based_variable} |
12345 |
12345 |
${my_label_based_variable.value}${my_value_based_variable} |
* |
.+ |
תרשימים עם שאילתות SQL
יש שני מקומות שבהם אפשר להשתמש במשתנים בשאילתות SQL:
הסעיף
FROMיכול להיות תלוי במשתנה שהוגדר על ידי המערכת בשם@__project_id, שמוביל לערך של הפרויקט שנבחר.הפסקה
WHEREיכולה להיות תלויה במשתנים שמוגדרים על ידי המשתמש.
עדכון הסעיף FROM כך שיהיה תלוי במשתנה שמוגדר על ידי המערכת
אם אתם יוצרים תבניות של מרכזי בקרה והתבניות האלה מציגות את התוצאות של שאילתות SQL, צריך להחליף את מזהה הפרויקט בשאילתה במשתנה @__project_id. כשמתקינים את התבנית בפרויקט, המשתנה מומר אוטומטית למזהה הפרויקט. אין צורך לערוך ידנית את הווידג'ט ולעדכן את סעיף FROM.
בדוגמה הבאה מוצג סעיף FROM שתלוי במשתנה שמוגדר על ידי המערכת:
FROM `@__project_id.global._Default._Default`
הפסקה FROM לא יכולה להיות תלויה במשתנים שמוגדרים על ידי המשתמש.
עדכון סעיף WHERE כך שיהיה תלוי במשתנה שהוגדר על ידי המשתמש
בקטע הזה מוסבר איך לעדכן את הסעיף WHERE של ווידג'ט שמוגדר באמצעות SQL, כך שהוא יהיה תלוי במשתנה שהוגדר על ידי המשתמש.
לכל המשתנים, מוסיפים לפני שם המשתנה את הסימן @, לדוגמה:
@variable_name. למשתנים מבוססי-תוויות, מוסיפים את הערך .value לשם המשתנה, @my_label_based_variabe.value.
בשאילתות SQL, החלפת המשתנים מתבססת על BigQuery, והיא בטוחה מפני הזרקת SQL. מידע נוסף זמין במאמר בנושא הרצת שאילתות עם פרמטרים.
המסוף
מכיוון ש-SQL לא מפרש את אופרטור התו הכללי כ'כל ערך', מומלץ להשתמש תמיד בהצהרת IF כשמשתמשים במשתנים בשאילתת SQL. בדוגמה הבאה מוצג שימוש במשתנה שמכיל רק ערך וסוג הנתונים שלו הוא מחרוזת:
WHERE IF(@my_value_only_variable = "*", TRUE, log_name = @my_value_only_variable)
אם אפשר לבחור כמה ערכים למשתנה בתפריט האפשרויות, צריך להשתמש בפונקציה CAST כדי להמיר את ערך המשתנה לסוג נתונים של GoogleSQL.
השאילתה הבאה ממחישה את התחביר הזה:
IF(ARRAY_LENGTH(CAST(@my_value_only_variable)) = 0, TRUE, severity IN UNNEST(@my_value_only_variable))
מומלץ להשתמש בהצהרה IF שמוצגת בדוגמאות הקודמות, כי SQL לא מפרש את האופרטור של התו הכללי לחיפוש כ'כל ערך'. לכן, אם לא תכללו את ההצהרה IF ואם תבחרו בתו כללי, תוצאת השאילתה תהיה טבלה ריקה. בדוגמה השנייה, הפונקציה UNNEST ממירה את המערך לטבלה.
כדי להוסיף סעיף WHERE בפורמט תקין:
- עורכים את הווידג'ט.
- בסרגל הכלים, בוחרים באפשרות הוספת מסנן משתנה, ואז בוחרים את המשתנה שרוצים לעדכן את סעיף
WHEREשלו. - בתיבת הדו-שיח שנפתחת, בודקים את הקוד שנוצר ואז לוחצים על העתקה וסגירה.
מדביקים את הקוד שהעתקתם בחלונית שאילתה ומבצעים את העריכות הנדרשות.
לדוגמה, נניח שיוצרים משתנה בשם
LogNameשמפיק רשימה של שמות יומנים ומציג את התוצאה בטבלה עם עמודה אחת בשםlog_name. לאחר מכן יוצרים תרשים, בוחרים באפשרות הוספת מסנן משתנה ובוחרים במשתנהLogName. נוצר הקוד הבא:WHERE IF(@LogName = '*', TRUE, LogName = @LogName)בדוגמה הזו, צריך לערוך את הקוד שנוצר ולהחליף את
LogName =ב-log_name =, כדי שאפשר יהיה לבצע את צירוף הטבלה:WHERE IF(@LogName = '*', TRUE, log_name = @LogName)לוחצים על הפעלה ואז על אישור.
כדי לשמור את מרכז הבקרה ששיניתם, בסרגל הכלים לוחצים על שמירה.
API
מכיוון ש-SQL לא מפרש את אופרטור התו הכללי כ'כל ערך', מומלץ להשתמש תמיד בהצהרת IF כשמשתמשים במשתנים בשאילתת SQL. בדוגמה הבאה מוצג שימוש במשתנה שמכיל רק ערך וסוג הנתונים שלו הוא מחרוזת:
WHERE IF(@my_value_only_variable = "*", TRUE, log_name = @my_value_only_variable)
לדוגמה, כאן מוצג ייצוג חלקי של תרשים ב-JSON שמציג את התוצאות של שאילתת SQL. כדי לתמוך בסינון התוצאות לפי שם יומן, נוסף סעיף WHERE שמפנה למשתנה בשם LogName:
"plotType": "STACKED_BAR",
"targetAxis": "Y1",
"timeSeriesQuery": {
"opsAnalyticsQuery": {
"queryExecutionRules": {},
"queryHandle": "",
"sql": "SELECT\n timestamp, severity, resource.type, log_name, text_payload, proto_payload, json_payload\n
FROM\n `my-project.global._Default._Default`\n
WHERE \n IF (@LogName = \"*\", TRUE, log_name=@LogName)\nLIMIT 10000"
}
}
המשתנה LogName גם מנפיק שאילתה כדי לקבוע את רשימת שמות היומנים האפשריים:
"dashboardFilters": [
{
"filterType": "VALUE_ONLY",
"templateVariable": "LogName",
"valueType": "STRING",
"timeSeriesQuery": {
"opsAnalyticsQuery": {
"savedQueryId": "",
"sql": "SELECT log_name FROM `my-project.global._Default._Default` GROUP BY log_name LIMIT 1000",
"queryHandle": ""
},
"unitOverride": "",
"outputFullDuration": false
}
}
],
אם אפשר לבחור כמה ערכים למשתנה בתפריט האפשרויות, צריך להשתמש בפונקציה CAST כדי להמיר את ערך המשתנה לסוג נתונים של GoogleSQL.
השאילתה הבאה ממחישה את התחביר הזה:
IF(ARRAY_LENGTH(CAST(@my_value_only_variable)) = 0, TRUE, severity IN UNNEST(@my_value_only_variable))
מומלץ להשתמש בהצהרה IF שמוצגת בדוגמאות הקודמות, כי SQL לא מפרש את האופרטור של התו הכללי לחיפוש כ'כל ערך'. לכן, אם לא תכללו את ההצהרה IF ואם תבחרו בתו כללי, תוצאת השאילתה תהיה טבלה ריקה. בדוגמה השנייה, הפונקציה UNNEST ממירה את המערך לטבלה.
תרשימים עם שאילתות סינון של Monitoring
כדי לעדכן תרשים שיש בו שאילתה בצורה של מסנן Monitoring כך שיהיה תלוי במשתנה מבוסס-תווית, פועלים לפי ההנחיות שמפורטות בקטע תחביר כללי.
המסוף
אם אתם משתמשים במסוף Google Cloud כדי ליצור את התרשימים, ואם אתם משתמשים בממשק מבוסס-תפריטים, אתם יכולים לעדכן את השאילתה של התרשים באמצעות השדה Apply to charts של המשתנה, או באמצעות עריכת הווידג'ט ובחירת משתנה מבוסס-תוויות מהתפריט Filter. בתפריט Filter מופיעים כל המשתנים שמבוססים על תוויות וכל מפתחות התוויות.
כדי לעדכן את השאילתה של תרשים כך שתהיה תלויה במשתנה מבוסס-ערך:
- עורכים את התרשים.
- בחלונית השאילתה, לוחצים על הוספת מסנן ובוחרים מפתח התווית. לדוגמה, אפשר לבחור אזור.
- בתפריט ערך, בוחרים את המשתנה של הערך בלבד.
- לוחצים על אישור.
- כדי לשמור את מרכז הבקרה ששיניתם, בסרגל הכלים לוחצים על שמירה.
לדוגמה, קטע ה-JSON הבא ממחיש שאילתה שמסתמכת על משתנה מבוסס-תווית, my_label_based_variable, שמומר לביטוי סינון:
metric.type="compute.googleapis.com/instance/cpu/utilization"
resource.type="gce_instance" ${my_label_based_variable}"
ווידג'טים שמשתמשים בשאילתה בצורה של מסנן Monitoring לא יכולים לסנן את סדרת הזמן לפי הערך במשתנים מבוססי-תוויות, אבל הם יכולים לסנן לפי משתנים מבוססי-ערכים בלבד.
לדוגמה, השאילתה הבאה מציגה את הערך של השדה Filters של שאילתה שמסננת לפי zone, על סמך הערך של משתנה עם ערך בלבד:
metric.type="compute.googleapis.com/instance/cpu/utilization"
resource.type="gce_instance"
resource.label."zone"=monitoring.regex.full_match(${my_value_only_variable})
API
לדוגמה, קטע ה-JSON הבא ממחיש שאילתה שמסתמכת על משתנה מבוסס-תווית, my_label_based_variable, שמומר לביטוי סינון:
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\"
resource.type=\"gce_instance\"
${my_label_based_variable} ",
"aggregation": {
"alignmentPeriod": "60s",
"perSeriesAligner": "ALIGN_MEAN",
"groupByFields": []
}
},
"unitOverride": "",
"outputFullDuration": false
},
ווידג'טים שמשתמשים בשאילתה בצורה של מסנן Monitoring לא יכולים לסנן את סדרת הזמן לפי הערך במשתנים מבוססי-תוויות, אבל הם יכולים לסנן לפי משתנים מבוססי-ערכים בלבד.
לדוגמה, השאילתה הבאה מציגה את השדה "filter" של שאילתה שמסוננת לפי zone, על סמך הערך של משתנה שמכיל ערך בלבד:
"filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\"
resource.type=\"gce_instance\"
resource.labels.\"zone\"=monitoring.regex.full_match(${my_value_only_variable})"
בטבלה הבאה מוסבר איך המסנן Monitoring פותר את משתני הדוגמה. כמו שצוין קודם, כשמשתמשים רק בערך של משתנה, צריך להשתמש בביטוי רגולרי כאופרטור ההשוואה:
| תחביר | הערך שנבחר |
ביטוי סינון שנפתר |
|---|---|---|
${my_label_based_variable} |
12345 |
resource.instance_id == "12345"
משתנה הדוגמה מבוסס על תווית המשאב |
${my_label_based_variable} |
* |
הושמט |
${my_label_based_variable.value} |
12345 |
לא נתמך |
${my_label_based_variable.value} |
* |
לא נתמך |
${my_value_based_variable} |
12345 |
"12345" |
${my_value_based_variable} |
* |
".*" |
לפני שמתחילים
מבצעים את הפעולות הבאות ב Google Cloud פרויקט שבו רוצים ליצור או לנהל מרכזי בקרה:
-
Select the tab for how you plan to use the samples on this page:
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Terraform
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .
REST
כדי להשתמש בדוגמאות של API בארכיטקטורת REST שבדף הזה בסביבת פיתוח מקומית, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
יצירת לוח בקרה
כדי ליצור מרכז בקרה חדש בהתאמה אישית, מפעילים את השיטה
dashboards.createומספקים לה את הפריסה ואת הווידג'טים שיוצגו במרכז הבקרה.השדה
nameהוא אופציונלי. הערך של שדה השם הוא במבנה הבא:"name": "projects/PROJECT_ID_OR_NUMBER/dashboards/DASHBOARD_ID"
כשיוצרים לוח בקרה, ה-API יוצר באופן אוטומטי את הרכיב DASHBOARD_ID. אם רוצים לציין DASHBOARD_IDמותאם אישית, אפשר לציין את השדה
nameשל האובייקטDashboard.gcloud
כדי ליצור מרכז בקרה בפרויקט, משתמשים בפקודה
gcloud monitoring dashboards create.gcloud monitoring dashboards create --config-from-file=my-dashboard.json --project=PROJECT_IDלפני שמריצים את הפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
לדוגמה, אם רוצים לשכפל מרכז בקרה, מבצעים את הפעולות הבאות:
- כדי להוריד את ההגדרה של מרכז הבקרה המקורי, פועלים לפי השלבים במאמר הורדת מרכז הבקרה.
- עורכים את ה-JSON שמוחזר כדי להסיר את השדות
etagו-name, ומשנים את הערך של השדהdisplayName. - מריצים את הפקודה כדי ליצור את מרכז הבקרה.
מידע נוסף זמין במאמר בנושא
gcloud monitoring dashboards create.Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform. למידע נוסף, ראו את מאמרי העזרה לספקים של Terraform.
כדי ליצור מרכז בקרה באמצעות Terraform:
- מתקינים ומגדירים את Terraform לפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
משתמשים במשאב Terraform
google_monitoring_dashboard.בפקודה, מגדירים את השדות הבאים:
dashboard_json: ייצוג ב-JSON של לוח הבקרה, בפורמטDashboards.כדי לראות דוגמאות לפורמט הזה, אפשר להציג רשימה של לוחות הבקרה באמצעות APIs Explorer, או לפתוח לוח בקרה במסוף Google Cloud ולהציג את הייצוגים בפורמט JSON.
parent: השם המלא של הפרויקט. לדוגמה, אפשר להגדיר את השדה הזה לערך"projects/PROJECT_ID", כאשר PROJECT_ID הוא מזהה הפרויקט ב- Google Cloud . בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
REST
כדי ליצור מרכז בקרה חדש, שולחים בקשת
POSTלנקודת הקצהDashboard.curl -d @my-dashboard.json -H "Authorization: Bearer $ACCESS_TOKEN" -H 'Content-Type: application/json' -X POST https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboardsלפני שמריצים את הפקודה הקודמת, מגדירים את הפרטים הבאים:
-
${PROJECT_ID}: משתנה סביבה שמאחסן את מזהה הפרויקט שבו רוצים ליצור את לוח הבקרה. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
בדוגמאות האלה נוצר לוח בקרה לדוגמה באמצעות הקובץ
my-dashboard.json. אפשר לנהל את לוח הבקרה דרך מסוףGoogle Cloud .למידע על הגדרות נוספות של לוחות בקרה, ראו דוגמאות ללוחות בקרה ולפריסות.
מחיקת מרכזי בקרה
כדי למחוק מרכז בקרה בהתאמה אישית, מפעילים את השיטה
dashboards.deleteומציינים את מרכז הבקרה שרוצים למחוק.gcloud
כדי למחוק מרכז בקרה בהתאמה אישית, משתמשים בפקודה
gcloud monitoring dashboards deleteומציינים את המזהה המוגדר במלואו של מרכז הבקרה שרוצים למחוק:gcloud monitoring dashboards delete DASHBOARD_ID --project=PROJECT_IDלפני שמריצים את הפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
- DASHBOARD_ID: מזהה לוח הבקרה.
מידע נוסף זמין במאמר בנושא
gcloud monitoring dashboards delete.Terraform
אפשר למחוק משאבים באמצעות Terraform. מידע על מחיקת משאבים זמין בפקודה destroy של Terraform.
REST
כדי למחוק לוח בקרה בהתאמה אישית, שולחים בקשת
DELETEלנקודת הקצהDashboard, עם מזהה לוח הבקרה שרוצים למחוק.curl -H "Authorization: Bearer $ACCESS_TOKEN" -X DELETE https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards/${DASHBOARD_ID}לפני שמריצים את הפקודה הקודמת, מגדירים את הפרטים הבאים:
-
${PROJECT_ID}: משתנה סביבה שמאחסן את מזהה הפרויקט שבו רוצים ליצור את לוח הבקרה. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות. -
${DASHBOARD_ID}: משתנה סביבה שמאחסן את המזהה של לוח הבקרה.
אם הפעולה בוצעה ללא שגיאות, השיטה מחזירה תגובה ריקה. אחרת, הפונקציה מחזירה שגיאה.
הצגת רשימה של לוחות בקרה
כדי להציג רשימה של כל לוחות הבקרה בהתאמה אישית ששייכים לפרויקט, מפעילים את השיטה
dashboards.listומציינים את מזהה הפרויקט.gcloud
כדי להציג את כל לוחות הבקרה בהתאמה אישית בפרויקט, משתמשים בפקודה
gcloud monitoring dashboards list:gcloud monitoring dashboards list --project=PROJECT_IDלפני שמריצים את הפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
מידע נוסף זמין במאמר בנושא
gcloud monitoring dashboards list.Terraform
אי אפשר להשתמש ב-Terraform כדי לשלוח שאילתה לפרויקט, והתשובה תהיה רשימה של מרכזי בקרה. עם זאת, אפשר לראות את לוחות הבקרה האלה באמצעות מסוף Google Cloud .
REST
כדי להציג רשימה של כל לוחות הבקרה בהתאמה אישית של פרויקט, שולחים את מזהה הפרויקט לנקודת הקצה
Dashboard.curl -H "Authorization: Bearer $ACCESS_TOKEN" https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboardsלפני שמריצים את הפקודה הקודמת, מגדירים את הפרטים הבאים:
-
${PROJECT_ID}: משתנה סביבה שמאחסן את מזהה הפרויקט שבו רוצים ליצור את לוח הבקרה. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
בדוגמאות מוצגים מרכזי הבקרה בהתאמה אישית שמשויכים לפרויקט.
חלוקת התגובה לרשימה לדפים
השיטה
dashboards.listתומכת בהגדרת מעברי עמוד, כך שאפשר לקבל את התוצאות דף אחד בכל פעם במקום את כל התוצאות בבת אחת.gcloud
כדי לציין את מספר המשאבים בכל דף, מעבירים את הדגל
--page-sizeעם הפקודה. לדוגמה:gcloud monitoring dashboards list --page-size=1 --project=PROJECT_IDלפני שמריצים את הפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
Terraform
אי אפשר להשתמש ב-Terraform כדי לשלוח שאילתה לפרויקט, והתשובה תהיה רשימה של מרכזי בקרה עם מספור עמודים. עם זאת, אפשר לראות את לוחות הבקרה האלה באמצעות מסוף Google Cloud .
REST
בדף הראשון של רשימת התוצאות, מציינים את
pageSizeהפרמטר query עם הבקשה:curl -H "Authorization: Bearer $ACCESS_TOKEN" https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards?page_size=1לפני שמריצים את הפקודה הקודמת, מגדירים את הפרטים הבאים:
-
${PROJECT_ID}: משתנה סביבה שמאחסן את מזהה הפרויקט שבו רוצים ליצור את לוח הבקרה. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
ה-method מחזירה את הדף הראשון של הרשימה ואת
nextPageToken. לדוגמה:{ "dashboards" : [ { "displayName" : "Grid Layout Example", "gridLayout" : { "widgets" : [ { ... }, { ... }, { ... }, ] } } ] }, "nextPageToken": "ChYqFDEyMzkzMzUwNzg0OTE1MDI4MjM3"לכל דף שנותר, צריך לכלול את
nextPageTokenהמתאים בבקשה.קבלת מרכז הבקרה
כדי לקבל מרכז בקרה מותאם אישית ספציפי לפרויקט, מפעילים את השיטה
dashboards.get, עם מזהה מרכז הבקרה.gcloud
כדי לקבל לוח בקרה ספציפי בהתאמה אישית, משתמשים בפקודה
gcloud monitoring dashboards describeומציינים את מזהה לוח הבקרה:gcloud monitoring dashboards describe DASHBOARD_ID --format=json --project=PROJECT_IDלפני שמריצים את הפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
- DASHBOARD_ID: מזהה לוח הבקרה.
הפקודה מחזירה את לוח הבקרה המבוקש:
{ "columnLayout": { "columns": [ { "widgets": [ { "text": { "content": "Text Widget 1", "format": "RAW" } }, { "text": { "content": "**Text Widget 2**", "format": "MARKDOWN" } }, { "text": { "content": "_Text Widget 3_", "format": "MARKDOWN" } } ] } ] }, "displayName": "Column-layout example", "etag": "cb3070baf15de7c79d78761baac3a386", "name": "projects/730041941835/dashboards/e4cd063e-5414-4e07-9e1e-450d6d3a531d" }מידע נוסף זמין במאמר בנושא
gcloud monitoring dashboards describe.Terraform
אי אפשר להשתמש ב-Terraform כדי לשלוח שאילתה לפרויקט, והתשובה תהיה לוח בקרה נפרד. עם זאת, אפשר לראות את לוחות הבקרה האלה באמצעות מסוף Google Cloud .
REST
כדי לקבל לוח בקרה מותאם אישית ספציפי, שולחים את מזהה לוח הבקרה לנקודת הקצה
Dashboard.curl -H "Authorization: Bearer $ACCESS_TOKEN" https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards/${DASHBOARD_ID}לפני שמריצים את הפקודה הקודמת, מגדירים את הפרטים הבאים:
-
${PROJECT_ID}: משתנה סביבה שמאחסן את מזהה הפרויקט שבו רוצים ליצור את לוח הבקרה. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות. -
${DASHBOARD_ID}: משתנה סביבה שמאחסן את המזהה של לוח הבקרה.
בביטוי הקודם,
${DASHBOARD_ID}הוא משתנה סביבה שמאחסן את השם המלא של לוח הבקרה.המתודה מחזירה תגובה שדומה לדוגמה הבאה:
{ "columnLayout": { "columns": [ { "widgets": [ { "text": { "content": "Text Widget 1", "format": "RAW" } }, { "text": { "content": "**Text Widget 2**", "format": "MARKDOWN" } }, { "text": { "content": "_Text Widget 3_", "format": "MARKDOWN" } } ] } ] }, "displayName": "Column-layout example", "etag": "cb3070baf15de7c79d78761baac3a386", "name": "projects/730041941835/dashboards/e4cd063e-5414-4e07-9e1e-450d6d3a531d" }עדכון לוח הבקרה
כדי לעדכן מרכז בקרה קיים בהתאמה אישית, מפעילים את השיטה
dashboards.patch. כדי לקבל את הערך הנוכחי שלetag, אפשר להפעיל את השיטהdashboards.getולמצוא אותו בתשובה.gcloud
כדי לעדכן לוח בקרה מותאם אישית, משתמשים ב-
gcloud monitoring dashboards update, מציינים את המזהה של לוח הבקרה שרוצים לעדכן ומספקים את השינויים בלוח הבקרה.gcloud monitoring dashboards update DASHBOARD_ID --config-from-file=my-updated-dashboard.json --project=PROJECT_IDלפני שמריצים את הפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
- DASHBOARD_ID: מזהה לוח הבקרה.
מידע נוסף זמין במאמר בנושא
gcloud monitoring dashboards update.בדוגמה הקודמת עדכנו לוח בקרה מותאם אישית קיים באמצעות הקובץ
my-updated-dashboard.json. התשובה, שכוללת ערך חדש שלetag, היא עותק של רשימת לוחות הבקרה המעודכנת.Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform. למידע נוסף, ראו את מאמרי העזרה לספקים של Terraform.
כדי לעדכן מרכז בקרה באמצעות Terraform:
- מתקינים ומגדירים את Terraform לפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
משתמשים במשאב Terraform
google_monitoring_dashboard.בפקודה, מגדירים את השדות הבאים:
dashboard_json: ייצוג ב-JSON של לוח הבקרה, בפורמטDashboards.
parent: השם המלא של הפרויקט. לדוגמה, אפשר להגדיר את השדה הזה לערך"projects/PROJECT_ID", כאשר PROJECT_ID הוא מזהה הפרויקט ב- Google Cloud . בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
REST
כדי לעדכן לוח בקרה בהתאמה אישית, שולחים בקשת
PATCHלנקודת הקצהDashboardומספקים את אובייקטDashboardהמעודכן ואת הערךetagמהתגובה האחרונה שלdashboards.get.curl -d @my-updated-dashboard.json -H "Authorization: Bearer $ACCESS_TOKEN" -H 'Content-Type: application/json' -X PATCH https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards/${DASHBOARD_ID}לפני שמריצים את הפקודה הקודמת, מגדירים את הפרטים הבאים:
-
${PROJECT_ID}: משתנה סביבה שמאחסן את מזהה הפרויקט שבו רוצים ליצור את לוח הבקרה. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות. -
${DASHBOARD_ID}: משתנה סביבה שמאחסן את המזהה של לוח הבקרה.
בדוגמה הקודמת עדכנו לוח בקרה מותאם אישית קיים באמצעות הקובץ
my-updated-dashboard.json. התשובה, שכוללת ערך חדש שלetag, היא עותק של רשימת לוחות הבקרה המעודכנת.המאמרים הבאים
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2026-03-05 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["התוכן קשה להבנה","hardToUnderstand","thumb-down"],["שגיאות בקוד לדוגמה או במידע","incorrectInformationOrSampleCode","thumb-down"],["חסרים לי פרטים או דוגמאות","missingTheInformationSamplesINeed","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2026-03-05 (שעון UTC)."],[],[]]