1.6k stars · Apache-2.0 · v0.10.2 (2026-09-18) · Track this in Scout
Turns a short declaration about how reliable a service should be into the Prometheus rules that measure it, with the remaining error budget on a page.
▶Repo detailsthe review · specs · pros & cons · install
What it is
Pyrra is a small Go service and a set of file formats for defining service level objectives — the formal name for "how good does this have to be". It generates the Prometheus recording and alerting rules that measure the objective, and serves a page showing the current error budget and burn rate.
What it is good for. Anyone already running Prometheus who has alerts that fire on every blip and never on the thing that matters. An error budget turns reliability from a feeling into a number with an allowance attached, and the point of this tool is that you do not have to hand-write the rule arithmetic, which is where almost everyone gets it wrong.
- You write the objective once, in a short declarative file, and the rules are generated from it.
- Two ways to run it: as a Kubernetes controller that reconciles
PrometheusRuleobjects, or in plain filesystem mode with no Kubernetes at all. - Its own web page shows the remaining budget and the burn rate, which is the part generator-only tools leave to you.
- ⚠ The documented install commands as written will fail. The README says to run
kubectl apply -f ./example/kubernetes/manifests, and the folder in the repository isexamples, with an s. The documented Docker tag is also stale: it saysv0.7.0while the current release is v0.10.2. - ⚠ It needs Prometheus already running, and that is not a small prerequisite. It is designed to sit beside Prometheus, not to replace it, and the Kubernetes route also wants the Prometheus Operator unless you pass
--config-map-mode=true. - The README describes no authentication for Pyrra's own page or API, and publishes no memory, processor or disk figures at all. Its Apache-2.0 licence file also leaves the copyright holder as the unfilled template
Copyright [yyyy] [name of copyright owner].
- slok/sloth
Generates the same kind of Prometheus SLO rules from a declarative spec and stops there, with no web page of its own.
Track this in Scout - google/slo-generator
Computes the same budgets and burn rates in Python and reads from many monitoring backends rather than Prometheus alone, producing reports instead of a dashboard.
Track this in Scout - OpenSLO/oslo
A command-line tool for validating and converting the vendor-neutral OpenSLO specification, so it defines objectives without running anything.
Track this in Scout
git clone https://github.com/pyrra-dev/pyrra.git cd pyrra # note the folder name: examples, not example, which the README gets wrong kubectl apply --server-side -f ./examples/kubernetes/manifests/setup kubectl apply --server-side -f ./examples/kubernetes/manifests kubectl apply --server-side -f ./examples/kubernetes/manifests/slos




