הוספת הערות להתראות באמצעות תוויות

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

מידע על התוויות

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

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

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

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

תוויות שהוגדרו מראש

תוויות מוגדרות מראש כלולות בתיאורי משאבים. צריך למלא את התוויות האלה כשכותבים נתוני סדרות זמן. התוויות האלה מציגות מידע על המדד שנאסף או על המשאב שהמדד נכתב לגביו. לדוגמה, התוויות בסדרת זמן יכולות לזהות מכונה וירטואלית (VM), אזור, Google Cloud פרויקט וסוג מכשיר. כשמערכת Monitoring יוצרת התראה על סמך סדרת הזמן הזו, ההתראה מקבלת בירושה את התוויות האלה.

תוויות של מרכז האפליקציות

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

איך רואים את התוויות

אפשר לראות את התוויות של מדיניות התראות או של התראה בדף הפרטים של התראה, בדף הפרטים של מדיניות התראות ובחלק מהההתראות.

  • מדיניות התראות: תוויות סטטיות בהגדרת המשתמש מופיעות בקטע תוויות משתמש. תוויות דינמיות שהוגדרו על ידי המשתמש ותוויות שהוגדרו מראש לא מוצגות.
  • התראות: תוויות סטטיות בהגדרת המשתמש מופיעות בקטע תוויות מדיניות, ותוויות דינמיות בהגדרת המשתמש מופיעות בקטע תוויות מדדים. תוויות מוגדרות מראש מפורטות בקטעים Monitored Resource Labels ו-Metric Labels.
  • התראות: תוויות מוגדרות מראש ותוויות שהוגדרו על ידי המשתמש מפורטות בסוגי ההתראות הבאים:

    • אימייל
    • Google Chat
    • PagerDuty
    • Pub/Sub
    • Webhook

דוגמה: הוספת תוויות מוגדרות על ידי המשתמש עם ערכים דינמיים

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

  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.9,
    "criticality", "CRITICAL", "", ""
  )
or ignoring (criticality)
  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.8,
    "criticality", "WARNING", "", ""
  )
or ignoring (criticality)
  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.7,
    "criticality", "INFO", "", ""
  )
or ignoring (criticality)
  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]),
    "criticality", "GOOD", "", ""
  )

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

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

ה-policy handler מעבד את נתוני השימוש במעבד ומוציא סדרת זמן שמציינת מתי התנאי מתקיים. בדוגמה הקודמת, התנאי מתקיים כשניצול המעבד הוא לפחות 70%. לכל סדרת זמן של נתונים, רכיב ה-handler של המדיניות יכול ליצור אחת מארבע סדרות זמן:

שם סדרת הזמנים של הפלט התנאי מתקיים תיאור
"GOOD" לא לסדרת הזמן הזו יש את אותן תוויות כמו לסדרת הזמן של הקלט. אין לו תווית חומרה.
‫"CRITICAL" כן ניצול המעבד הוא לפחות 90%. לסדרת הזמן של הפלט יש את אותן תוויות כמו לסדרת הזמן GOOD, בתוספת תוויות חומרה עם הערך CRITICAL.
‫"WARNING" כן ניצול המעבד הוא לפחות 80% אבל פחות מ-90%. לסדרת הזמן של הפלט יש את אותן תוויות כמו לסדרת הזמן GOOD, בתוספת תוויות חומרה עם הערך WARNING.
"INFO" כן ניצול המעבד הוא לפחות 70% אבל פחות מ-80%. לסדרת הזמן של הפלט יש את אותן תוויות כמו לסדרת הזמן GOOD, בתוספת תווית חומרה עם הערך INFO.

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

שיטות מומלצות

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

  • באובייקט MetricThreshold, מחליפים את ערכי ברירת המחדל בשדות הבאים:

    • השדה duration: צריך להגדיר ערך שאינו אפס.
    • שדה evaluationMissingData: מגדירים כך שההתראות ייסגרו כשהנתונים מפסיקים להגיע. כשמשתמשים ב-Cloud Monitoring API, צריך להגדיר את השדה הזה לערך EVALUATION_MISSING_DATA_INACTIVE. כשמשתמשים במסוף Google Cloud , מגדירים את השדה לערך Missing data points treated as values that don't violate the policy condition (נקודות נתונים חסרות נחשבות לערכים שלא מפרים את תנאי המדיניות).
  • באובייקט AlertStrategy, מגדירים את השדה autoClose לערך המינימלי שלו, שהוא 30 דקות. כשמשתמשים ב-Cloud Monitoring API, צריך להגדיר את השדה הזה לערך 30m.

מידע נוסף זמין במאמר בנושא נתוני מדדים חלקיים.

תהליך ההתראה

נניח שמדידות השימוש במעבד נמוכות מ-70% כשיוצרים את מדיניות ההתראות. הרצף הבא מדגים איך התראות נפתחות ונסגרות:

  1. מכיוון שהמדידות של ניצול המעבד נמוכות מ-70%, המטפל במדיניות יוצר את סדרת הזמן GOOD ולא נפתחות התראות.

  2. עכשיו נניח שרמת ניצול המעבד עולה ל-93%. ה-handler של המדיניות מפסיק ליצור את נתוני הסדרה העיתית 'טוב' ומתחיל ליצור נתונים לסדרה העיתית 'קריטי'.

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

  3. נניח שרמת ניצול המעבד יורדת ל-75%. ה-handler של המדיניות מפסיק ליצור את סדרת הזמן 'CRITICAL' ומתחיל ליצור את סדרת הזמן 'INFO'.

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

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

  4. לבסוף, נניח ששיעור השימוש במעבד יורד ל-45%. הערך הזה נמוך מכל ערכי הסף, ולכן המטפל במדיניות מפסיק ליצור את סדרת הזמן INFO ומתחיל ליצור את סדרת הזמן GOOD.

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

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

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