יצירת התראות על מדדים של Dataproc

אתם יכולים ליצור התראה למעקב שתשלח לכם הודעה כשמדד של אשכול או משימה ב-Dataproc חורג מסף שצוין.

יצירת התראה

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

  2. לוחצים על + Create Policy כדי לפתוח את הדף יצירת מדיניות התראות.

    1. לוחצים על בחירת מדד.
    2. בתיבת הקלט 'סינון לפי שם משאב או מדד', מקלידים 'dataproc' כדי להציג רשימה של מדדי Dataproc. עוברים בהיררכיה של מדדי Cloud Dataproc כדי לבחור מדד של אשכול, משימה, אצווה או סשן.
    3. לוחצים על אישור.
    4. לוחצים על הבא כדי לפתוח את החלונית הגדרת טריגר להתראה.
    5. מגדירים ערך סף להפעלת ההתראה.
    6. לוחצים על הבא כדי לפתוח את החלונית הגדרת התראות וסיום ההתראה.
    7. הגדרת ערוצי התראות, תיעוד ושם מדיניות ההתראות.
    8. לוחצים על הבא כדי לעיין במדיניות ההתראות.
    9. לוחצים על Create Policy כדי ליצור את ההתראה.

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

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

התראה על משימה ארוכה ב-Dataproc

‫Dataproc פולט את המדד dataproc.googleapis.com/job/state, שמתעד כמה זמן עבר מאז שהעבודה הייתה במצבים שונים. המדד הזה נמצא ב Google Cloud Metrics Explorer במסוף, במשאב Cloud Dataproc Job (cloud_dataproc_job). אתם יכולים להשתמש במדד הזה כדי להגדיר התראה שתשלח אליכם אם משך הזמן של מצב העבודה חורג מסף מסוים (הסף המקסימלי הוא 7 ימים).RUNNING כדי להגדיר התראה על משימה שצפויה לפעול יותר מ-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 שפועלת במשך זמן רב

בדוגמה הקודמת מוצגת התראה שמופעלת כשעבודת Dataproc פועלת יותר זמן מהמשך שצוין, אבל היא רלוונטית רק לעבודות שנשלחות לשירות Dataproc באמצעות מסוף Google Cloud , Google Cloud CLI או קריאות ישירות ל-Dataproc jobs API. אפשר גם להשתמש במדדי 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 מאפיין האשכול במהלך יצירת אשכול Dataproc. כשמגדירים ערכי סף מותאמים אישית של משבצות, צריך להגדיר גם החלפות של מדדים. לדוגמה, כדי לציין ספי חלוקה לקטגוריות של 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 חורג מסף שצוין.

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

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

התראה על משימה שנכשלה ב-Dataproc

אפשר גם להשתמש במדד dataproc.googleapis.com/job/state (ראו התראה על עבודת Dataproc שפועלת במשך זמן רב) כדי לקבל התראה כשעבודת Dataproc נכשלת.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

הצגת ההתראות

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

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

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