יצירה וניהול של משתנים ומסננים מוצמדים

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

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

במאמר הזה מוסבר איך ליצור במסוף Google Cloud משתנים ומסננים מוצמדים. מידע על השימוש ב-Cloud Monitoring API זמין במאמר יצירה וניהול של מרכזי בקרה באמצעות API: מסננים של מרכזי בקרה.

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

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

מידע על מסננים מוצמדים

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

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

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

    לדוגמה, נניח שמוסיפים את המסנן המוצמד cluster_name: mycluster. לאחר מכן, בתרשימים יוצגו באופן אוטומטי רק סדרות הזמן שיש להן תווית cluster_name עם הערך mycluster. באופן דומה, השאילתות בווידג'טים של חלונית היומנים ישתנו ל-resource.labels."cluster_name"="mycluster", ובתרשימים יוצגו באופן אוטומטי רק סדרות הזמן שכוללות את התווית במסנן המוצמד.

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

ב-API, מסננים מוצמדים מוגדרים על ידי המבנה DashboardFilter. לדוגמה, המבנה הבא מגדיר מסנן מוצמד. סדרות זמן עם תווית zone שהערך שלה הוא us-central1-c תואמות למסנן המוצמד.

{
   "labelKey": "zone",
   "stringValue": "us-central1-c",
   "valueType": "STRING",
   "filterType": "RESOURCE_LABEL"
},

מידע על משתנים

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

משתנה מוחל על ווידג'ט מסוים על ידי שינוי השאילתה שהווידג'ט מכיל.

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

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

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

  • משתנים עם ערך בלבד מכילים ערך ברירת מחדל אחד או יותר, ויכול להיות שהם יכללו רשימה של כל הערכים האפשריים. אם לא מציינים ערך ברירת מחדל, האופרטור הכללי, (*), נבחר כערך ברירת המחדל. כדי להגדיר את קבוצת כל הערכים האפשריים, צריך לספק מערך של ערכים או לכתוב שאילתת SQL.

    יש שלושה סוגים של משתנים עם ערך בלבד: Custom,‏ Text Input ו-SQL Query.

    • מותאם אישית: משתמשים באפשרות הזו כשרוצים לפרט את רשימת כל הערכים האפשריים וגם להגדיר ערך ברירת מחדל אחד או יותר. לדוגמה, אפשר להגדיר את רשימת כל הערכים האפשריים כ-prod, staging, dev ולהגדיר את ערך ברירת המחדל כ-prod.

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

    • שאילתת SQL: משתמשים באפשרות הזו כשרוצים ליצור את רשימת הערכים האפשריים באמצעות שאילתת SQL. המשתנים האלה מיועדים להחלה על תרשימים שנוצרו באמצעות Observability Analytics.

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

      SELECT log_name
      FROM `VIEW`
      GROUP BY log_name
      

      שאילתת ה-SQL לא יכולה להיות תלויה במשתנה.

יש משתנה אחד שמוגדר על ידי המערכת, @__project_id. אפשר להשתמש במשתנה הזה רק בסעיף FROM של שאילתות SQL. הוראות להחלת המשתנה הזה על שאילתה מפורטות במאמר תרשימים עם שאילתות SQL.

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

ב-API, משתנים מוגדרים על ידי המבנה DashboardFilter. לדוגמה, המבנה הבא מגדיר את המשתנה my_zone_variable שפועל על תווית המשאב zone. סדרות זמן שיש להן תווית zone שהערך שלה הוא us-central1-c תואמות למשתנה.

{
   "labelKey": "zone",
   "stringValue": "us-central1-c",
   "templateVariable": "my_zone_variable",
   "valueType": "STRING",
   "filterType": "RESOURCE_LABEL",
},

לפני שמתחילים

מבצעים את השלבים הבאים עבור Google Cloud הפרויקט שבו רוצים להגדיר מסננים ומשתנים מוצמדים:

יצירה של מסנן והצמדה שלו

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

  1. במסוף Google Cloud , עוברים לדף  Dashboards:

    עוברים אל מרכזי בקרה.

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.

  2. בסרגל הכלים של מסוף Google Cloud , בוחרים את Google Cloud הפרויקט. בהגדרות של מרכז האפליקציות, בוחרים את הפרויקט המארח או את פרויקט הניהול של מרכז האפליקציות.
  3. בוחרים לוח בקרה, עוברים לסרגל הכלים של לוח הבקרה ולוחצים על הגדרות.
  4. בקטע Filters (מסננים), לוחצים על Add a filter (הוספת מסנן).
  5. לוחצים על תווית ובוחרים תווית. לדוגמה, אפשר לבחור באפשרות zone.
  6. כדי לאפשר למשתמש לבחור כמה ערכים מהתפריט של ערכי המשתנה, בוחרים באפשרות בחירה מרובה. אם האפשרות בחירה מרובה לא מופעלת, המשתמשים יכולים לבחור רק אפשרות אחת מתוך תפריט הערכים.
  7. לוחצים על ערך ברירת מחדל ואז בוחרים את ערך ברירת המחדל או הערכים של התווית. כדי להתאים את כל הערכים, בוחרים באפשרות *.

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

  8. לוחצים על סיום ואז על אישור.

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

יצירת משתנה

כדי ליצור משתנה שחל על ווידג'טים ספציפיים במרכז הבקרה:

  1. במסוף Google Cloud , עוברים לדף  Dashboards:

    עוברים אל מרכזי בקרה.

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.

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

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

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

    • SQL: משתמשים באפשרות הזו כשרוצים שהתוצאות של שאילתת SQL ייצרו את רשימת כל הערכים האפשריים.

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

    • התאמה אישית: משתמשים באפשרות הזו כשרוצים לציין גם את רשימת הערכים האפשריים וגם ערך ברירת מחדל. לדוגמה, אפשר להגדיר את השדה ערכים כ-prod, staging, dev ואת ערך ברירת המחדל כ-prod.

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

  6. לוחצים על סיום ואז על אישור.

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

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

  8. אופציונלי: מעבירים את המשתנה מסרגל הכלים של מרכז הבקרה לווידג'ט של מרכז הבקרה.

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

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

הוספת ווידג'ט לניהול הערך של משתנה

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

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

  1. במסוף Google Cloud , עוברים לדף  Dashboards:

    עוברים אל מרכזי בקרה.

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.

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

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

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

הגדרת החשיפה של ווידג'ט

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

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

כדי להגדיר את החשיפה של ווידג'ט:

  1. במסוף Google Cloud , עוברים לדף  Dashboards:

    עוברים אל מרכזי בקרה.

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.

  2. בוחרים מרכז שליטה.
  3. עוברים לסרגל הכלים של הווידג'ט שרוצים להגדיר את הנראות שלו, ואז לוחצים על עריכה.
  4. בחלונית Display (תצוגה), מרחיבים את האפשרות Widget visibility (חשיפת הווידג'ט).
  5. בוחרים משתנה ומשלימים את תיבת הדו-שיח.

  6. לוחצים על סיום ואז על אישור.

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

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

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

מגבלות

המגבלות הבאות חלות כשמגדירים את רמת החשיפה של ווידג'ט:

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

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

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

עדכון השאילתה של ווידג'ט

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

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

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

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

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

המסוף

במסמכים הבאים מוסבר איך משתמשים במסוף 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} * ".*"

שינוי של מסנן או משתנה מוצמדים

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

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

כדי לשנות את ההגדרה של מסנן מוצמד או של משתנה:

  1. במסוף Google Cloud , עוברים לדף  Dashboards:

    עוברים אל מרכזי בקרה.

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.

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

מחיקת מסנן או משתנה מוצמדים

כדי למחוק מסנן מוצמד או משתנה:

  1. במסוף Google Cloud , עוברים לדף  Dashboards:

    עוברים אל מרכזי בקרה.

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.

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

מגבלות

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

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

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