תארו לעצמכם שמערכת הייצור קורסת ב-3 לפנות בוקר. התראות מציפות ערוץ Slack כללי עם 15 אנשים. לכולם מופעל מצב "לא להפריע", חלק ישנים, אחרים בחופשה. שעה לאחר מכן מתברר שהאדם התורן היה במשמרת של אתמול. זה נפוץ אם לוח הזמנים של התורנות אינו אוטומטי. Grafana OnCall היא מערכת ניהול תורנות המטפלת ברוטציות משמרות, הסלמה של אירועים, ומבטיחה שכל התראה קריטית מגיעה לאדם האחראי. הצוות שלנו פרס את OnCall ביותר מ-50 פרויקטים ויודע להגדיר אותה לכל תשתית — משירות בודד ועד אלף שירותים. עם OnCall אתם מפסיקים לאבד התראות ולשכוח מי בתורן. המערכת משייכת אוטומטית את האדם האחראי, מבצעת הסלמה בכוח אם אין תגובה, ומסובבת משמרות. צרו קשר — נתאים הגדרה לקנה המידה שלכם ונתקין אותה במפתח פתוח.
מה זה Grafana OnCall?
Grafana OnCall היא מערכת ניהול תורנות בקוד פתוח המשולבת במערכת האקולוגית של Grafana. היא זמינה כשירות מנוהל ב-Grafana Cloud או לפריסה עצמית דרך Docker או Kubernetes. קוד המקור נמצא ב-GitHub. מאגר GitHub של Grafana OnCall
ישויות מפתח: אינטגרציה, שרשרת הסלמה, לוח זמנים לתורנות, ומדיניות התראות. כל ישות מוגדרת דרך ממשק האינטרנט או ה-API.
כיצד Grafana OnCall מאיצה את תגובת האירועים
שרשרת הסלמה מוגדרת כראוי מקצרת את זמן התגובה מ-15–20 דקות ל-2–3 דקות — פי 5 מהר יותר מתהליכים ידניים. איך זה עובד? התראה מגיעה לאדם התורן; אם לא אושרה תוך 5 דקות, ההסלמה עוברת לבא בתור בשרשרת. לאחר 10 דקות נוספות, כל הצוות מקבל הודעה ב-Slack; לאחר 15, המנכ"ל הטכנולוגי מקבל שיחת טלפון. כל שלב ניתן להגדרה עצמאית.
השוו ערוצי התראות לפי מהירות ואמינות:
| ערוץ | זמן אספקה | אמינות | עוקף מצב "לא להפריע" |
|---|---|---|---|
| הודעה ישירה ב-Slack | 1–2 שניות | בינונית | לא |
| טלגרם | 1–2 שניות | בינונית | לא |
| SMS | 5–30 שניות | גבוהה | כן |
| שיחת קול | 10–20 שניות | גבוהה מאוד | כן |
| Push (אפליקציה ניידת) | 2–5 שניות | גבוהה מאוד | כן (התראה קריטית) |
שיחות קול הן הערוץ האמין ביותר: הן מגיעות ב-99% מהמקרים, גם כשהטלפון במצב שקט.
פריסה והגדרה
פריסה עצמית
לפריסה עצמית אנו משתמשים ב-Docker Compose. דוגמת הגדרה:
---
services:
oncall:
image: grafana/oncall:latest
ports:
- "8080:8080"
environment:
DATABASE_TYPE: postgresql
DATABASE_HOST: postgres
DATABASE_NAME: oncall
DATABASE_USER: oncall
DATABASE_PASSWORD: secret
BROKER_TYPE: redis
REDIS_URI: redis://redis:6379/0
SECRET_KEY: "change-me-in-production"
GRAFANA_API_URL: http://grafana:3000
GRAFANA_TOKEN: "glsa_serviceaccount_token"
depends_on:
- postgres
- redis
celery:
image: grafana/oncall:latest
command: celery
environment: *oncall-env
depends_on:
- oncall
---
Celery היא חובה: היא מעבדת משימות אסינכרוניות (שליחת התראות, טיימרים של הסלמה). לאחר הפריסה, הפעילו את התוסף ב-Grafana: services: oncall: image: grafana/oncall:latest ports: - "8080:8080" environment: DATABASE_TYPE: postgresql DATABASE_HOST: postgres DATABASE_NAME: oncall DATABASE_USER: oncall DATABASE_PASSWORD: secret BROKER_TYPE: redis REDIS_URI: redis://redis:6379/0 SECRET_KEY: "change-me-in-production" GRAFANA_API_URL: http://grafana:3000 GRAFANA_TOKEN: "glsa_serviceaccount_token" depends_on: - postgres - redis celery: image: grafana/oncall:latest command: celery environment: *oncall-env depends_on: - oncall .
השוו בין פריסה עצמית ל-Grafana Cloud:
| קריטריון | פריסה עצמית | Grafana Cloud |
|---|---|---|
| שליטה בנתונים | מלאה | מוגבלת |
| תחזוקה | אתם | הספק |
| עלות | תשתית בלבד | מנוי |
| SLA | אין | כן, 99.9% |
יצירת לוח זמנים לתורנות
לוחות זמנים מוגדרים דרך ממשק המשתמש או ה-API. לוח זמנים טיפוסי הוא רוטציות שבועיות:
- עברו אל On-Call Schedules → Create schedule.
- בחרו סוג: Web (מבוסס ממשק), iCal (אינטגרציה עם Google Calendar/Outlook), או API.
- הוסיפו חברי רוטציה.
- הגדירו משבצות זמן.
לצוות של 4 אנשים ברוטציה שבועית, כל אדם מתחלף כל שבוע. לוח הזמנים מתחשב אוטומטית בחגים ובאזורי זמן. ניתן לייצא אותו ככתובת iCal — חברי הצוות נרשמים בלוחות השנה שלהם.
בניית שרשראות הסלמה
זהו לב המערכת. השרשרת נבנית באמצעות קונסטרוקטור גרירה ושחרור בממשק:
- שלב 1: הודעה לאדם התורן מלוח הזמנים (פסק זמן של 10 דקות).
- שלב 2: הודעה לכל הצוות ב-Slack (פסק זמן של 15 דקות).
- שלב 3: הודעה אישית למנכ"ל הטכנולוגי (פסק זמן של 5 דקות).
- שלב 4: חזרה על שלבים 1–3 עד לאישור.
כל שלב יכול להודיע למשתמש ספציפי, לקבוצה, להשהות, לקרוא ל-webhook, או ליצור אירוע ב-Jira.
מדיניות התראות למשתמשים
כל משתמש מגדיר את אמצעי ההתראה שלו. דוגמת מדיניות ברירת מחדל:
- הודעה ישירה ב-Slack — מיד.
- המתנה של 5 דקות.
- שיחת קול.
לאירועים חשובים ניתן להגדיר שיחה מיידית. Grafana OnCall תומכת ב-Slack, טלגרם, אימייל, SMS, שיחות קול (דרך Twilio או AWS SNS), ו-push לנייד. למשמרות לילה אנו ממליצים בחום על שיחות קול — הן עוקפות את מצב "לא להפריע".
האפליקציה הניידת (iOS/Android) שולחת התראות push מסוג Critical Alert שגם הן מתעלמות ממצב שקט.
אינטגרציה עם Grafana Alerting
צרו נקודת מגע מסוג Administration → Plugins → Grafana OnCall → Enable:
Name: oncall-backend
Integration: Grafana OnCall
OnCall integration URL: http://oncall:8080/integrations/v1/grafana_alerting/abc123/הגדירו ניתוב התראות לפי תוויות ב-Grafana Alerting:
- receiver: oncall-backend matchers: - team = backend - severity =~ critical|high כעת כל ההתראות הקריטיות משירותי הקצה עוברות אוטומטית ל-OnCall ומפעילות את שרשרת ההסלמה.
מה כלול בעבודה שלנו?
אנו מספקים סט תוצאות מלא:
- תיעוד על פריסה והגדרה (כולל תוכניות הסלמה ומדיניות התראות).
- גישה לתשתית (פריסה עצמית או Grafana Cloud) עם מודל תפקידים.
- הדרכת צוות על ניהול לוחות זמנים, שרשראות והתראות.
- תמיכה לאחר העלייה לאוויר למשך שבועיים.
דוגמת רשימת בדיקה לאימות
- ודאו שכל חברי התורנות הגדירו התראות.
- בדקו הסלמה מחוץ לשעות העבודה.
- ודאו שהתראות ללא תוויות לא נכנסות ל-OnCall.
- הגדירו התראות על שינויים בלוח הזמנים.
תהליך ואחריות
- ביקורת על תהליכי התורנות וההתראות הנוכחיים.
- פריסה של OnCall (פריסה עצמית או חיבור ל-Grafana Cloud).
- הגדרה של לוחות זמנים, שרשראות הסלמה, אינטגרציות.
- בדיקה של הזרימה המלאה: מהתראה ועד אישור והסלמה.
- תיעוד הגדרות ומדיניות.
- הדרכת צוות על ניהול תורנות.
- תמיכה לאחר העלייה לאוויר למשך שבועיים.
מהנדסים מוסמכים עם ניסיון ב-Grafana, Kubernetes וספקי ענן. אנו מבטיחים שכל התראה קריטית מגיעה לאדם האחראי ושההסלמה פועלת כראוי. יישמנו פרויקטים לחברות המטפלות בעד 100,000 התראות ביום.
לוחות זמנים ועלות
הגדרה בסיסית (קלאסטר אחד, לוח זמנים אחד, שרשרת הסלמה אחת) אורכת מיומיים. פרויקט מלא עם אינטגרציות מרובות צוותים ומדיניות מותאמת אישית אורך עד 5 ימים. העלות מחושבת באופן אישי. קבלו ייעוץ — נעריך את הפרויקט שלכם ונמליץ על ההגדרה האופטימלית.







