Every team I have worked with has the same problem. The SLO exists somewhere; a Confluence page, a Google Doc, a Notion page that nobody updates. The Prometheus rules exist somewhere else, written by whoever set up monitoring two years ago and has not been touched since. The Grafana dashboard exists in a third place, manually built, manually maintained, slowly drifting from what the SLO actually says. Nobody owns the connection between these three things, which means over time they stop being connected at all.
This is the problem Ithildin is trying to solve.
The idea is simple. Your SLO definition should be the single source of truth. Everything downstream, the recording rules, the alerting rules, the dashboard, should be generated from it automatically. When the SLO changes, you change one thing, not three.
Ithildin takes a service name and an SLO target and generates three artifacts instantly. First, Prometheus recording rules that pre-compute error rates across four time windows: 5 minutes, 30 minutes, 1 hour, and 6 hours. These are the building blocks everything else depends on. Second, multi-burn-rate alerting rules following the Google SRE Book methodology. This is where most teams get it wrong; they set a static threshold like “alert if error rate exceeds 1%” without thinking about how fast the error budget is being consumed. A 1% error rate for five minutes is very different from a 1% error rate for six hours. Multi-burn-rate alerting accounts for this by firing fast for fast burns (14.4x the acceptable rate) and slow for slow burns (1x), with different severity levels and different response expectations. Third, a Grafana dashboard JSON you can import directly, with an error rate timeseries and an SLO compliance gauge that turns red before you breach.
The name comes from Tolkien. Ithildin is the moon-metal in Lord of the Rings, invisible in daylight, only revealed by moonlight and starlight. It felt right for an observability tool. The whole point of observability is revealing what is hidden. You cannot fix what you cannot see.
The tool is live at this page. The code is on my Github. It is early and there is a lot more to build, latency SLOs, multi-service definitions, direct Prometheus and Grafana API integration, a CLI. But the core idea works, and the core idea is the point.
If you have ever manually written a multi-burn-rate alert from scratch, you know how easy it is to get the math slightly wrong and not notice for weeks. If you have ever tried to keep a Grafana dashboard in sync with your actual SLO targets, you know how quickly it becomes a lie. Ithildin does not solve every observability problem. It solves one specific problem: the gap between what your SLO says and what your tooling actually does.
That gap is where incidents live.