Stop hand-rolling SLOs for Prometheus

Define your objectives in YAML. Pyrra generates the recording rules, multi-window burn rate alerts, and dashboards. You ship reliability, not PromQL.

Supports out of the box:
PrometheusThanosMimir
SLO Objective
99.5%
Target Availability
Current Availability
100.00%
Excellent
Error Budget
100.0%
Healthy

Used in production by

Polar Signals logoHetzner logo

SLO monitoring shouldn't be this painful

Prometheus gives you the metrics. But turning them into actionable SLOs still takes too much manual work.

SLOs require deep PromQL expertise

Calculating error budgets and burn rates means writing and maintaining dozens of recording rules by hand. One typo and your SLO data is wrong.

Alert fatigue drowns out real incidents

Without multi-window burn rate alerts, teams either get paged for every blip or miss slow-burning problems until the error budget is gone.

Every team reinvents the wheel

There's no standard way to define SLOs with Prometheus. Each team builds its own dashboards and alerting, none of it portable or consistent.

What Pyrra handles for you

You define the objective. Pyrra generates the recording rules, alerts, and dashboards automatically.

End alert fatigue

Pyrra generates multi-window, multi-burn-rate alerts at 4 severity levels. You get paged for real incidents, not noise.

Dashboards without the YAML maze

Get Grafana dashboards for every SLO out of the box. No hand-crafted JSON, no copy-paste errors.

See error budgets in real time

Know exactly how much budget remains and how fast you're burning it, before an incident eats it all.

Find the SLOs that matter

Filter by name, labels, or error budget status. Click any label to drill down instantly across services.

Spot trends before they bite

Analyze SLO performance over custom time ranges to catch slow degradation before users notice.

Prioritize what to fix first

Sort SLOs by remaining error budget. The worst performers surface to the top, so you focus where it counts.

From YAML to production in three steps

No PromQL required. Define what matters, and Pyrra wires the rest.

Deploy Anywhere

Pyrra adapts to your infrastructure, whether you're running on bare metal, containers, or Kubernetes

Bare Metal

Run Pyrra as a systemd service on your servers for lightweight, direct deployment

Docker

Deploy with Docker for easy containerized setup and portability across environments

Kubernetes Operator

Tightly integrated with Prometheus Operator for native Kubernetes SLO management

Step 1

Define Your SLOs

Create ServiceLevelObjective resources in Kubernetes or YAML files. Specify your target, window, and error/total metrics.

apiVersion: pyrra.dev/v1alpha1
kind: ServiceLevelObjective
metadata:
  name: api-availability
spec:
  target: "99.9"
  window: 2w
  indicator:
    ratio:
      errors:
        metric: http_requests_total{code=~"5.."}
      total:
        metric: http_requests_total
Step 2

Automatic Recording Rules

Pyrra watches for SLO objects and generates Prometheus recording rules for burn rates at multiple time windows.

# Generated automatically:
http_requests:increase2w
http_requests:burnrate3m
http_requests:burnrate15m
http_requests:burnrate1h
http_requests:burnrate12h
http_requests:burnrate2d
Step 3

Monitor & Alert

View all SLOs in the UI, track error budget consumption, and receive multi-window burn rate alerts when things go wrong.

# Multi-window alerts:
- Severity: critical
  Window: 1h, 5m
  Burn: 14.4x

- Severity: warning
  Window: 6h, 30m
  Burn: 6x

Deploy Pyrra in minutes, not sprints

Open source under Apache 2.0. Works with Prometheus, Thanos, and Mimir. Run it on bare metal, Docker, or Kubernetes.