Highlights
Performance Mode: Subquery-based SLO Calculations #1607
SLO burn rate calculations can now use subqueries instead of recording rules, significantly reducing the number of rules Prometheus needs to evaluate and store.
Alert Severity Overrides #1788
Alert severities for multi-burn-rate alerts are now configurable directly in the SLO spec, giving teams full control over how alerts are routed and prioritized.
Prometheus v3 Histogram Support (le normalization) #1619
Pyrra now correctly handles the le label normalization differences between Prometheus v2 and v3 native histograms, enabling seamless migration to Prometheus v3 for latency-based SLOs.
pyrra_url Annotations on Alerts #1522
All generated alerts now include a pyrra_url annotation that links directly to the relevant SLO page in the Pyrra UI, reducing time from alert to context.
UI Redesign: shadcn/ui + Tailwind CSS #1789
The UI has been migrated from Bootstrap to shadcn/ui and Tailwind CSS, laying the groundwork for new UI features going forward.
What's Changed
- fix: add correct sorting for 'lset' column by @mrtworo in #1615
- Migrate from Dependabot to Renovate by @metalmatze in #1668
- Enable Renovate dependency dashboard by @metalmatze in #1672
- Fix Renovate release branch to only allow patch updates by @metalmatze in #1675
- Bump golangci to v2 by @tylerauerbeck in #1651
- Add Renovate support for Buf plugin dependencies by @metalmatze in #1677
- chore(ci): add Renovate support for Node.js matrix versions by @metalmatze in #1691
- fix: resolve Dockerfile linting warnings by @metalmatze in #1720
- chore(config): migrate Renovate config by @renovate[bot] in #1721
- fix: update operator to use go-kit logger to ensure standardized log config by @tylerauerbeck in #1652
- Pass SLO annotations to ConfigMap by @RiRa12621 in #1737
- fix(controller): prevent invalid update after creating PrometheusRule/ConfigMap by @nikita-vanyasin in #1739
- readme: add link to auto-generated CRD API documentation by @metalmatze in #1757
- chore(ui): migrate from react-scripts to Vite by @metalmatze in #1762
- refactor(ui): replace manual URL params with nuqs by @metalmatze in #1764
- refactor(ui): remove search debounce, rely on nuqs by @metalmatze in #1769
- fix(ci): restore node 22.x matrix entry alongside 24.x by @metalmatze in #1772
- feat(ui): migrate to connect-es v2 and protobuf-es v2 by @metalmatze in #1775
- feat: surface Pyrra version in CLI, logs, metrics, and UI by @metalmatze in #1778
- Enable alert severity overrides from config by @saswatamcode in #1788
- feat: support
lenormalization in prom 2 and 3 by @pharaujo in #1619 - Optimize SLO performance with subquery-based calculations by @metalmatze in #1607
- docs: add performance mode documentation by @metalmatze in #1790
- feat(ui): migrate from Bootstrap to shadcn/ui with Tailwind CSS by @metalmatze in #1789
- Add pyrra_url annotations by @metalmatze in #1522
- feat(ui): add hover tooltips to uplot graphs by @metalmatze in #1796
- feat(ui): dynamic time range presets based on objective window by @metalmatze in #1791
New Contributors
- @mrtworo made their first contribution in #1615
- @tylerauerbeck made their first contribution in #1651
- @nikita-vanyasin made their first contribution in #1739
- @pharaujo made their first contribution in #1619
Full Changelog: v0.9.5...v0.10.0-rc.0