Docs / Monitoring & Logging / Setting Up Alert Rules in Prometheus

Setting Up Alert Rules in Prometheus

By Admin · Feb 25, 2026 · Updated Apr 23, 2026 · 26 views · 1 min read

How Alerting Works

Prometheus evaluates alert rules at regular intervals. When a condition is met, it fires an alert to Alertmanager, which handles routing, grouping, and sending notifications.

Alert Rules File

Create /etc/prometheus/alert-rules.yml:

groups:
  - name: server-alerts
    rules:
      - alert: HighCPU
        expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: "High CPU on {{ $labels.instance }}"
          description: "CPU usage above 85% for 5 minutes"

      - alert: DiskSpaceLow
        expr: (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100 < 15
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: "Low disk space on {{ $labels.instance }}"

      - alert: HighMemory
        expr: (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100 > 90
        for: 5m
        labels:
          severity: warning

      - alert: ServiceDown
        expr: up == 0
        for: 1m
        labels:
          severity: critical

Configure Prometheus

# prometheus.yml
rule_files:
  - "alert-rules.yml"

alerting:
  alertmanagers:
    - static_configs:
        - targets: ["localhost:9093"]

Alertmanager Configuration

# alertmanager.yml
route:
  receiver: email-alerts
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 4h

receivers:
  - name: email-alerts
    email_configs:
      - to: admin@example.com
        from: alerts@example.com
        smarthost: localhost:25

Was this article helpful?