Monitoring ו-Alerting חכם

📚 DevOps עם Claude ⏱️ 10 דק׳ 🎓 בינוני ✓ חינם לגמרי
Monitoring ו-Alerting חכם

שעה 02:30 בלילה, ו-45 דקות של אאוטג' שעלו 180,000 שח

ה-on-call קם. 15 alerts ירדו בבת-אחת. ה-dashboard מלא גרפים, CPU, memory, network, disk. שום גרף לא אמר מה הבעיה האמיתית. 45 דקות מאוחר יותר גילו: ה-Redis connection pool התמלא. startup ישראלי עם 10 מיליון בקשות ביום שילם על זה בעסקאות שנפלו, לקוחות שעזבו, ו-SLA penalty.

הבעיה לא היתה חוסר monitoring. הבעיה היתה monitoring לא נכון. 50 alerts שמדדו את התשתית, אפס alerts שמדדו את חוויית המשתמש. לפי דוח PagerDuty 2025, ממוצע ה-on-call מקבל 50 alerts בשבוע, אבל רק 2-5% מהם דורשים התערבות אנושית. 70% מה-SREs דיווחו שעומס ה-on-call גורם ל-burnout ועזיבה (Catchpoint 2025).

Claude שינה את המשוואה. הוא לא רק כותב PromQL, הוא חושב על monitoring כמו SRE מנוסה: alert על סימפטומים שמשתמשים מרגישים, לא על תשתית שרצה.

ארבעת האותות הזהובים, הבסיס של כל monitoring טוב

Google SRE הגדירה ב-2016 את ה-Four Golden Signals: ארבעת המדדים שמכסים כמעט כל בעיה בשירות פרודקשן. Claude מכיר אותם ויגדיר אותם נכון לכל stack.

אותמה הוא מודדדוגמת PromQL
Latencyכמה זמן לוקח לשרת בקשהhistogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))
Trafficכמה בקשות מגיעותsum(rate(http_requests_total[5m]))
Errorsכמה בקשות נכשלותsum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m]))
Saturationכמה קרובים אנחנו לגבולdb_connections_active / db_connections_max

הפרומפט הנכון ל-Claude: תמיד ציינו את שם השירות ואת שמות ה-metrics המדויקים בסביבה שלכם. Claude יודע PromQL מצוין, אבל הוא לא יכול לדעת שה-metric שלכם נקרא app_http_requests_total ולא http_requests_total.

SLO-based Alerting, לעזוב את ה-CPU ולסמן את מה שחשוב

SLO (Service Level Objective) הוא ההתחייבות לזמינות: "99.9% מהבקשות יסתיימו בהצלחה". ה-error budget הוא ה-0.1% שמותר להיכשל, בתרגום: 43.8 דקות בחודש. כשה-budget מתאזל, עוצרים features ומתמקדים ב-reliability.

Multi-window burn rate alerting הוא הסטנדרט של Google SRE: שני חלונות זמן (למשל 1h ו-5m) חייבים שניהם לחרוג מהסף כדי שה-alert יפעל. כך נמנעים false positives מ-spikes קצרים. בקשו מ-Claude:

כתוב Prometheus alerting rule שמזהה SLO burn rate מהיר:
- SLO target: 99.9%
- Fast burn: 14.4x rate ב-5 דקות ו-1 שעה
- Slow burn: 3x rate ב-30 דקות ו-6 שעות
- severity: page (fast) ו-ticket (slow)
- הוסף annotation עם error budget remaining
- metric: http_requests_total עם labels job, status_code
- job name: "api-service"
כתוב לי alert ל-Prometheus כשה-error rate גבוה
כתוב Prometheus alerting rule YAML לשירות 'payment-api' (metric: http_requests_total, labels: job, status_code, route). Alert HighErrorRate: trigger כשsum(rate(5xx)[5m]) / sum(rate(all)[5m]) > 0.01 למשך for: 5m. severity: critical. הוסף annotations: summary עם description דינמי שמציג את {{$value | humanizePercentage}}, ו-runbook_url: https://wiki.mycompany.co.il/runbooks/errors. הוסף inhibition rule שמשתיק alert זה כש-SLOBurnRateFast active.

Grafana Dashboard בפרומפט אחד, כולל import מוכן

עד 2025, בניית Grafana dashboard לקחה שעות: PromQL ידני, panel-by-panel, JSON editing. היום Claude + Grafana MCP Server (הוציאו אותו ב-2026) מאפשרים ליצור dashboard מלא בשיחה אחת. אפילו בלי MCP, Claude מייצר Grafana JSON שניתן לimport ישירות.

טיפ קריטי: תמיד ציינו את ה-datasource UID. ברירת המחדל של Claude היא placeholder, ואז ה-import נכשל. אמרו: datasource uid: "prometheus", type: prometheus.

כתוב Grafana dashboard JSON ל-Node.js API service:
- datasource uid: "prometheus", type: prometheus
- Row 1 (Overview): stat panel, RPS, error rate %, p95 latency. time series, traffic בשעה האחרונה
- Row 2 (SLO): gauge, availability %, error budget remaining (בדקות). time series, burn rate
- Row 3 (Resources): gauge, CPU %, memory %. stat, pod count
- Row 4 (Database): time series, connection pool usage %, slow queries
- Variables: $interval (auto), time picker. Refresh: 30s. Theme: dark.
כל panel עם threshold צבעוני: ירוק / צהוב / אדום.

Claude כ-SRE Agent אוטונומי, Anthropic Cookbook 2026

ב-2026 פרסמה Anthropic cookbook רשמי לבניית on-call agent עם Claude Managed Agents. ה-pattern:

  1. PagerDuty alert מגיע → Claude מתחיל חקירה
  2. Claude קורא logs, runbooks, ו-Prometheus metrics
  3. Claude מוצא root cause ופותח PR עם תיקון
  4. Agent מחכה לאישור אנושי ב-Slack (human-in-the-loop)
  5. רק אחרי אישור, merge ו-deploy

דוגמה אמיתית מה-cookbook: שירות checkout קרס מ-OOMKilled. Claude זיהה שה-memory limit (128Mi) קטן מדי ל-pricing cache של 14,000 רשומות. הוא העלה את ה-limit ל-256Mi/512Mi, פתח PR, וחיכה לאישור. ה-on-call אישר, בלי לכתוב שורת קוד.

עיצוב הכלים חשוב מהפרומפט: "Tool descriptions drive agent behavior more effectively than elaborate instructions" (Anthropic, 2026). תארו כל כלי בדיוק מה הוא עושה ומתי להשתמש בו.

טעויות נפוצות, ואיך להימנע מהן

Prometheus לא מתאים לכמות כזו של alerts
Alert fatigue, alerts לא מקושרים לחוויית משתמש
צריך לגייס עוד on-call engineers
ה-threshold של הalerts גבוה מדי

סיכום, מה לקחת מהשיעור הזה

רוצה ללמוד עם מעקב התקדמות, קוויזים ותעודה?

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