Running in production · Edition No. 45 · 9 Oct 2026

pyrra-dev/pyrra

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.

← Running in productionRead the whole edition →
02

pyrra-dev/pyrra

💎 hidden gem

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.

Stars1.6k
LicenceApache-2.0
Latestv0.10.2 (2026-09-18)
Good
  • 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 PrometheusRule objects, 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.
Watch for
  • ⚠ 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 is examples, with an s. The documented Docker tag is also stale: it says v0.7.0 while 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].
Similar repositories
  • 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
Install
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
Screenshots
pyrra-dev/pyrra: GitHub preview cardpyrra-dev/pyrra: Screenshot 1pyrra-dev/pyrra: Screenshot 2pyrra-dev/pyrra: Screenshot 3pyrra-dev/pyrra: Screenshot 4

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.