Skip to main content
APA
Sponsored by CAST AI — Kubernetes cost optimization Better Stack — Uptime monitoring and log management
⚠️

Alert thresholds depend on the nature of your applications. Some queries may have arbitrary tolerance thresholds. Building an efficient monitoring platform takes time. 😉

Blackbox Prometheus Alert Rules

9 Prometheus alerting rules for Blackbox. Exported via prometheus/blackbox_exporter. These rules cover critical and warning conditions — copy and paste the YAML into your Prometheus configuration.

wget https://raw.githubusercontent.com/samber/awesome-prometheus-alerts/refs/heads/master/dist/rules/blackbox/blackbox-exporter.yml
critical

1.6.1. Blackbox probe failed

Probe failed

- alert: BlackboxProbeFailed
  expr: probe_success == 0
  for: 1m
  labels:
    severity: critical
  annotations:
    summary: Blackbox probe failed (instance {{ $labels.instance }})
    description: "Probe failed\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
warning

1.6.2. Blackbox configuration reload failure

Blackbox configuration reload failure

- alert: BlackboxConfigurationReloadFailure
  expr: blackbox_exporter_config_last_reload_successful != 1
  for: 0m
  labels:
    severity: warning
  annotations:
    summary: Blackbox configuration reload failure (instance {{ $labels.instance }})
    description: "Blackbox configuration reload failure\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
warning

1.6.3. Blackbox slow probe

Blackbox probe took more than 1s to complete

- alert: BlackboxSlowProbe
  expr: probe_duration_seconds > 1
  for: 1m
  labels:
    severity: warning
  annotations:
    summary: Blackbox slow probe (instance {{ $labels.instance }})
    description: "Blackbox probe took more than 1s to complete\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
critical

1.6.4. Blackbox probe HTTP failure

HTTP status code is not 200-399

- alert: BlackboxProbeHTTPFailure
  expr: probe_http_status_code <= 199 OR probe_http_status_code >= 400
  for: 1m
  labels:
    severity: critical
  annotations:
    summary: Blackbox probe HTTP failure (instance {{ $labels.instance }})
    description: "HTTP status code is not 200-399\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
warning

1.6.5. Blackbox SSL certificate will expire soon

SSL certificate expires in less than 20 days

- alert: BlackboxSSLCertificateWillExpireSoon
  expr: 3 <= round((last_over_time(probe_ssl_earliest_cert_expiry[10m]) - time()) / 86400, 0.1) < 20
  for: 0m
  labels:
    severity: warning
  annotations:
    summary: Blackbox SSL certificate will expire soon (instance {{ $labels.instance }})
    description: "SSL certificate expires in less than 20 days\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
critical

1.6.6. Blackbox SSL certificate will expire very soon

SSL certificate expires in less than 3 days

- alert: BlackboxSSLCertificateWillExpireVerySoon
  expr: 0 <= round((last_over_time(probe_ssl_earliest_cert_expiry[10m]) - time()) / 86400, 0.1) < 3
  for: 0m
  labels:
    severity: critical
  annotations:
    summary: Blackbox SSL certificate will expire very soon (instance {{ $labels.instance }})
    description: "SSL certificate expires in less than 3 days\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
critical

1.6.7. Blackbox SSL certificate expired

SSL certificate has expired already

  # For probe_ssl_earliest_cert_expiry to be exposed after expiration, you
  # need to enable insecure_skip_verify. Note that this will disable
  # certificate validation.
  # See https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md#tls_config
- alert: BlackboxSSLCertificateExpired
  expr: round((last_over_time(probe_ssl_earliest_cert_expiry[10m]) - time()) / 86400, 0.1) < 0
  for: 0m
  labels:
    severity: critical
  annotations:
    summary: Blackbox SSL certificate expired (instance {{ $labels.instance }})
    description: "SSL certificate has expired already\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
warning

1.6.8. Blackbox probe slow HTTP

HTTP request took more than 1s

- alert: BlackboxProbeSlowHTTP
  expr: probe_http_duration_seconds > 1
  for: 1m
  labels:
    severity: warning
  annotations:
    summary: Blackbox probe slow HTTP (instance {{ $labels.instance }})
    description: "HTTP request took more than 1s\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
warning

1.6.9. Blackbox probe slow ping

Blackbox ping took more than 1s

- alert: BlackboxProbeSlowPing
  expr: probe_icmp_duration_seconds > 1
  for: 1m
  labels:
    severity: warning
  annotations:
    summary: Blackbox probe slow ping (instance {{ $labels.instance }})
    description: "Blackbox ping took more than 1s\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"