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

המשאב Dashboard ב-Cloud Monitoring API מאפשר ליצור ולנהל באופן פרוגרמטי מרכזי בקרה בהתאמה אישית ואת הווידג'טים שלהם, בקנה מידה נרחב. אתם יכולים לנהל את מרכזי הבקרה בהתאמה אישית באמצעות Google Cloud CLI,‏ Terraform או קריאות REST ל-methods‏ create,‏ list,‏ get,‏ patch ו-delete.

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

מידע על מרכזי בקרה

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

פריסות של מרכז הבקרה

הפריסות קובעות את הסדר של הרכיבים במרכז הבקרה. ה-API מספק את הפריסות הבאות:

  • ‫GridLayout: מחלק את המקום הפנוי לעמודות אנכיות ברוחב שווה ומסדר קבוצה של ווידג'טים לפי אסטרטגיית row-first.

  • ‫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 תומך בסגנונות התצוגה הבאים:

    • תרשימי קו
    • תרשימי עמודות
    • תרשימי שטח מוערמים
    • מפות חום

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

  • ווידג'טים שמציגים נתונים ממאפיין אחד, כמו הערך האחרון:

    • PieChart: הצגת הערכים האחרונים של אוסף סדרות זמנים, כשכל סדרת זמנים תורמת פרוסה אחת לעוגה.

    • ‫Scorecard: הצגת הערך האחרון של סדרת זמנים אחת, והקשר בין הערך הזה לסף אחד או יותר.

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

  • ווידג'טים שמציגים מידע על מדיניות התראות או על התראות:

    • ‫AlertChart: הצגת סיכום של מדיניות התראות עם תנאי אחד. הווידג'ט הזה מציג את הנתונים בתרשים קו, את הסף ואת מספר ההתראות הפתוחות.

    • ‫IncidentList: הצגת רשימה של התראות. אפשר להגדיר את הווידג'ט כך שיוצגו בו התראות לגבי כללי מדיניות ספציפיים או לגבי סוגים ספציפיים של משאבים.

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

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

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

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

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

    • CollapsibleGroup: הצגת אוסף של ווידג'טים. אתם יכולים לכווץ את התצוגה של קבוצה.

    • ‫SingleViewGroup: הצגת ווידג'ט אחד מתוך אוסף של ווידג'טים. אתם יכולים לבחור איזה ווידג'ט להציג.

    • SectionHeader: יוצר קו הפרדה אופקי במרכז הבקרה ורשומה בתוכן העניינים של מרכז הבקרה.

    • ‫Text: הצגת תוכן טקסטואלי, כטקסט גולמי או כמחרוזת Markdown.

    כדי להוסיף את הווידג'טים של הטקסט והארגון למרכז בקרה, צריך להיות לו MosaicLayout.

בנוסף לאובייקטים האלה, אפשר גם להוסיף פלייסהולדר ריק למרכז הבקרה.

לדוגמה, כך נראה ייצוג ה-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.

אם יוצרים מסנן או משתנה מוצמד, סרגל הכלים של מרכז הבקרה המותאם אישית מתעדכן ב-Monitoring כדי להציג מסנן. במסננים מוצמדים, השם של המסנן בסרגל הכלים הוא השם של המסנן המוצמד. במשתנים, השם של מסנן סרגל הכלים הוא סימן דולר $ ואחריו שם המשתנה. כל מסנן בסרגל הכלים מכיל תפריט שמאפשר לשנות את הערך של המשתנה או המסנן המוצמד שמשויך אליו. במשתנים, אתם יכולים להחליף את המסנן בסרגל הכלים בווידג'ט של מרכז הבקרה. מידע נוסף זמין במאמר לוח בקרה עם ווידג'ט של 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" ]
    },
    
  • אופציונלי: כדי לציין את רשימת כל הערכים האפשריים למשתנה מסוג ערך בלבד, מגדירים את השדה 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}. ההשוואה חייבת להשתמש בביטוי רגולרי.

  • כדי להחיל רק את הערך של משתנה מסוג ערך בלבד, משתמשים ב-${my_value_only_variable}. למשתנים של ערכים בלבד, אל תכללו משפט .value. ההשוואה חייבת להשתמש בביטוי רגולרי.

ווידג'טים בחלונית Logs

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

המסוף

לדוגמה, בשאילתה הבאה נעשה שימוש בביטוי רגולרי כדי להשוות בין הערך של השדה 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)

כשאפשרות התפריט של המשתנה מאפשרת למשתמשים לבחור כמה ערכים, צריך להמיר את ערך המשתנה לסוג נתונים של GoogleSQL באמצעות הפונקציה CAST. השאילתה הבאה ממחישה את התחביר הזה:

IF(ARRAY_LENGTH(CAST(@my_value_only_variable)) = 0, TRUE,
   severity IN UNNEST(@my_value_only_variable))

מומלץ להשתמש בהצהרה IF שמוצגת בדוגמאות הקודמות, כי SQL לא מפרש את האופרטור של התו הכללי לחיפוש כ"כל ערך". לכן, אם משמיטים את ההצהרה IF ובוחרים באופרטור התו הכללי לחיפוש, התוצאה של השאילתה היא טבלה ריקה. בדוגמה השנייה, הפונקציה UNNEST ממירה את המערך לטבלה.

כדי להוסיף סעיף WHERE בפורמט תקין:

  1. עורכים את הווידג'ט.
  2. בסרגל הכלים, לוחצים על Insert variable filter ובוחרים את המשתנה שרוצים לעדכן את סעיף ה-WHERE שלו.
  3. בתיבת הדו-שיח שנפתחת, בודקים את הקוד שנוצר ולוחצים על Copy and close.
  4. מדביקים את הקוד שהעתקתם בחלונית Query ועורכים אותו לפי הצורך.

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

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

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

    WHERE IF(@LogName = '*', TRUE, log_name = @LogName)
    
  5. לוחצים על הפעלה ואז על אישור.

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

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
    }
  }
],

כשאפשרות התפריט של המשתנה מאפשרת למשתמשים לבחור כמה ערכים, צריך להמיר את ערך המשתנה לסוג נתונים של GoogleSQL באמצעות הפונקציה CAST. השאילתה הבאה ממחישה את התחביר הזה:

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 מופיעים כל המשתנים שמבוססים על תוויות וכל מפתחות התוויות.

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

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

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

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

תחביר הערך
שנבחר
ביטוי סינון פתור
${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

התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

gcloud init

Terraform

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

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

  2. הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.

    איך נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת?

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

    gcloud auth application-default login

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

למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .

REST

כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

    התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

יצירת מרכז בקרה

כדי ליצור מרכז בקרה חדש בהתאמה אישית, מפעילים את ה-method‏ dashboards.create ומספקים לה את הפריסה ואת הווידג'טים שיוצגו במרכז הבקרה.

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

לדוגמה, כדי לשכפל מרכז בקרה:

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

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

Terraform

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

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

  1. מתקינים ומגדירים את Terraform בפרויקט. להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
  2. משתמשים במשאב Terraform‏ google_monitoring_dashboard.

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

    • ‫dashboard_json: ייצוג ב-JSON של מרכז הבקרה, בפורמט Dashboard.

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

    • ‫parent: השם המלא של הפרויקט. לדוגמה, אפשר להגדיר את השדה הזה לערך "projects/PROJECT_ID", כאשר PROJECT_ID הוא המזהה של הפרויקט ב- Google Cloud . להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.

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

בדוגמאות נוצר מרכז בקרה לדוגמה באמצעות הקובץ my-dashboard.json. אתם יכולים לנהל את לוח הבקרה דרך מסוףGoogle Cloud .

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

מחיקת מרכזי בקרה

כדי למחוק מרכז בקרה בהתאמה אישית, מפעילים את השיטה dashboards.delete ומציינים את מרכז הבקרה שרוצים למחוק.

gcloud

כדי למחוק מרכז בקרה בהתאמה אישית, משתמשים ב-gcloud monitoring dashboards delete ומציינים את המזהה המלא של מרכז הבקרה שרוצים למחוק:

gcloud monitoring dashboards delete DASHBOARD_ID --project=PROJECT_ID

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

  • ‫PROJECT_ID: מזהה הפרויקט. להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
  • ‫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}: משתנה סביבה שבו מאוחסן מזהה הפרויקט שבו רוצים ליצור את מרכז הבקרה. להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
  • ‫${DASHBOARD_ID}: משתנה סביבה שבו מאוחסן המזהה של מרכז הבקרה.

אם הפעולה בוצעה ללא שגיאות, ה-method מחזירה תשובה ריקה. אחרת, תוחזר שגיאה.

הצגת רשימה של לוחות בקרה

כדי להציג רשימה של כל מרכזי הבקרה בהתאמה אישית ששייכים לפרויקט, מפעילים את ה-method‏ dashboards.list ומציינים את מזהה הפרויקט.

gcloud

כדי להציג את כל מרכזי הבקרה בהתאמה אישית של הפרויקט, משתמשים בפקודה gcloud monitoring dashboards list:

gcloud monitoring dashboards list --project=PROJECT_ID

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

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

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

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

עימוד התגובה של הרשימה

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

gcloud

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

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

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

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

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

ה-method מחזירה את הדף הראשון של הרשימה ואת nextPageToken. לדוגמה:

{
  "dashboards" : [
    {
      "displayName" : "Grid Layout Example",
      "gridLayout" : {
        "widgets" : [
            { ... },
            { ... },
            { ... },
          ]
      }
    }
  ]
},
"nextPageToken": "ChYqFDEyMzkzMzUwNzg0OTE1MDI4MjM3"

בכל דף שנותר, צריך לכלול בבקשה את הערך המתאים של nextPageToken.

קבלת מרכז בקרה

כדי לקבל מרכז בקרה ספציפי בהתאמה אישית לפרויקט, מפעילים את ה-method‏ dashboards.get, עם מזהה מרכז הבקרה.

gcloud

כדי לקבל מרכז בקרה ספציפי בהתאמה אישית, משתמשים בפקודה gcloud monitoring dashboards describe ומציינים את מזהה מרכז הבקרה:

gcloud monitoring dashboards describe DASHBOARD_ID --format=json --project=PROJECT_ID

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

  • ‫PROJECT_ID: מזהה הפרויקט. להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
  • ‫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

כדי לקבל לוח בקרה ספציפי בהתאמה אישית, שולחים את מזהה לוח הבקרה לנקודת הקצה (endpoint) Dashboard.

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

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

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

בביטוי הקודם, ${DASHBOARD_ID} הוא משתנה סביבה שמאחסן את השם המלא של לוח הבקרה.

התגובה שמוחזרת מה-method דומה לדוגמה הבאה:

{
  "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: מזהה הפרויקט. להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
  • ‫DASHBOARD_ID: המזהה של מרכז הבקרה.

למידע נוסף, עיינו במפרט של gcloud monitoring dashboards update.

בדוגמה הקודמת עדכנו מרכז בקרה קיים בהתאמה אישית באמצעות הקובץ my-updated-dashboard.json. התשובה, שכוללת ערך etag חדש, היא עותק של רשימת מרכזי הבקרה המעודכנת.

Terraform

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

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

  1. מתקינים ומגדירים את Terraform בפרויקט. להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
  2. משתמשים במשאב Terraform‏ google_monitoring_dashboard.

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

    • ‫dashboard_json: ייצוג ב-JSON של מרכז הבקרה, בפורמט Dashboard.

    • ‫parent: השם המלא של הפרויקט. לדוגמה, אפשר להגדיר את השדה הזה לערך "projects/PROJECT_ID", כאשר PROJECT_ID הוא המזהה של הפרויקט ב- Google Cloud . להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.

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}: משתנה סביבה שבו מאוחסן מזהה הפרויקט שבו רוצים ליצור את מרכז הבקרה. להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
  • ‫${DASHBOARD_ID}: משתנה סביבה שבו מאוחסן המזהה של מרכז הבקרה.

בדוגמה הקודמת עדכנו מרכז בקרה קיים בהתאמה אישית באמצעות הקובץ my-updated-dashboard.json. התשובה, שכוללת ערך etag חדש, היא עותק של רשימת מרכזי הבקרה המעודכנת.

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