Announcement13.1.0
Grafana 13.1.0 Release
Grafana 13.1.0 brings major improvements across accessibility, alerting, authentication, and data source management. This release includes new alert rule management capabilities, enhanced accessibility features, improved data source APIs, and numerous UI refinements across dashboards, annotations, and cloud integrations.
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
releasealertingaccessibilitydashboardsauthdatasources
Source: original entry ↗