v13.1.0
13.1.0
Release Notes
Download page What's new highlights
Features and enhancements
- A11y: Remove interactivity from UserIcon if onClick is not provided #120284, @idastambuk
- Accessibility: Add
aria-pressedstate toFilterPill#123069, @ashharrison90 - Accessibility: Colorblind-safe line style fill patterns #121386, @vijaygovindaraja
- Alerting: Add Mimir Alertmanager auto-sync configuration to settings page #124855, @rodrigopk
- Alerting: Add alerting.rulesAPIV2 feature flag #122606, @rodrigopk
- Alerting: Add common section to filter dropdown in Alerts Activity #124547, @laurenashleigh
- Alerting: Add feature flag for notifications api migration #124625, @rodrigopk
- Alerting: Add label section to enrichment view/edit drawers (Enterprise)
- Alerting: Add reusable hook to add enrichment query param to url on drawer open #123584, @laurenashleigh
- Alerting: Add support for label selectors in AlertRule and RecordingRule legacy storage #122293, @moustafab
- Alerting: Alert activity UI improvements part 3 #121790, @laurenashleigh
- Alerting: Alert activity groupBy not filtering by environment #121952, @rodrigopk
- Alerting: Alerts Activity Instance drawer drilldown, Silence flow #122317, @laurenashleigh
- Alerting: Allow restricting contact point integration types #118858, @chriscerie
- Alerting: Block Viewers from Alert Group edit route #125669, @laurenashleigh
- Alerting: Block editing plugin-provided and provisioned rule groups #123214, @konrad147
- Alerting: Deduplicate and validate
groupBylabels in alerts #122983, @yuri-tceretian - Alerting: Export external Alertmanager sender metrics with data source UIDs #121996, @santihernandezc
- Alerting: Include error in Loki state history when exec_err_state is Alerting #125775, @imankurpatel000
- Alerting: Mark notification provisioning endpoints deprecated #121995, @titolins
- Alerting: Move filters to sidebar alerts activity #121577, @laurenashleigh
- Alerting: Open new alert rule drawer from panel menu #125712, @laurenashleigh
- Alerting: Preview notification routing in the alert instances table #121699, @ppcano
- Alerting: Propagate plugin rule origin as X-Rule-Origin header #125206, @yuri-tceretian
- Alerting: Remove alertRuleUseFiredAtForStartsAt feature toggle #124677, @fayzal-g
- Alerting: Restrict email contact point recipients to org members #123173, @yuri-tceretian
- Alerting: Set enrichment uid in url for enrichment view/edit drawer (Enterprise)
- Alerting: Small improvements to instance drawer drilldown silence flow #123429, @laurenashleigh
- Alerting: Support creating Grafana-managed rules without a group #120228, @moustafab
- Alerting: Surface contact point save errors in the UI #123211, @konrad147
- Alerting: Surface errors on contact point creation #124339, @rodrigopk
- Alerting: Surface save and bulk-delete errors to the user #123690, @rodrigopk
- Alerting: Use Rules API v2 in panel alert rule drawer #125787, @laurenashleigh
- Annotations: Clustering GA #124173, @gtk-grafana
- Auth: Support inline public keys for JWT authentication #126184, @cinaglia
- Auth: Use GrafanaComProxyAPIToken for managed plugin API requests (Enterprise)
- Auth: Use dedicated token for requests to Grafana.com #122269, @s4kh
- Azure Monitor: Pool gzip writers in Log Analytics deep-link encoder #123555, @adamyeats
- Azure Monitor: Refactor
fetchInitialRowsto improve async utilisation #123278, @adamyeats - Azure Monitor: Stream-decode responses and typed structs for portal deep link #123565, @adamyeats
- Browse Dashboards: Change messaging of delete/move modal and add counts to tabs in folder detail #124299, @aocenas
- Browse Dashboards: Refresh old parent folder on save dashboard #125323, @aocenas
- CloudWatch Logs: Remove data links from results #120348, @iwysiu
- Cloudwatch: Add id to metric expression datalinks #120526, @iwysiu
- Combobox: Add isOpen and onIsOpenChangeHandler #122992, @L2D2Grafana
- ConvertFieldType: Preserve null and empty string in string-to-number conversion #120893, @moktamd
- CsvExport: Remove legacy CsvExportPage (Enterprise)
- Dashboard variables: Improve accessibility #120758, @idastambuk
- Dashboard/DTO: Remove isStarred property #122118, @ryantxu
- Dashboard: Add annotation CRUD to mutation API #123939, @ivanortegaalba
- Dashboard: Display variable label in outline to better match what the users sees in the dashboard #123321, @oscarkilhed
- Dashboard: Edit pane go back action #122918, @torkelo
- Dashboard: Preserve timezone user-preference when converting V1 → V2 #122267, @ivanortegaalba
- Dashboard: Switch tab selects tab only when pane is open (docked or not) #121755, @torkelo
- Dashboards: Add panel screenshot API #124045, @dprokop
- Dashboards: Preserve query variable sort modes in v1->v2 conversion #124247, @oscarkilhed
- Dashboards: Remove dashboardScene and publicDashboardsScene feature toggles #121781, @Sergej-Vlasov
- Dashboards: Show k8s format in provisioned save #123033, @stephaniehingtgen
- Dashboards: Strip BOM characters in admission mutation hook #122677, @MissingRoberto
- Data Source: Add forward_user_agent option to preserve client User-Agent #124244, @marcsanmi
- DataSources: Introduce async APIs and hooks as replacement for datasourceSrv #123037, @mckn
- Datasources: Add dynamodb to supported plugins list in dsauth (Enterprise)
- Datasources: Allow editing data source title #122053, @MattIPv4
- Datasources: Finish decoupling mssql & postgresql - backend #119110, @njvrzm
- Datasources: Finish decoupling mssql, tempo, and graphite - frontend changes #119106, @njvrzm
- Docker: Bump Alpine-based images to 3.23.4 #122930, @Proximyst
- Docker: Bump Alpine-based images to 3.24.1 #126529, @macabu
- Dynamic dashboards: preserve tab/row URL slugs and keep legacy tab URLs working #123159, @idastambuk
- Expressions: Add memory limit for math expression binary operations #121945, @rwwiv
- Go: Update to 1.25.9 #122094, @macabu
- Google Cloud Monitoring: Add Forward OAuth Identity authentication (frontend) #124618, @ktw4071
- GrafanaUI: Remove feature toggle for new panel padding #124870, @torkelo
- Graphite: Strip tagged path from
tags.namewhenaliasSubwrapping is detected #122277, @adamyeats - Histogram: filter NaN and Infinity from bucket size calculation #117698, @ethervoid
- Homepage: Support v2 dashboards if defined by a file #122994, @stephaniehingtgen
- I18n: Prevents
en-USlocalization resources from loading #125327, @hugohaggmark - Import: Library panel missing DS when imported in v1 and classic #119980, @ivanortegaalba
- InfluxDB: Decouple backend #119167, @njvrzm
- InfluxDB: Decouple frontend #119169, @njvrzm
- InteractiveTable: Support specific column widths #121384, @vijaygovindaraja
- LibraryPanels: Return 403 instead of 500 for insufficient permissions #123407, @MissingRoberto
- Log Details: Add support for filtering from add-hoc stats and to include/exclude the log line #126782, @matyax
- Log Details: Add support to expand or shrink inline Log Details #123156, @matyax
- Logs Panel: Add support to copy a log entry with fields/labels as JSON #124816, @matyax
- Logs: Add emergency to supported LogLevel mapping #119957, @Kuehn-Andreas
- Logs: Add keyboard navigation support for Log Details #123406, @matyax
- Logs: Add optional download support for dashboards #123256, @matyax
- Logs: Highlight multi-unit durations in log syntax highlighting #124433, @o6ivp
- Logs: Log line menu is now sticky #126572, @matyax
- Logs: Removed logsPanelControls feature flag and related components #122114, @matyax
- Logs: introduce "unspecified" log level for missing log level and separate from "unknown" #125716, @matyax
- Migration: Widen team.updated to DATETIME(3) on MySQL #124314, @mgyongyosi
- PieChartPanel: Add gradient color scheme with WCAG-aware slice labels #121303, @fedir
- Plugins: Add plugins.marketplaceLicensing feature toggle #124246, @xnyo
- Plugins: Sanitise header values to printable ASCII for gRPC compatibility #122237, @adamyeats
- Prometheus: Fetch metric metadata on code editor mount #121339
- Prometheus: Prevent prometheus package to be released automatically #122824, @itsmylife
- Prometheus: Use @grafana/prometheus v13.1.2 #123024, @itsmylife
- Provisioning: Add commit signing configuration UI (GPG, SSH, S/MIME) #126023, @amalavet
- Provisioning: Don't mark folders pending due to _folder.json metadata #124118, @MissingRoberto
- Provisioning: Enforce folder version in finalizer handler #123179, @ferruvich
- Provisioning: Honor ruleset bypass for write workflow validation #123893, @MissingRoberto
- Provisioning: Include dashboard validation errors in pull request comments #122233, @gttrigger
- Provisioning: Invalid resources should cause a warning job #123047, @gttrigger
- Provisioning: List resources should return correct api version #122653, @gttrigger
- Provisioning: Negotiate receive-pack capabilities for git pushes #124122, @MissingRoberto
- Provisioning: Per-verb fallback for the files subresource #123867, @MissingRoberto
- Provisioning: Remove GET method from webhook connector #125539, @MissingRoberto
- Provisioning: Require new token when provisioning URL changes #125525, @ferruvich
- Provisioning: Retry SQLITE_BUSY on repository status patch #123873, @MissingRoberto
- Provisioning: Return Bad request for repo mismatch in webhook #124453, @ferruvich
- Provisioning: Return early for errors on resource creation in Parser #125122, @ferruvich
- Provisioning: Rotate webhook secret periodically #122797, @ferruvich
- Provisioning: Scope repository uniqueness by (URL, branch, path) #123498, @ferruvich
- Provisioning: Surface folder uid-too-long and other validation 4xx as sync warnings #123797, @MissingRoberto
- Provisioning: Use full sync instead of incremental if diff size exceeds a certain amount #123127, @ferruvich
- Provisioning: Write
_folder.jsonwhen creating dashboards in new folders #126042, @ferruvich - Provisioning: Write
_folder.jsonwhen moving dashboards into new folders #126552, @ferruvich - Provisioning: add PR comment if resources metadata is removed #122664, @ferruvich
- Provisioning: add new check for webhook creation in repository controller #122725, @ferruvich
- Provisioning: add public_root_url instance setting for external URLs #123613, @MissingRoberto
- Provisioning: replay protection for GitHub webhooks #125550, @MissingRoberto
- Provisioning: validate ref query parameter on files and history endpoints #125551, @MissingRoberto
- Pyroscope: Add support for heatmap query API #120995, @simonswine
- Pyroscope: Include profile ID and absolute times in assistant context #122665, @marcsanmi
- Removal: GroupAttributeSync routes #126247, @Jguer
- Reporting: Add backend support for URL-based report rendering (Enterprise)
- Reporting: Limit report emails to org members only (behind new config property) (Enterprise)
- Revert "Alerting: Migrate notifications.alerting.grafana.app from v0alpha1 to v1beta1" #121955, @rodrigopk
- Scenes: Upgrade to v8 #123698, @torkelo
- Search API: Filter out k6 technical folder in unified search #122674, @aocenas
- Secrets Keeper: AWS create form with instruction wizard (Enterprise)
- Secrets Keeper: Activate and deactivate keeper from the UI (Enterprise)
- Secrets Keeper: Add delete keeper functionality (Enterprise)
- Secrets Keeper: Add keeper edit page with form prepopulation (Enterprise)
- Sidebar: Open pane actions, dock, and go back redesign #123683, @torkelo
- SqlExpressions: Interpolate variables in schema queries #123779, @NWRichmond
- SqlExpressions: Migrate AI features to Grafana Assistant #122085, @NWRichmond
- Stats: Remove dashboard version metric #121900, @stephaniehingtgen
- Table: GroupToNestedTable v2 UI #121646, @fastfrwrd
- Team folders: Refresh browse dashboard cache after changes to team folders #123794, @aocenas
- Tempo: Unify dynamic int/double span attributes as float64 #121645, @zoltanbedi
- Tempo: Unify nested span subframe schema across span sets #124885, @zoltanbedi
- TimeRangePicker: Adjust accent color to be accessible #122040, @ashharrison90
- Transformations: Removes unused predicate matchers #124790, @hugohaggmark
- Unified Storage: Pass commit message when routing managed-resource writes #125556, @MissingRoberto
- Users: Use SHA-256 for Gravatar email identifier #122319, @Jguer
- Zipkin: Remove core datasource (Enterprise)
- patch(security): apply May 2026 patches #124824, @github-actions[bot]
Bug fixes
- Alerting: Fix named policy route showing as Default when routing toggle is off #125817, @rodrigopk
- Alerting: Add warning when editing grouped alert rule to ungrouped #126292, @rodrigopk
- Alerting: Fix AlertManagerPicker visibility to check Alertmanager datasources #123137, @konrad147
- Alerting: Fix Test button not shown for provisioned contact points #126371, @gillesdemey
- Alerting: Fix crash when MultiCombobox value contains duplicates #122180, @rodrigopk
- Alerting: Fix crash when ruler returns namespace with empty groups array #122704, @konrad147
- Alerting: Fix error toaster when removing last rule from group #126296, @rodrigopk
- Alerting: Fix inhibition status flickering during load of alert rule detail #126288, @rodrigopk
- Alerting: Fix missing permission check for routing preview #122344, @rodrigopk
- Alerting: Fix notification policies tab hidden for Viewer/Editor after managed routes migration #122123, @gillesdemey
- Alerting: Fix page title for /alerting/groups when V2 nav is enabled without triage #123286, @firasmosbehi
- Alerting: Fix rule matching when expressions contain inline comments #126152, @gillesdemey
- Alerting: Fix slug in alerting nested folder URL #123670, @laurenashleigh
- Alerting: Fix threshold value reset when changing condition type #122455, @gillesdemey
- Alerting: Fix toast spam when typing silence matcher regex #125643, @laurenashleigh
- Alerting: Make contact point settings redaction logic case insensitive #124955, @khalilhaji
- Alerting: Set 'ResolvedAt' when transitioning from Error to Normal #122329, @santihernandezc
- Auth: URL-encode redirectTo cookie value in OAuth login flow #121953, @jsclayton
- AzureMonitor: Fix focus trapping on
ResourceFieldmodal #123072, @ashharrison90 - Browse dashboards: Fix delete modal affected counts #122747, @aocenas
- Dashboads: Fixes flickering issues #118567, @torkelo
- Dashboard: DashboardCodePane width refactoring and fixes #122700, @torkelo
- Dashboard: Fixes issue with interval variable with Auto value #123889, @torkelo
- DashboardDS: Fix Mixed panels not updating on time-range change with stale upstreams #124665, @ivanortegaalba
- DashboardDS: Fix Mixed panels with a time override stuck in permanent loading #125954, @oscarkilhed
- Dashboards: Fix broken add panel button after removing last panel #124551, @ifrost
- Datasources: return 400 when payload UID does not match URL UID in PUT /api/datasources/uid/:uid #125398, @papagian
- Fix: Don't mutate shared SecureJSONData map in dsauth (Enterprise)
- Fix: Short-cut auth service Apply for non-handled plugin IDs (Enterprise)
- GrafanaUI: Correctly close
Select/Comboboxmenus with the keyboard #122133, @ashharrison90 - HomePage: Fix redirect when served under a subpath #124557, @ashharrison90
- Jaeger: Fix log event timestamp unit conversion in trace view #123302, @ktw4071
- K8s Dashboards: Fix folder permission check to use dashboards:create #124612, @mihai-turdean
- Loki: Show Step option for all query types and fix volume reload on step change #122184, @paulojmdias
- Menu: Correctly show active state in forced colors mode #123633, @ashharrison90
- Portal: Fix nested portals to overlay correctly #122450, @ashharrison90
- PostgreSQL: Allow sql_engine to return results for EXPLAIN queries #122739, @sdague
- Provisioning: Bump nanogit to v0.17.0 to fix pushes with repositories using git modules #124114, @MissingRoberto
- Provisioning: Fix PR comments on multi-org Grafana instances #126700, @ferruvich
- Provisioning: Fix PR links when folder is renamed via UI #126695, @ferruvich
- Provisioning: Fix duplicate folder cleanup during full sync #124256, @ferruvich
- Provisioning: Fix race in PullStatus condition with controller patches #123358, @MissingRoberto
- Public Dashboards: Fix issues navigating to public dashboards from a logged-in session #121017, @mmandrus
- QueryEditor: Fix loss of query edits when switching queries #123001, @NWRichmond
- Tempo Datasource: Fix gRPC basic auth over non-TLS connections #123026, @RobertClarke64
- Tempo: Fix Ctrl+/ comment toggle in TraceQL editor #121460, @Krishnachaitanyakc
- Tempo: Fix trace rendering failure when span attributes contain NaN or Infinity #122504, @Tarasusrus
- TimePicker: Show label for fiscal-quarter relative ranges #122384, @jeanibarz
- Unified storage: Skip migrations if dualwrite state shows they were already migrated #122866, @stephaniehingtgen
- alerting: fix ORM table mapping bug causing SELECT alert_rule columns FROM user on PostgreSQL #124935, @dhananjay6561
- fix(provisioning): ignore terminating repositories when validating connection delete #126822, @MissingRoberto
- fix: bad MySQL query in datasource_type column migration #126821, @gassiss
Breaking changes
- Prometheus: Remove azure and sigv4 auth from core prometheus #123089, @itsmylife
- Prometheus: Remove grafana-prometheus package#122953 #123035, @itsmylife
- Zipkin: Remove from core plugins #124148, @itsmylife
Plugin development fixes & changes
- Card: Improve responsiveness #123876, @ashharrison90
- Combobox: Fix caret jumping to the end of the input #123950, @joshhunt
- DataLinkInput: Expose prop to properly link labels to input #123795, @ashharrison90
- RadioButton: Fix selected visibility in forced colors mode #123952, @ashharrison90
- RadioButtonGroup: Prevent RadioButtonGroup overflow with ellipsis and hover title #119124, @Apahadi73
- TimeOfDayPicker: use Combobox #123777, @leeoniya