מסננים ומשתנים מוצמדים במרכז בקרה בהתאמה אישית ב-Cloud Monitoring מאפשרים לשנות באופן דינמי את הנתונים שמוצגים במרכז הבקרה מסרגל הכלים, בלי לערוך ווידג'טים ספציפיים. מסננים מוצמדים חלים על כל הווידג'טים שתומכים בתווית של המסנן, ואילו משתנים חלים על ווידג'טים ספציפיים כדי לשנות את השאילתות שלהם או לשלוט בחשיפה שלהם.
במאמר הזה מוסבר איך להגדיר מסננים ומשתנים מוצמדים במסוףGoogle Cloud . כדי להגדיר אותם באמצעות Cloud Monitoring API, קראו את המאמר יצירה וניהול של לוחות בקרה באמצעות API: מסננים של לוחות בקרה. כדי להחיל מסננים או קיבוצים רק על הסשן הנוכחי, קראו את המאמר הוספת מסננים זמניים למרכז בקרה בהתאמה אישית.
מידע על מסננים מוצמדים
מסנן מוצמד מכיל תווית, ערך ברירת מחדל אחד או יותר ורשימה של כל הערכים האפשריים. רשימת כל הערכים האפשריים נגזרת באופן דינמי מנתוני סדרות הזמנים שמוצגים בלוח הבקרה.
אי אפשר להחיל מסנן מוצמד על ווידג'טים ספציפיים. במקום זאת, המערכת משתמשת בכללים הבאים כדי לקבוע אם המסנן המוצמד יכול לשנות את הנתונים שמוצגים בווידג'ט:
אם בווידג'ט מוצגים נתונים שכוללים את מַפתח התווית שצוין במסנן המוצמד, ואם בווידג'ט לא צוין ערך למַפתח התווית הזה, המסנן המוצמד יכול לשנות את הנתונים שמוצגים.
לדוגמה, נניח שאתם מוסיפים את המסנן המוצמד 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"
},
מידע על משתנים
בדומה למסננים מוצמדים, למשתנה יש שם וסוג, וערך ברירת מחדל אחד או יותר. עם זאת, בניגוד למסננים מוצמדים שתמיד מבוססים על תוויות, משתנים לא חייבים להיות תלויים בתוויות.
כדי להחיל משתנה על ווידג'ט מסוים, משנים את השאילתה שהווידג'ט מכיל.
בסרגל הכלים של לוח הבקרה, שמות המשתנים מתחילים בסימן דולר $.
אם מופיע גם הסמל visibility גלוי, המשתנה שולט בחשיפה של ווידג'ט אחד לפחות.
משתנים שהוגדרו על ידי המשתמש יכולים להיות מבוססי-תווית או לכלול רק ערך:
משתנים מבוססי-תוויות הם כמו מסננים מוצמדים. המשתנים האלה מכילים מפתח תווית, ערך ברירת מחדל אחד או יותר של תווית ורשימה של כל ערכי התוויות האפשריים. רשימת כל הערכים האפשריים נגזרת באופן דינמי מנתוני סדרת הזמנים שמוצגים בלוח הבקרה.
משתנים מסוג "ערך בלבד" מכילים ערך ברירת מחדל אחד או יותר, ויכול להיות שכל הערכים האפשריים מפורטים בהם. אם לא תציינו ערך ברירת מחדל, האופרטור של התו הכללי לחיפוש,
(*), ייבחר כערך ברירת המחדל. כדי להגדיר את קבוצת כל הערכים האפשריים, אתם יכולים לספק מערך של ערכים או לכתוב שאילתת SQL.יש שלושה סוגים של משתנים מסוג ערך בלבד: Custom, Text Input ו-שאילתת SQL.
בהתאמה אישית: משתמשים באפשרות הזו כשרוצים למנות את רשימת כל הערכים האפשריים וגם להגדיר ערך ברירת מחדל אחד או יותר. לדוגמה, אפשר להגדיר את רשימת כל הערכים האפשריים ל-
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 שבו רוצים להגדיר מסננים ומשתנים מוצמדים:
-
כדי לקבל את ההרשאות שנדרשות להוספה או לשינוי של משתנים או מסננים מוצמדים באמצעות מסוף Google Cloud , בקשו מהאדמין לתת לכם בפרויקט את התפקיד עריכת מעקב (
roles/monitoring.editor) ב-IAM. להסבר על מתן תפקידים, קראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
מידע נוסף על תפקידים מופיע במאמר בקרת גישה באמצעות ניהול זהויות והרשאות גישה.
יצירה והצמדה של מסנן
כדי ליצור ולהצמיד מסנן שחל על כל הווידג'טים בלוח הבקרה שתומכים במסננים:
-
נכנסים לדף Dashboards במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא Monitoring.
- בסרגל הכלים של מסוף Google Cloud , בוחרים את הפרויקט ב- Google Cloud . להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
- בוחרים מרכז בקרה, עוברים לסרגל הכלים של מרכז הבקרה ולוחצים על settings Settings.
- בקטע מסננים, לוחצים על הוספת מסנן.
- לוחצים על arrow_drop_down תווית ובוחרים תווית. לדוגמה, אפשר לבחור באפשרות
zone. - כדי לאפשר למשתמשים לבחור כמה ערכים מתפריט הערכים של המסנן, בוחרים באפשרות בחירה מרובה. אם האפשרות בחירה מרובה לא מופעלת, המשתמשים יכולים לבחור רק אפשרות אחת מתפריט הערכים.
לוחצים על arrow_drop_down Default value ובוחרים את ערך ברירת המחדל, או הערכים, של התווית. כדי להתאים את כל הערכים, בוחרים באפשרות
*.אחרי שיוצרים את המסנן, הוא נוסף לסרגל הכלים של מרכז הבקרה. כדי לשנות באופן זמני את ערך המסנן, בוחרים את המסנן ואז בוחרים אפשרות מהתפריט.
לוחצים על סיום ואז על אישור.
כדי לשמור את השינויים במרכז הבקרה, לוחצים על Save בסרגל הכלים.
יצירת משתנה
כדי ליצור משתנה שחל על ווידג'טים ספציפיים בלוח הבקרה:
-
נכנסים לדף Dashboards במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא Monitoring.
- בסרגל הכלים של מסוף Google Cloud , בוחרים את הפרויקט ב- Google Cloud . להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
- בוחרים מרכז בקרה, עוברים לסרגל הכלים של מרכז הבקרה ולוחצים על settings Settings.
- בקטע משתנים, לוחצים על הוספת משתנה.
בוחרים את סוג המשתנה ומשלימים את תיבת הדו-שיח.
כדי ליצור משתנה שמבוסס על תווית, בוחרים באפשרות תווית. האפשרות הזו מתאימה כשרוצים משתנה שיש לו מפתח וערך של תווית, ואפשר להשתמש בו כמו מסנן מוצמד. רשימת כל הערכים האפשריים נגזרת באופן דינמי מנתוני סדרת הזמנים שמוצגים בלוח הבקרה. בתפריט Apply to charts אפשר לבחור ווידג'טים שהמשתנה ישנה את השאילתה שלהם. אפשר גם לעדכן את השאילתה על ידי עריכת הווידג'ט.
למשתנים של ערך בלבד, יש את האפשרויות הבאות:
SQL: משתמשים באפשרות הזו כשרוצים שהתוצאות של שאילתת SQL ייצרו את הרשימה של כל הערכים האפשריים.
מזינים ערך ברירת מחדל אחד או יותר, ומזינים שאילתת SQL שיוצרת את הרשימה של כל הערכים האפשריים. חשוב לוודא שתוצאת השאילתה היא טבלה עם עמודה אחת, שסוג הנתונים של העמודה הזו הוא מחרוזת, ושכל שורה בטבלה מכילה ערך מחרוזת ייחודי.
Custom: משתמשים באפשרות הזו כשרוצים לציין גם את רשימת הערכים האפשריים וגם ערך ברירת מחדל. לדוגמה, אפשר להגדיר את השדה Values לערך
prod, staging, dev, ואת השדה Default value לערךprod.הזנת טקסט: משתמשים באפשרות הזו כשרוצים לציין רשימה של ערכים שיוחלו כברירות מחדל.
לוחצים על סיום ואז על אישור.
כדי לשמור את השינויים במרכז הבקרה, לוחצים על Save בסרגל הכלים.
המעקב מוסיף את המשתנה לסרגל הכלים של מרכז הבקרה. השם בסרגל הכלים הוא סימן דולר
$ואחריו שם המשתנה. בסרגל הכלים יש תפריט שמאפשר לשנות את הערך של המשתנה.אופציונלי: מעבירים את המשתנה מסרגל הכלים של מרכז הבקרה לווידג'ט של מרכז הבקרה.
אתם יכולים להוסיף למרכז הבקרה ווידג'ט שמאפשר לשנות את הערך של המשתנה. אם תבצעו את השינוי הזה, המשתנה של סרגל הכלים יוסר. עם זאת, אפשר למקם את הווידג'ט ששולט במשתנה ליד הווידג'טים שהוא משפיע עליהם. במאמר הוספת ווידג'ט לניהול הערך של משתנה מוסבר איך עושים את זה.
מחילים את המשתנה על הווידג'טים. אם מעדכנים את השאילתה של ווידג'ט, כשמשנים את הערך של המשתנה, השאילתה משתנה והנתונים שמוצגים בווידג'ט משתנים. אתם יכולים גם להשתמש במשתנה כדי לקבוע אם ווידג'ט מסוים יהיה גלוי. מידע נוסף זמין בקטעים הבאים במסמך הזה:
הוספת ווידג'ט לניהול הערך של משתנה
מכיוון שמשתנים חלים על קבוצת משנה של ווידג'טים במרכז הבקרה, יכול להיות שתרצו לקבץ את אמצעי הבקרה של המשתנה ואת הווידג'טים שהוא חל עליהם. לדוגמה, אפשר ליצור קבוצה שניתן לכווץ או ליצור קטע במרכז הבקרה לתפריט המשתנים ולווידג'טים המשויכים. האסטרטגיה הזו גם מפשטת את סרגל הכלים, כי היא מסירה משתנים שלא רלוונטיים לכל הווידג'טים.
כדי לנהל את הערך של משתנה באמצעות ווידג'ט של לוח בקרה:
-
נכנסים לדף Dashboards במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא Monitoring.
- בסרגל הכלים של מסוף Google Cloud , בוחרים את הפרויקט ב- Google Cloud . להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
- בתיבת הדו-שיח Add widget, בקטע Layout בוחרים באפשרות Variable.
ממלאים את הפרטים בתיבת הדו-שיח ולוחצים על שמירה.
בלוח הבקרה מוצג ווידג'ט שמאפשר לבחור את הערך של המשתנה. אתם יכולים להעביר את הווידג'ט לקבוצה שאפשר לכווץ או לשנות את המיקום שלו.
כדי לשמור את השינויים במרכז הבקרה, לוחצים על Save בסרגל הכלים.
הגדרת החשיפה של ווידג'ט
כשמריצים שאילתה על נתונים בווידג'ט, אפשר להשתמש במשתנה כדי לקבוע אם הווידג'ט יוצג במרכז הבקרה. לדוגמה, נניח שלוח הבקרה מכיל ווידג'טים שמציגים נתונים של מערכות הייצור, וקבוצה אחרת של ווידג'טים שמציגים נתונים של מערכות ה-staging. כשמנפים באגים במהלך הפיתוח, יכול להיות שתרצו לראות רק את נתוני ה-staging. אם מגדירים את החשיפה של הווידג'טים בלוח הבקרה באמצעות משתנה, אפשר לעבור בין נתוני ייצור בלבד, נתוני Staging בלבד וכל הנתונים.
כל סוג של משתנה יכול לקבוע אם ווידג'ט יהיה גלוי או מוסתר.
כדי להגדיר את החשיפה של ווידג'ט:
-
נכנסים לדף Dashboards במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא Monitoring.
- בוחרים מרכז בקרה.
- בסרגל הכלים של הווידג'ט שרוצים להגדיר את החשיפה שלו, לוחצים על edit Edit.
- בחלונית תצוגה, מרחיבים את הקטע חשיפת הווידג'ט.
בוחרים משתנה ומשלימים את תיבת הדו-שיח.
לוחצים על סיום ואז על אישור.
כדי לשמור את השינויים במרכז הבקרה, לוחצים על Save בסרגל הכלים.
מרכז הבקרה מתרענן. אם לפחות ווידג'ט אחד במרכז הבקרה מוסתר בגלל אמצעי הבקרה על החשיפה, מוצג באנר במרכז הבקרה. כדי לראות את כל הווידג'טים, לוחצים על הצגת כל הווידג'טים.
כשמשתמשים במשתנה כדי לשלוט בחשיפה של לפחות ווידג'ט אחד במרכז הבקרה, בסרגל הכלים מופיע הסמל visibility Visible ליד שם המשתנה.
מגבלות
המגבלות הבאות חלות כשמגדירים את החשיפה של ווידג'ט:
ווידג'טים ארגוניים, כמו קבוצה שניתן לכווץ, כותרת קטע ווידג'טים של תצוגה יחידה, תמיד גלויים.
אתם יכולים למחוק משתנה שמופיע בפקדי החשיפה של ווידג'ט. הפעולה variable-delete גם מסירה כל הפניה למשתנה.
לא כל מרכזי הבקרה תומכים ביצירת משתנים. עם זאת, אם מרכז הבקרה מכיל משתנים, אתם יכולים להשתמש במשתנים האלה כדי לנהל את החשיפה של הווידג'טים במרכז הבקרה.
עדכון השאילתה של ווידג'ט
בקטע הזה מוסבר איך לכלול משתנים בשאילתה שהווידג'ט מנפיק. כתוצאה מכך, כשמשנים את הערך של המשתנה, השאילתה משתנה והנתונים שמוצגים בווידג'ט משתנים:
בתרשימים שמשתמשים בשאילתות SQL או PromQL, ובווידג'טים של חלונית היומנים, צריך לערוך את הווידג'ט ולשנות את השאילתה. בקטע הזה מוסבר איך לבצע את העריכות האלה.
בתרשימים שהגדרתם באמצעות תפריטים או באמצעות מצב סינון ישיר, השאילתה נערכת ב-Monitoring כשבוחרים את הווידג'ט באמצעות התפריט Apply to charts. לחלופין, אפשר לערוך את הווידג'ט, לעבור לשדה Filter ולבחור את המשתנה.
כדי ללמוד איך לעדכן את השאילתה של ווידג'ט עם משתנה מבוסס-תווית או משתנה של ערך בלבד, קראו את הקטעים הבאים:
- תחביר כללי לביטול ההפניה למשתנה
- ווידג'טים של חלונית היומנים
- תרשימים עם שאילתות PromQL
- תרשימים עם שאילתות SQL
תרשימים עם שאילתות סינון של Monitoring
כשמשתמשים בממשק מבוסס התפריטים כדי ליצור תרשים שמציג נתונים של סדרת זמנים, הבחירות שלכם מומרות למסנן Monitoring.
יצירת מסננים ומשתנים
המסוף
במאמרים הבאים מוסבר איך משתמשים במסוף 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"
המשתנה לדוגמה מבוסס על תווית המשאב |
${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'
המשתנה לדוגמה מבוסס על תווית המשאב |
${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 בפורמט תקין:
- עורכים את הווידג'ט.
- בסרגל הכלים, לוחצים על Insert variable filter ובוחרים את המשתנה שרוצים לעדכן את סעיף ה-
WHEREשלו. - בתיבת הדו-שיח שנפתחת, בודקים את הקוד שנוצר ולוחצים על Copy and close.
מדביקים את הקוד שהעתקתם בחלונית Query ועורכים אותו לפי הצורך.
לדוגמה, נניח שאתם יוצרים משתנה בשם
LogNameשיוצר רשימה של שמות יומנים ומציג את התוצאה בטבלה עם עמודה אחת בשםlog_name. אחר כך יוצרים תרשים, בוחרים באפשרות Insert variable filter ובוחרים את המשתנהLogName. הקוד הבא נוצר:WHERE IF(@LogName = '*', TRUE, LogName = @LogName)בדוגמה הזו, צריך לערוך את הקוד שנוצר ולהחליף את
LogName =ב-log_name =, כדי שניתן יהיה לבצע את צירוף הטבלאות:WHERE IF(@LogName = '*', TRUE, log_name = @LogName)לוחצים על הפעלה ואז על אישור.
כדי לשמור את השינויים במרכז הבקרה, לוחצים על 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 מופיעים כל המשתנים שמבוססים על תוויות וכל מפתחות התוויות.
כדי לעדכן את השאילתה של תרשים כך שתהיה תלויה במשתנה מבוסס-ערך:
- עורכים את התרשים.
- בחלונית השאילתה, לוחצים על Add filter ובוחרים מפתח תווית. לדוגמה, אפשר לבחור באפשרות zone.
- בתפריט ערך, בוחרים את המשתנה מסוג "ערך בלבד".
- לוחצים על אישור.
- כדי לשמור את השינויים במרכז הבקרה, לוחצים על 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"
המשתנה לדוגמה מבוסס על תווית המשאב |
${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} |
* |
".*" |
שינוי מסנן או משתנה מוצמד
כדי לשנות באופן זמני את הערך של מסנן או משתנה מוצמד שמוצג בסרגל הכלים של מרכז הבקרה, לוחצים על שם המסנן או המשתנה, ואז מזינים ערך או בוחרים אפשרות מהתפריט.
אם מרכז הבקרה מכיל טבלה שמוצגים בה נתונים של סדרת זמנים, אתם יכולים להוסיף מסננים זמניים או לשנות מסננים ומשתנים קבועים באמצעות הלחצן filter_list Filter dashboard to this value של התא. כשלוחצים על הכפתור הזה, המערכת מחילה מסנן זמני חדש או מעדכנת את הערך של מסנן או משתנה קיים. המסננים והמשתנים הקיימים מתעדכנים כשמפתח התווית של עמודת הטבלה תואם למפתח התווית של מסנן או משתנה.
כדי לשנות את ההגדרות של מסנן או משתנה מוצמדים:
-
נכנסים לדף Dashboards במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא Monitoring.
- בסרגל הכלים של מסוף Google Cloud , בוחרים את הפרויקט ב- Google Cloud . להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
- בסרגל הכלים של מרכז הבקרה, לוחצים על settings הגדרות.
- מוצאים את המסנן או המשתנה שרוצים לשנות ומרחיבים את ההגדרה שלו.
- כשמסיימים לבצע את השינויים, לוחצים על אישור.
- כדי לשמור את השינויים במרכז הבקרה, לוחצים על Save בסרגל הכלים.
מחיקת מסנן או משתנה מוצמד
כדי למחוק מסנן או משתנה מוצמד:
-
נכנסים לדף Dashboards במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא Monitoring.
- בסרגל הכלים של מסוף Google Cloud , בוחרים את הפרויקט ב- Google Cloud . להגדרות של App Hub, בוחרים את הפרויקט המארח או את פרויקט הניהול של App Hub.
- בסרגל הכלים של מרכז הבקרה, לוחצים על settings הגדרות.
- מוצאים את המסנן או המשתנה שרוצים להסיר ולוחצים על Delete.
- לוחצים על אישור.
- כדי לשמור את השינויים במרכז הבקרה, לוחצים על Save בסרגל הכלים.
מגבלות
מסננים ברמת מרכז הבקרה מסתמכים על סינון נתונים לפי צמדי מפתח/ערך. המסננים האלה לא חלים כשהנתונים לא תומכים בצמדי מפתח/ערך או כשהם לא תומכים במפתח הספציפי. לדוגמה, אי אפשר להשתמש במסנן ברמת לוח הבקרה כדי לשנות את הנתונים שמוצגים בווידג'ט של המעקב.
כדי להחיל משתנה על ווידג'ט, צריך לשנות את השאילתה של הווידג'ט. לא כל הווידג'טים תומכים בשינויים.