Przejdź do treści
Biblioteka skilli
DevOps i chmura · Budowanie i kod

alerting

/alerting

Pomaga w regułach alertów, Alertmanagerze, Prometheusie i Grafanie, routingu powiadomień, PagerDuty, dyżurach, eskalacji i strojeniu progów.

Repozytorium
agent-skills ↗
Licencja
MIT
Ostatnia zmiana repozytorium
10.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
9
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
2
Przestarzałość

Brak sygnałów. Repozytorium zmienione 10.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Pomaga w regułach alertów, Alertmanagerze, Prometheusie i Grafanie, routingu powiadomień, PagerDuty, dyżurach, eskalacji i strojeniu progów.

Oryginalny opis (EN)

Use this skill when the user asks about alert rules, Alertmanager, Prometheus alerts, Grafana alerts, notification routing, PagerDuty, on-call, escalation, alert fatigue, or threshold tuning.

Jak działa

  1. Purpose
  2. Framework and Methodology
  3. Agent Protocol
  4. Workflow
  5. Common Pitfalls
  6. Best Practices
  7. Compared With
  8. Templates and Tools
  9. Rules
  10. References
Sekcje z nagłówków SKILL.md, w oryginale · 486 linii, 2 861 słów
Podgląd SKILL.md
---
name: alerting
description: >
  Use this skill when the user asks about alert rules, Alertmanager, Prometheus
  alerts, Grafana alerts, notification routing, PagerDuty, on-call, escalation,
  alert fatigue, or threshold tuning.
version: "1.0.0"
author: "j4flmao"
license: "MIT"
compatibility:
  claude-code: true
  cursor: true
  codex: true
  windsuf: true
tags: [management, alerting, phase-8]
---

# Alert Rules

## Purpose
Design alert rules following the RED/USE method with severity classification, threshold tuning, notification routing, and escalation paths. Ensure every alert is actionable, documented with a runbook, and tuned to balance detection speed against fatigue.

## Framework and Methodology

### Alerting Philosophy
Four principles guide alert rule design:

1. **Actionability** — if no action can be taken, it belongs on a dashboard, not as an alert.
2. **Signal over noise** — every firing alert represents a real issue requiring human intervention.
3. **Tiered response** — severity dictates speed of response, not importance of the metric.
4. **Continuous tuning** — thresholds degrade over time as systems evolve; review monthly.

### RED Method (Applications)
Rate, Errors, Duration — the three golden signals for application monitoring.

```
Rate: How much traffic is flowing through the system?
  Query: rate(http_requests_total[5m])
  Alert: sudden drop (possible outage) or unexpected surge (traffic anomaly)

Errors: What fraction of requests are failing?
  Query: rate(http_requests_total{status=~"5.."}[5m]) / rate(http_requests_total[5m])
  Alert: > 1% warning, > 5% critical

Duration: How long do requests take?
  Query: histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m]))
  Alert: p99 > 500ms warning, > 2s critical
```

### USE Method (Infrastructure)
Utilization, Saturation, Errors — resource-focused monitoring.

```
Utilization: What percentage of capacity is being used?
  CPU: node_cpu_seconds_total{mode="idle"} < 0.1
  Memory: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes < 0.1
  Disk: node_filesystem_avail_bytes / node_filesystem_size_bytes < 0.1

Saturation: How much extra work is queued?
  CPU run queue length > 4 * core count
  Disk I/O queue depth > disk I/O capacity
  Network interface drops > 0

Errors: How many errors are occurring?
  OOM kills: increase(node_vmstat_oom_kill[5m]) > 0
  Disk errors: increase(node_disk_io_time_seconds_total[5m]) > 0
  Network errors: increase(node_network_transmit_errors_total[5m]) > 0
```

### Business Metrics
Domain-specific alerts on revenue-impacting signals.

```
- Order failure rate > 10%
- Payment processing delay > 30s p95
- User signup completion rate < 90%
- API integration partner error rate > 5%
- Cart abandonment rate spike > 20% above baseline
```

### Alert Fatigue Calculation
```
Alert Fatigue Risk = (Total Alerts / Week) / (Actionable Alerts / Week)

  Healthy: < 3 alerts per actionable alert
  Warning: 3-10 alerts per actionable (investigate thresholds)
  Critical: > 10 alerts per actionable (urgent tuning needed)

  Target: < 5 total alerts per on-call person per shift
  Maximum: 10 alerts per shift before burnout risk
```

### Decision Tree: Alert or Dashboard?

```
Will someone take immediate action when this fires?
  ├── Yes → What action?
  │   ├── Rollback, restart, failover
  │   │   └── P0/P1 alert with runbook
  │   ├── Investigate during business hours
  │   │   └── P2 alert with runbook
  │   └── Investigate when someone has time
  │       └── P3 alert or ticket, not pager
  └── No → Is it useful for post-mortem analysis?
      ├── Yes → Dashboard panel + log
      └── No → Delete the metric or reduce collection frequency
```

## Agent Protocol

### Trigger
User request includes: `alert rule`, `alertmanager`, `prometheus alert`, `grafana alert`, `notification`, `pagerduty`, `on-call`, `escalation`, `alert fatigue`, `threshold`.

### Input Context
- Monitoring platform (Prometheus, Grafana, ELK, Datadog, New Relic)
- On-call tool (PagerDuty, Opsgenie, Slack)
- Current alert volume and known pain points
- Service criticality tiers

### Output Artifact
A markdown document containing:
- Alert severity definitions with response SLAs
- Alert rule templates per signal type (latency, errors, saturation, throughput)
- Threshold tuning guidelines (avoid alert fatigue)
- Notification routing rules (severity to channel to escalation)
- Silence/maintenance window policy
- Runbook template for common alerts

### Response Format
Produce the artifact directly. No preamble. No postamble. No explanations.

### Completion Criteria
- Severity levels defined with clear escalation paths
- Alert rules cover USE/RED method
- Thresholds tuned with tuning guidelines
- Notification routing defined per severity
- Runbook template included

### Max Response Length
4096 tokens

## Workflow

### Step 1: Define Severity Levels
Map severity (P0-P3) to response SLA, notification channels, and escalation paths.

```
P0: Critical -- 5 min acknowledge, 1 hr fix -- Phone + Slack + PagerDuty
     Escalation: EM -> CTO -- Example: total service outage, data loss
P1: High -- 15 min acknowledge, 4 hr fix -- Slack + PagerDuty
     Escalation: Team lead -- Example: high error rate, degraded performance
P2: Warning -- 1 hr acknowledge, 24 hr fix -- Slack
     Escalation: None -- Example: disk usage rising, latency increasing
P3: Info -- Next business day -- Dashboard only
     Escalation: None -- Example: certificate expiring in 30 days
```

### Step 2: Create RED Method Alerts
Define rate, error, and duration alerts for application services.

```
HighErrorRate: rate(5xx) / rate(total) > 0.05 for 5m -> P1
HighLatency: p99 latency > 2s for 5m -> P1
ZeroTraffic: rate(requests) == 0 for 5m -> P0
HighTrafficSurge: rate(requests) > 3x baseline for 10m -> P2
```

### Step 3: Create USE Method Alerts
Define utilization, saturation, and error alerts for infrastructure resources.

```
HighCpuUsage: idle < 10% for 10m -> P2
DiskSpaceRunningOut: avail < 10% for 5m -> P2
HighMemoryUsage: avail < 10% for 5m -> P2
OOMKillDetected: oom_kill > 0 -> P1
DiskIOLatency: avg_queue_latency > 100ms for 10m -> P2
NetworkPacketLoss: tx_errors > 5% for 5m -> P2
```

### Step 4: Add Business Alerts
Create domain-specific alerts for order failures, payment delays, and other business metrics.

```
OrderFailureRate: failure rate > 10% for 10m -> P1
PaymentProcessingDelay: p95 > 30s for 5m -> P1
SignupCompletionDrop: completion rate < 90% for 15m -> P2
```

### Step 5: Tune Thresholds
Apply threshold tuning rules to balance detection speed against alert fatigue.

```
- Start with conservative thresholds (higher tolerance).
- Review monthly: are alerts firing? Are they actionable?
- Adjust based on: false positive rate, detection latency, business impact.
- Use seasonal baselines: peak vs off-peak thresholds.
- Implement dynamic thresholds for predictable traffic patterns.
```

### Step 6: Configure Notification Routing
Map severity to notification channels with escalation matrix.

```
P0 -> Phone + Slack + PagerDuty -> EM after 5 min no ack -> CTO after 15 min
P1 -> Slack + PagerDuty -> Team lead after 15 min no ack
P2 -> Slack channel -> Escalate after 1 hr if no response
P3 -> Dashboard + email digest -> No escalation
```

### Step 7: Create Runbooks
Every alert must have a documented runbook with diagnosis and resolution steps.

```
Runbook template per alert:
  1. Symptom description
  2. Possible causes (ordered by likelihood)
  3. Diagnostic steps (commands to run, metrics to check)
  4. Resolution steps
  5. Verification procedure
  6. Escalation path
```

### Step 8: Implement Maintenance Windows
Define policy for silencing alerts during planned operations.

```
- Pre-approved maintenance window: silence P2/P3 alerts automatically.
- Post notification in on-call channel before starting.
- Maximum window: 4 hours (extend only with manager approval).
- Auto-expire: alerts resume when window ends.
- Exception: P0 alerts never silenced during maintenance.
```

### Step 9: Monitor and Improve
Track alert health metrics and implement improvements.

```
- Alert volume per severity per service (target: < 5 P0/month per service).
- Time-to-acknowledge per severity (target: < 5 min P0).
- False positive rate (target: < 20%).
- MTTA (mean time to acknowledge) per team.
- MTTR (mean time to resolve) per alert type.
```

### Step 10: On-Call Rotation Design
Design sustainable on-call rotations to prevent burnout.

```
- Team size for on-call: minimum 4 people for weekly rotations
- Rotation length: 1 week (shorter = better, 1 day for high-volume teams)
- Secondary on-call: always have a backup
- Follow-the-sun: preferred for global teams
- Compensation: time off in lieu or on-call pay
- Handoff: scheduled 30-min overlap on rotation day
- Escalation path documented in the rotation schedule
```

## Common Pitfalls

1. **Alert fatigue from oversensitive thresholds**: Start conservative and tighten gradually.
2. **Cascading alerts without grouping**: One root cause fires 20 related alerts. Use alert grouping and inhibition rules.
3. **Missing runbooks**: Teams waste time diagnosing without documented procedures.
4. **P0 alerts for non-urgent issues**: Devalues severity system. Reserve P0 for actual critical failures.
5. **Noisy infrastructure alerts**: CPU spikes that self-resolve add noise. Use longer `for:` durations.
6. **Thresholds never reviewed**: Six-month-old thresholds are irrelevant for growing systems.
7. **Missing `for:` duration**: Single data point flaps cause false alerts.
8. **Ignoring cardinality**: Labels with unbounded values break Prometheus.
9. **Alerting on symptoms, not causes**: Alert on high latency, not on high CPU that causes high latency.
10. **No alert on silence**: Silent alert system = broken monitoring. Set up Deadman's switch.
11. **All alerts go to pager**: Every alert is P2+. Fix: route P3+ to dashboard, only page for P0-P1.
12. **No correlation between alerts**: Same incident fires 5 different alert rules. Fix: use alert grouping and composite rules.

## Best Practices

- Every alert must have a runbook linked in its annotation
- Use `for:` duration equal to at least 2-3 scrape intervals
- Group related alerts into a single notification to reduce noise
- Define severity by impact, not by metric type
- Label every alert with team, service, environment, and severity
- Test alerts in staging before deploying to production
- Implement Deadman's switch: alert if no data received for expected interval
- Review alert rules during monthly SRE retrospectives
- Track and trend alert volume by service
- Rotate on-call frequently to reduce burnout
- Set up different routing for business hours vs after hours
- Use composite alerts to reduce noise from correlated symptoms

## Compared With

| Approach | Strengths | Weaknesses |
|---|---|---|
| RED method (this skill) | Covers user-facing signals, simple | Misses infrastructure saturation |
| USE method (this skill) | Covers resource health | Needs RED for full picture |
| Four golden signals | Complete coverage (RED + USE) | More alerts to manage |
| Single metric alerts | Simple to implement | Misses composite conditions |
| Anomaly detection | Catches unknown unknowns | High false positive rate |
| SLO-based alerting | Business-aligned | Requires SLO definition effort |
| Log-based alerting | Deep context | High volume, slow |
| Tracing-based alerting | Precise root cause | High overhead, sampling tradeoff |

## Templates and Tools

### Alert Rule Template (Prometheus)
```yaml
alert: {{ALERT_NAME}}
expr: {{PROMQL_EXPRESSION}}
for: {{DURATION}}
labels:
  severity: {{P0|P1|P2|P3}}
  team: {{TEAM_NAME}}
  service: {{SERVICE_NAME}}
annotations:
  summary: "{{BRIEF_DESCRIPTION}}"
  description: "{{DETAILED_DESCRIPTION}}"
  runbook: "https://runbooks.team.com/{{ALERT_NAME}}"
```

### Alertmanager Configuration Template
```yaml
route:
  receiver: "default"
  routes:
    - match: {severity: "P0"}
      receiver: "pagerduty-critical"
      repeat_interval: 5m
    - match: {severity: "P1"}
      receiver: "pagerduty-high"
      repeat_interval: 30m
    - match: {severity: "P2"}
      receiver: "slack-warnings"
      repeat_interval: 4h

receivers:
  - name: "pagerduty-critical"
    pagerduty_configs:
      - routing_key: "{{PAGERDUTY_KEY}}"
        severity: "critical"
  - name: "slack-warnings"
    slack_configs:
      - channel: "#alerts"
        title: "{{ .GroupLabels.alertname }}"
```

### Alert Health Dashboard
```
Metric              | Current | Target | Status
Total alerts/week   | 42      | < 25   | Needs tuning
P0 alerts/month     | 3       | < 5    | Healthy
False positive rate | 28%     | < 20%  | Review thresholds
MTTA P0             | 3 min   | < 5 min| Healthy
MTTR P0             | 25 min  | < 60 min| Healthy
Alerts per on-call  | 6/shift | < 5    | Near limit
```

### On-Call Rotation Template
```
Team: {name} | Week: {date} - {date}
Primary: {name} (acknowledge within 5 min)
Secondary: {name} (backup if primary unresponsive)
Handoff scheduled: Monday 09:00 (30 min overlap)

Escalation path:
  Primary unresponsive > 5 min → Secondary
  Secondary unresponsive > 5 min → Engineering Manager
  EM unresponsive > 5 min → CTO
```

## Rules
- Every alert must be actionable — if no action can be taken, it is a dashboard metric
- No alert without a runbook — every alert routes to a document explaining diagnosis and fix
- No duplicate alerts — group related alerts and suppress cascade alerts
- Require minimum `for:` duration before firing to prevent flapping
- Review and adjust thresholds monthly as part of seasonal tuning
- Scheduled maintenance periods must automatically silence alerts
- Alert labels must have bounded cardinality
- P0 alerts go to phone + Slack + PagerDuty with immediate escalation
- Severity is defined by user impact, not by metric type
- Every alert must have a team label for ownership
- Alerts must be tested in staging before production deployment
- Deadman's switch alert for metric pipelines that stop producing data
- Acknowledge alert within SLA before investigating root cause
- Escalate if first responder does not acknowledge within SLA window
- Monthly alert review as part of incident management improvement
- Auto-resolve alerts when condition clears
- Distinguish between warning (potential issue) and critical (active problem)
- Alert routing must consider time of day and day of week
- On-call shift handover includes alert status review

## References
  - references/alert-rules-catalog.md — Alert Rules Catalog
  - references/alert-rules-templates.md — Alert Rules Templates
  - references/alerting-advanced.md — Alerting Advanced Topics
  - references/alerting-fundamentals.md — Alerting Fundamentals
  - references/escalation-policies.md — Escalation Policies
  - references/notification-routing.md — Notification Routing Reference
  - references/alerting-rule-design.md — Alert Rule Design Patterns
  - references/alerting-oncall-rotation.md — On-Call Rotation Design

## Handoff
Hand off to `devops/monitoring/SKILL.md` for monitoring stack setup.
Hand off to `management/team-rules/SKILL.md` for on-call schedule and incident response.

## Architecture Decision Trees

### Alert Routing
| Decision Point | Option A | Option B | Decision Criteria |
|---|---|---|---|
| Alert channel | Email (archival) | PagerDuty/Opsgenie (real-time) | Urgency, response SLA |
| Notification platform | Built-in (Grafana) | Dedicated (PagerDuty) | Cost vs flexibility, existing stack |
| Escalation strategy | Linear escalation | Tiered/broadcast escalation | Team size, criticality tiers |

### Threshold Definition
- Static threshold: Simple, good for stable systems with known baselines.
- Dynamic/seasonal threshold: Uses ML on historical data. Better for systems with periodic traffic patterns.
- Anomaly-based: Flags deviations from predicted behavior. Ideal for systems without clear fixed thresholds.

## Implementation Patterns

### Alert Rule Template (Prometheus)
`yaml
groups:
  - name: service_alerts
    rules:
      - alert: HighErrorRate
        expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.05
        for: 3m
        labels:
          severity: critical
          team: backend
        annotations:
          summary: "High error rate on {{ \.service }}"
          description: "Error rate {{ \ | humanizePercentage }} exceeded 5% for 3 minutes"
          runbook: "https://runbooks.internal/error-rate"
`

### Escalation Policy Template
`yaml
escalation_policy:
  name: "Backend On-Call"
  rules:
    - targets: [primary_on_call]
      timeout: 15m
    - targets: [secondary_on_call]
      timeout: 10m
    - targets: [engineering_manager]
      timeout: 5m
    - targets: [incident_command]
      notify: immediate
`

## Production Considerations

### Alert Fatigue Prevention
- **Noise reduction**: Use alert aggregation and deduplication. Silence recurring known issues.
- **Alert severity**: Distinguish critical (page) vs warning (notification). Aim for < 5 pages per on-call shift.
- **Maintenance windows**: Suppress alerts during planned maintenance. Automatically create maintenance windows from deployment schedules.

### Reliability
- **Redundant notification**: Alert through multiple channels (PagerDuty + Slack + SMS). Have fallback if primary channel is down.
- **Heartbeat alerts**: Monitor the monitoring system itself. Alert if alertmanager/prometheus is unreachable.
- **On-call handoff**: Document active incidents during shift handoff. Require 15min overlap for knowledge transfer.

## Anti-Patterns

| Anti-Pattern | Symptom | Solution |
|---|---|---|
| Alerting everything | 500+ alerts/day, all ignored | Alert on symptoms, not causes. Start with < 10 rules |
| No runbook | On-call wakes up and doesn't know what to do | Every alert must link to a runbook |
| Friday evening deploys | Weekend pages | Restrict deploys to business hours |
| Silent threshold increase | Decreased sensitivity masks real issues | Track MTTA/MTTR alongside alert volume |
| No alert testing | False sense of security | Weekly alert simulation drills |

## Performance Optimization

### Response Time
- **Runbook automation**: Embed auto-remediation scripts in runbooks. Use webhook-triggered lambda functions for common fixes.
- **Alert enrichment**: Augment alerts with links to dashboards, logs, and trace IDs. Pre-compute likely impact scope.
- **Intelligent routing**: Route alerts based on current on-call, time of day, and expertise. Use ML to predict best responder.

### Monitoring Efficiency
- **Reduced alert storm**: Implement dependency-aware alerting. Suppress downstream alerts when root cause is identified upstream.
- **Aggregation rules**: Group related alerts into incidents. Deduplicate identical alerts within time windows.
- **Auto-closure**: Auto-resolve alerts when metric returns to normal. Require manual ack only for acknowledged pages.

## Security Considerations

### Authentication & Access
- **Alert modification**: Restrict who can silence/modify alert rules. Audit all alert configuration changes.
- **On-call roster access**: Protect on-call schedules as PII (staff location, rotation patterns). Use SSO with MFA for alerting platforms.
- **Alert channel security**: Use private Slack channels for alert notifications. Never forward alerts to public channels.

### Incident Response Security
- **Alert data leakage**: Sanitize alert payloads to exclude secrets. Mask sensitive values in alert annotations.
- **Secure runbooks**: Host runbooks in authenticated internal wikis. Never embed API keys or passwords in runbook steps.
- **Post-incident review**: Conduct blameless postmortems. Preserve alert data and timelines for forensic analysis.

- **Audit trail maintenance**: Retain alert and incident records per compliance requirements. Archive resolved incidents for trend analysis.
- **On-call shift logging**: Log all on-call actions, escalations, and handoffs. Use time-stamped entries for postmortem reconstruction.
- **Notification delivery confirmation**: Verify all critical alerts are acknowledged. Escalate unacknowledged pages after timeout.
- **Alert volume trending**: Track weekly alert volume per service. Set targets for reducing noise-to-signal ratio.
- **Cross-team incident coordination**: Document handoff procedures between primary and secondary on-call teams. Maintain shared incident timeline.
Pliki w paczce (9)
  • SKILL.md 20 KB
  • references/alert-rules-catalog.md 2 KB
  • references/alert-rules-templates.md 5 KB
  • references/alerting-advanced.md 8 KB
  • references/alerting-fundamentals.md 7 KB
  • references/alerting-oncall-rotation.md 22 KB
  • references/alerting-rule-design.md 17 KB
  • references/escalation-policies.md 4 KB
  • references/notification-routing.md 1 KB

Wersje

RepozytoriumWynikLicencja
Ta strona · j4flmao/agent-skills100MIT
xobotyi/cc-foundry100MIT
arjunprabhulal/devops-skills100MIT

Migawka bazy z 28.10.2026 · wersja paczki ffb3201a322a (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100prometheus-alertmanager
    Konfiguruje Prometheus Alertmanager: routing, grupowanie, wyciszanie i dostarczanie powiadomień do Slacka, PagerDuty i e-maila, reguły inhibicji oraz diagnozę potoku alertów.
  • 100alerting-oncall
    Ustawia reguły alertów, rotacje dyżurów i workflow reagowania na incydenty z integracją PagerDuty, Opsgenie lub Grafana OnCall dla routingu i eskalacji.
  • 100alert-optimizer
    Restrukturyzuje i optymalizuje reguły alertów w Sentry, PagerDuty, Datadog i OpsGenie: redukcja szumu, polityki eskalacji, progi i runbooki dyżurów.
  • 100alerting-irm
    Konfiguruje Grafana Alerting, Incident Response Management i SLO od początku do końca: reguły alertów, contact points, polityki powiadomień, wyciszenia, harmonogramy dyżurów, łańcuchy eskalacji i alerty burn-rate.
  • 100pagerduty-and-opsgenie-oncall-configuration
    Konfiguruje w PagerDuty i Opsgenie grafiki dyżurów, polityki eskalacji oraz reguły routingu i deduplikacji alertów przez API lub Terraform.
  • 100e2e-alertmanager-test
    Renderuje podgląd powiadomień alertów (e-mail tekstowy i HTML, załącznik Slack, webhook JSON) przez odtworzenie oczekiwanych alertów z pliku testów jednostkowych Prometheusa na działającym Alertmanagerze.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.