יצירת התראות לגבי מדדים

אתם יכולים ליצור התראת Monitoring שמודיעה לכם כשמדד של אשכול או של משימה ב-Managed Service for Apache Spark חורג מסף מסוים.

יצירת התראה

  1. פותחים את הדף Alerting במסוף Google Cloud .

  2. לוחצים על ‎+ Create Policy כדי לפתוח את הדף Create alerting policy.

    1. לוחצים על בחירת מדד.
    2. בתיבת הקלט "Filter by resource or metric name", מקלידים "dataproc" כדי להציג את המדדים של Managed Service for Apache Spark. עוברים בהיררכיה של המדדים של Cloud Managed Service for Apache Spark כדי לבחור מדד של אשכול, משימה, אצווה או סשן.
    3. לוחצים על אישור.
    4. לוחצים על Next כדי לפתוח את החלונית Configure alert trigger.
    5. מגדירים ערך סף להפעלת ההתראה.
    6. לוחצים על Next כדי לפתוח את החלונית Configure notifications and finalize alert.
    7. מגדירים את ערוצי ההתראות, התיעוד ואת שם מדיניות ההתראות.
    8. לוחצים על הבא כדי לבדוק את מדיניות ההתראות.
    9. לוחצים על Create Policy כדי ליצור את ההתראה.

התראות לדוגמה

בקטע הזה מתוארת התראה לדוגמה על משימה שנשלחה ל-Managed Service for Apache Spark, והתראה על משימה שמופעלת כאפליקציית YARN.

התראה על משימה ארוכה ב-Managed Service for Apache Spark

השירות Managed Service for Apache Spark מפיק את המדד dataproc.googleapis.com/job/state, שעוקב אחרי משך הזמן שבו משימה נמצאת במצבים שונים. המדד הזה נמצא ב-Metrics Explorer במסוף Google Cloud , במשאב Cloud Managed Service for Apache Spark Job ‏(cloud_dataproc_job). אתם יכולים להשתמש במדד הזה כדי להגדיר התראה שתיידע אתכם כשמצב המשימה RUNNING חורג מסף משך הזמן (מגבלת הסף המקסימלית : 7 ימים). כדי להגדיר התראה למשימה שצפויה לפעול יותר מ-7 ימים, קראו את המאמר התראה על אפליקציית YARN שפועלת זמן רב.

הגדרת התראה על משך העבודה

בדוגמה הזו משתמשים בשפת השאילתות של Prometheus (PromQL) כדי ליצור מדיניות התראות. מידע נוסף זמין במאמר יצירת מדיניות התראות שמבוססת על PromQL (מסוף).

sum by (job_id, state) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="RUNNING"
}) != 0

כדי להפעיל את ההתראה הזו כשמשימה פועלת במשך יותר מ-30 דקות, בכרטיסייה Configure trigger מגדירים את Evaluation Interval ל-30 דקות.

אפשר לשנות את השאילתה על ידי סינון לפי job_id כדי להחיל אותה על משימה ספציפית:

sum by (job_id) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="RUNNING",
  "job_id"="1234567890"
}) != 0

התראה על אפליקציית YARN שפועלת זמן רב

בדוגמה הקודמת מוצגת התראה שמופעלת כשמשימה של Managed Service for Apache Spark פועלת יותר מהזמן שצוין, אבל היא חלה רק על משימות שנשלחות לשירות Managed Service for Apache Spark באמצעות מסוף Google Cloud , Google Cloud CLI או קריאות ישירות ל-API של Managed Service for Apache Spark jobs. אתם יכולים גם להשתמש במדדי OSS כדי להגדיר התראות דומות שעוקבות אחרי זמן הריצה של אפליקציות YARN.

קודם כול, קצת רקע. YARN פולט מדדי זמן ריצה לכמה קטגוריות. כברירת מחדל, YARN שומר על 60, 300 ו-1,440 דקות כספי קטגוריות, ופולט 4 מדדים, running_0,‏ running_60,‏ running_300 ו-running_1440:

  • ‫running_0 מתעד את מספר המשימות עם זמן ריצה של בין 0 ל-60 דקות.

  • running_60 מתעד את מספר המשימות עם זמן ריצה של בין 60 ל-300 דקות.

  • running_300 מתעד את מספר המשימות עם זמן ריצה של בין 300 ל-1,440 דקות.

  • המדד running_1440 מתעד את מספר המשימות שזמן הריצה שלהן ארוך מ-1,440 דקות.

לדוגמה, משימה שפועלת במשך 72 דקות תתועד ב-running_60, אבל לא ב-running_0.

כדי לשנות את ערכי הסף האלה, אפשר להעביר ערכים חדשים לyarn:yarn.resourcemanager.metrics.runtime.bucketsמאפיין האשכול כשיוצרים אשכול Managed Service for Apache Spark. כשמגדירים ערכי סף מותאמים אישית לקטגוריות, צריך להגדיר גם שינויים ידניים של מדדים. לדוגמה, כדי לציין ערכי סף של 30, 60 ו-90 דקות, הפקודה gcloud dataproc clusters create צריכה לכלול את הדגלים הבאים:

  • ערכי הסף של הקטגוריות: ‑‑properties=yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90

  • שינויים במדדים: ‑‑metric-overrides=yarn:ResourceManager:QueueMetrics:running_0, yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60, yarn:ResourceManager:QueueMetrics:running_90

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

gcloud dataproc clusters create test-cluster  \
   --properties ^#^yarn:yarn.resourcemanager.metrics.runtime.buckets=30,60,90  \
   --metric-sources=yarn  \
   --metric-overrides=yarn:ResourceManager:QueueMetrics:running_0,yarn:ResourceManager:QueueMetrics:running_30,yarn:ResourceManager:QueueMetrics:running_60,yarn:ResourceManager:QueueMetrics:running_90

המדדים האלה מופיעים ב-Metrics Explorer במסוף Google Cloud , במשאב VM Instance‏ (gce_instance).

הגדרת התראות באפליקציית YARN

  1. יצירת אשכול עם קטגוריות ומדדים נדרשים מופעלים.

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

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

    • מגדירים את הסף להפעלת ההתראה.

התראה על משימה שנכשלה ב-Managed Service for Apache Spark

אתם יכולים גם להשתמש במדד dataproc.googleapis.com/job/state (ראו התראה על משימה ארוכה ב-Managed Service for Apache Spark) כדי לקבל התראה כשמשימה ב-Managed Service for Apache Spark נכשלת.

הגדרת ההתראה על המשרה נכשלה

בדוגמה הזו משתמשים בשפת השאילתות של Prometheus (PromQL) כדי ליצור מדיניות התראות. מידע נוסף זמין במאמר יצירת מדיניות התראות שמבוססת על PromQL (מסוף).

התראה ב-PromQL
sum by (job_id, state) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="ERROR"
}) != 0
הגדרת הטריגר של ההתראה

בדוגמה הבאה, ההתראה מופעלת כשמשימה כלשהי של Managed Service for Apache Spark נכשלת בפרויקט.

אפשר לשנות את השאילתה על ידי סינון לפי job_id כדי להחיל אותה על משימה ספציפית:

sum by (job_id) ({
  "__name__"="dataproc.googleapis.com/job/state",
  "monitored_resource"="cloud_dataproc_job",
  "state"="ERROR",
  "job_id"="1234567890"
}) != 0

התראה על חריגה בקיבולת של האשכול

‫Managed Service for Apache Spark מפיק את המדד dataproc.googleapis.com/cluster/capacity_deviation, שמדווח על ההבדל בין מספר הצמתים הצפוי באשכול לבין מספר הצמתים הפעילים של YARN. המדד הזה מופיע בGoogle Cloud מסוף Metrics Explorer במשאב Cloud Managed Service for Apache Spark Cluster. אתם יכולים להשתמש במדד הזה כדי ליצור התראה שמודיעה לכם כשקיבולת האשכול חורגת מהקיבולת הצפויה למשך זמן ארוך יותר מסף משך הזמן שצוין.

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

  • יצירה ועדכון של אשכולות: המדד capacity_deviation לא מופק במהלך פעולות של יצירה או עדכון של אשכולות.

  • פעולות אתחול של אשכול: פעולות אתחול מתבצעות אחרי הקצאת צומת.

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

הגדרת התראה על חריגה מהקיבולת

בדוגמה הזו משתמשים בשפת השאילתות של Prometheus (PromQL) כדי ליצור מדיניות התראות. מידע נוסף זמין במאמר יצירת מדיניות התראות שמבוססת על PromQL (מסוף).

{
  "__name__"="dataproc.googleapis.com/cluster/capacity_deviation",
  "monitored_resource"="cloud_dataproc_cluster"
} != 0

בדוגמה הבאה, ההתראה מופעלת כשהסטייה בקיבולת האשכול היא לא אפס במשך יותר מ-30 דקות.

הצגת ההתראות

כשמופעלת התראה על ידי תנאי סף של מדד, המערכת יוצרת אירוע (incident) ואירוע (event) תואם. אפשר לראות את האירועים בדף Monitoring alerting במסוף Google Cloud .

אם הגדרתם מנגנון התראות במדיניות ההתראות, כמו התראה באימייל או התראת סמס,‏ Monitoring שולח התראה על האירוע.

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