Releases: pyrra-dev/pyrra
v0.10.0-rc.3 - 2026-04-10
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
- fix(ui): restore Go template vars in index.html for route prefix injection by @metalmatze in #1800
- fix: sanitize logr key-value pairs in goKitLogSink to prevent unsuppo… by @sebastiangaiser in #1804
- Add RuleOutput labels and PerformanceOverAccuracy for BoolGauge by @metalmatze in #1816
- feat(kubernetes): add leader election configuration by @sebastiangaiser in #1806
- feat: description as label on generic rules by @r-franzke in #1815
- fix: restore ExternalURL field for /objectives handler by @metalmatze in #1819
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
- @r-franzke made their first contribution in #1815
Full Changelog: v0.9.5...v0.10.0-rc.3
v0.10.0-rc.2 - 2026-04-09
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
- fix(ui): restore Go template vars in index.html for route prefix injection by @metalmatze in #1800
- fix: sanitize logr key-value pairs in goKitLogSink to prevent unsuppo… by @sebastiangaiser in #1804
- Add RuleOutput labels and PerformanceOverAccuracy for BoolGauge by @metalmatze in #1816
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.2
v0.10.0-rc.1 - 2026-04-02
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
- fix(ui): restore Go template vars in index.html for route prefix injection by @metalmatze in #1800
- fix: sanitize logr key-value pairs in goKitLogSink to prevent unsuppo… by @sebastiangaiser in #1804
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.1
v0.10.0-rc.0 - 2026-03-31
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
v0.9.5 - 2026-03-15
What's Changed
- fix: add correct sorting for 'lset' column (backport of #1615) by @mrtworo in #1615
- chore(deps): update github actions (release-0.9) by @renovate[bot] in #1750
- chore(deps): update actions/download-artifact digest to 484a0b5 (release-0.9) by @renovate[bot] in #1760
Full Changelog: v0.9.4...v0.9.5
v0.9.4 - 2026-03-09
What's Changed
- chore(deps): update react packages (release-0.9) by @renovate[bot] in #1717
- fix(controller): prevent invalid update after creating PrometheusRule/ConfigMap by @nikita-vanyasin in #1739
Full Changelog: v0.9.3...v0.9.4
v0.9.3 - 2026-02-06
Literally just dependencies updates.
What's Changed
- fix(deps): update golang.org/x/exp digest to 716be56 (release-0.9) by @renovate[bot] in #1708
- chore(deps): update dependency @bufbuild/protobuf to v1.10.1 (release-0.9) by @renovate[bot] in #1709
- chore(deps): update docker.io/golang docker tag to v1.25.7 (release-0.9) by @renovate[bot] in #1712
- chore(deps): update dependency eslint-plugin-react-hooks to v4.6.2 (release-0.9) by @renovate[bot] in #1711
- chore(deps): update dependency bootstrap to v5.3.8 (release-0.9) by @renovate[bot] in #1710
- fix(deps): update dependency uplot to v1.6.32 (release-0.9) by @renovate[bot] in #1713
- fix(deps): update module github.com/go-chi/chi/v5 to v5.2.5 (release-0.9) by @renovate[bot] in #1714
- chore(deps): update github actions (release-0.9) by @renovate[bot] in #1718
- fix(deps): update module github.com/prometheus/common to v0.67.5 (release-0.9) by @renovate[bot] in #1715
Full Changelog: v0.9.2...v0.9.3
v0.9.2 - 2025-11-17
What's Changed
Full Changelog: v0.9.1...v0.9.2
v0.9.1 - 2025-11-06
What's Changed
- docs(Helm): link to official Helm chart by @sebastiangaiser in #1463
- feat: add webhook to ports and bump versions by @sebastiangaiser in #1613
- Fix encoding/decoding error in Pyrra UI by @metalmatze in #1622
- Fix: Aggregate multi burn rate queries with sum() by @metalmatze in #1624
Full Changelog: v0.9.0...v0.9.1
v0.9.0 - 2025-10-22
Highlights
- feat: support Grafana Explore integration in the UI by @jrRibeiro in #1478
- feat: Add Mimir tenant capabilities by @achetronic in #1592
- Fix LatencyNative Indicator Grouping Support by @YusifAghalar in #1514
What's Changed
- fix(crd-gen): use correct description for 'spec.indicator.bool_gauge.… by @sebastiangaiser in #1318
- feat: add the ability to configure partialResponseStrategy by @zach-robinson-dev in #1389
- fix(SLOs): Use the 5.0 bucket by default by @adinhodovic in #1345
- Update Go and Node by @metalmatze in #1437
- Add LatencyNative availability metric by @samwright in #1417
- Update Dependabot config to patch update release branches by @metalmatze in #1453
- Support empty histogram series by @vCra in #1483
- chore: fix misleading errors total grafana by @jmichalek132 in #969
- Update Go dependencies to latest versions by @metalmatze in #1488
- fix: display error message for invalid SLOs with window=0s by @metalmatze in #1489
- feat: support querying data from multiple Mimir tenants by @PabloPie in #1495
- Add Prometheus authentication flags to documentation by @ElhoubeBrahim in #1540
- fix: exclude regex matchers from burnrate queries by @pmody-te in #1593
- README: update link to PrometheusRule page by @dr0ptp4kt in #1524
- fix: exclude compromised npm packages by @fstr in #1534
- test: Simplify TestLatencyNativeBurnrateGrouping assertions by @metalmatze in #1604
- Improve error handling and add loading state in List component by @metalmatze in #1487
New Contributors
- @zach-robinson-dev made their first contribution in #1389
- @samwright made their first contribution in #1417
- @vCra made their first contribution in #1483
- @jmichalek132 made their first contribution in #969
- @jrRibeiro made their first contribution in #1478
- @PabloPie made their first contribution in #1495
- @ElhoubeBrahim made their first contribution in #1540
- @pmody-te made their first contribution in #1593
- @dr0ptp4kt made their first contribution in #1524
- @fstr made their first contribution in #1534
- @YusifAghalar made their first contribution in #1514
Full Changelog: v0.8.4...v0.9.0