יצירה וניהול של לוחות בקרה באמצעות API

במאמר הזה מוסבר איך ליצור לוחות בקרה בהתאמה אישית ולנהל אותם ואת הווידג'טים שמופיעים בהם באמצעות המשאב Dashboard ב-Cloud Monitoring API. בדוגמאות שבהמשך מוסבר איך לנהל את לוחות הבקרה באמצעות curl כדי להפעיל את ה-API, ואיך להשתמש ב-Google Cloud CLI. אפשר גם לנהל את לוחות הבקרה המותאמים אישית דרךGoogle Cloud המסוף, אבל ה-API מספק דרך פרוגרמטית לנהל הרבה לוחות בקרה בו-זמנית.

נקודת הקצה תומכת בשיטות הבאות לניהול ולתצורה של מרכזי בקרה:

אפשר להפעיל את ה-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: הצגת רשימה של אירועים. אפשר להגדיר את הווידג'ט כך שיוצגו בו אירועים שקשורים למדיניות ספציפית של התראות או לסוגים ספציפיים של משאבים.

  • ווידג'טים שמציגים רשומות ביומן ושגיאות:

  • ווידג'טים שמציגים נתוני מעקב:

    • בווידג'ט XyChart מוצגים נתונים לאורך ציר ה-X וציר ה-Y.

    • TimeSeriesTable: מוצג הערך האחרון או ערך מצטבר. אפשר להתאים אישית את הטבלאות.

  • ווידג'טים של טקסט וארגון:

    • 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.

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

אותו מבנה נתונים משמש לייצוג של מסננים ומשתנים מוצמדים. מידע נוסף זמין במאמר DashboardFilter.

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

כדי ללמוד איך לעדכן את השאילתה של ווידג'ט עם משתנה מבוסס-תווית או משתנה עם ערך בלבד, אפשר לעיין בקטעים הבאים:

יצירת מסננים ומשתנים

המסוף

במסמכים הבאים מוסבר איך משתמשים במסוף Google Cloud כדי ליצור מסננים ומשתנים מוצמדים:

REST

כדי להגדיר מסננים ומשתנים מוצמדים, משתמשים במבנה הנתונים dashboardFilters.

  • כדי ליצור משתנה, מגדירים את הערך של השדה templateVariable לשם המשתנה. כדי ליצור מסנן מוצמד, משמיטים את השדה הזה או מגדירים את הערך שלו כמחרוזת ריקה.
  • כדי ליצור מסנן מוצמד או משתנה מבוסס-תווית, צריך לציין את השדה labelKey. משמיטים את השדה הזה כשרוצים משתנה עם ערך בלבד.
  • מגדירים את ערך ברירת המחדל של המסנן או המשתנה. ההגדרה של השדה הזה קובעת אם משתמש יכול לבחור בדיוק אפשרות אחת מתוך תפריט הערכים, או אם הוא יכול לבחור כמה ערכים.

  • כדי להגדיר ערך ברירת מחדל יחיד ולהגביל את המשתמשים לבחירת אפשרות אחת בלבד בתפריט הערכים, מגדירים את השדה valueType כ-STRING ומגדירים גם את השדה stringValue:

    "valueType": "STRING",
    "stringValue": "my-default-value",
    
  • כדי להגדיר לפחות ערך ברירת מחדל אחד ולאפשר למשתמשים לבחור כמה אפשרויות בתפריט הערכים, צריך להגדיר את השדה valueType כ-STRING_ARRAY ולהגדיר גם את השדה stringArrayValue. בדוגמה הבאה, יש שלושה ערכי ברירת מחדל.

    "valueType": "STRING_ARRAY",
    "stringArrayValue": {
      "values": [ "a", "b", "c" ]
    },
    
  • אופציונלי: כדי לציין את רשימת כל הערכים האפשריים למשתנה מסוג value-only, מגדירים את השדה 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)$"

REST

לדוגמה, קטע ה-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"

משתנה הדוגמה מבוסס על תווית המשאב instance_id.

${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}"

REST

לדוגמה, קטע ה-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'

משתנה הדוגמה מבוסס על תווית המשאב instance_id.

${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 בפורמט תקין:

  1. עורכים את הווידג'ט.
  2. בסרגל הכלים, בוחרים באפשרות הוספת מסנן משתנה ואז בוחרים את המשתנה שרוצים לעדכן את סעיף WHERE שלו.
  3. בתיבת הדו-שיח שנפתחת, בודקים את הקוד שנוצר ואז לוחצים על העתקה וסגירה.
  4. מדביקים את הקוד שהועתק לחלונית שאילתה ומבצעים את העריכות הנדרשות.

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

    WHERE IF(@LogName = '*', TRUE, LogName = @LogName)
    

    בדוגמה הזו, צריך לערוך את הקוד שנוצר ולהחליף את LogName = ב-log_name =, כדי שאפשר יהיה לבצע את צירוף הטבלה:

    WHERE IF(@LogName = '*', TRUE, log_name = @LogName)
    
  5. לוחצים על Run ואז על Apply.

  6. כדי לשמור את מרכז הבקרה ששיניתם, בסרגל הכלים לוחצים על שמירה.

REST

מכיוון ש-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

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

המסוף

אם אתם משתמשים במסוף Google Cloud כדי ליצור את התרשימים, ואם אתם משתמשים בממשק מבוסס-תפריטים, אתם יכולים לעדכן את השאילתה של התרשים באמצעות השדה Apply to charts של המשתנה, או לערוך את הווידג'ט ולבחור משתנה מבוסס-תוויות מהתפריט Filter. בתפריט Filter מופיעות כל המשתנים שמבוססים על תוויות וכל מפתחות התוויות.

כדי לעדכן את השאילתה של תרשים כך שתהיה תלויה במשתנה מבוסס-ערך: פועלים לפי השלבים הבאים:

  1. עורכים את התרשים.
  2. בחלונית השאילתה, לוחצים על הוספת מסנן ובוחרים מַפתח התווית. לדוגמה, אפשר לבחור אזור.
  3. בתפריט ערך, בוחרים את המשתנה של הערך בלבד.
  4. לוחצים על אישור.
  5. כדי לשמור את מרכז הבקרה ששיניתם, בסרגל הכלים לוחצים על שמירה.

לדוגמה, קטע ה-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})

REST

לדוגמה, קטע ה-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"

משתנה הדוגמה מבוסס על תווית המשאב instance_id.

${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 פרויקט שבו רוצים ליצור או לנהל מרכזי בקרה:

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

    gcloud

    במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

    Terraform

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

    1. התקינו את ה-CLI של Google Cloud.

    2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

      gcloud auth application-default login

      אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.

      אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    למידע נוסף, ראו הגדרת 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: מזהה הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.

לדוגמה, אם רוצים לשכפל מרכז בקרה, מבצעים את הפעולות הבאות:

  1. כדי להוריד את ההגדרה של לוח הבקרה המקורי, צריך לפעול לפי השלבים במאמר הורדת לוח הבקרה.
  2. עורכים את ה-JSON שמוחזר כדי להסיר את השדות etag ו-name, ומשנים את הערך של השדה displayName.
  3. מריצים את הפקודה כדי ליצור את מרכז הבקרה.

מידע נוסף זמין במאמר בנושא gcloud monitoring dashboards create.

Terraform

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform. מידע נוסף מופיע במאמרי העזרה על ספק Terraform.

כדי ליצור מרכז בקרה באמצעות Terraform:

  1. מתקינים ומגדירים את Terraform לפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
  2. משתמשים במשאב 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}: משתנה סביבה שמאחסן את מזהה הפרויקט שבו רוצים ליצור את לוח הבקרה. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.

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

חלוקת התגובה לרשימה לדפים

ה-method ‏dashboards.list תומך בהגדרת מעברי עמוד, כך שאפשר לקבל את התוצאות עמוד אחרי עמוד ולא את כולן בבת אחת.

gcloud

כדי לציין את מספר המשאבים בכל דף, מעבירים את הדגל --page-size עם הפקודה. לדוגמה:

gcloud monitoring dashboards list --page-size=1 --project=PROJECT_ID

לפני שמריצים את הפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.

Terraform

אי אפשר להשתמש ב-Terraform כדי לשלוח שאילתה לפרויקט, והתשובה תהיה רשימה של מרכזי בקרה עם מספור עמודים. עם זאת, אפשר לראות את לוחות הבקרה האלה במסוף Google Cloud .

REST

בדף הראשון של רשימת התוצאות, מציינים את pageSize פרמטר השאילתה עם הבקשה:

curl -H "Authorization: Bearer $ACCESS_TOKEN" https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards?page_size=1

לפני שמריצים את הפקודה הקודמת, מגדירים את הפרטים הבאים:

  • ${PROJECT_ID}: משתנה סביבה שמאחסן את מזהה הפרויקט שבו רוצים ליצור את לוח הבקרה. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.

השיטה מחזירה את הדף הראשון של הרשימה ואת 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:

  1. מתקינים ומגדירים את Terraform לפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את פרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
  2. משתמשים במשאב 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, היא עותק של רשימת לוחות הבקרה המעודכנת.

המאמרים הבאים