Download page
What's new highlights
Features and enhancements
-
Alerting: Editor role can access all provisioning API. #85022, @yuri-tceretian
-
CloudWatch: Add additional AWS/SageMaker metrics. #85009, @tristanburgess
-
SQLStore: Enable migration locking by default. #84983, @papagian
-
Auth: Remove
oauth_skip_org_role_update_sync
as an option. #84972, @eleijonmarck
-
Canvas: Add "infinite" pan / zoom functionality. #84968, @nmarrs
-
InteractiveTable: Add expand all to column. #84966, @abannachGrafana
-
Snapshots: Viewers can not create a Snapshot. #84952, @evictorero
-
GenAI: Autogenerate title and description for panels and dashboards. #84933, @ivanortegaalba
-
Canvas: Add corner radius option. #84873, @drew08t
-
Alerting: Enable simplified routing FF by default. #84856, @JacobsonMT
-
Auth: Enable case insensitive logins/emails by default. #84840, @eleijonmarck
-
RBAC: Enable annotation permission update by default. #84787, @IevaVasiljeva
-
Azure: Support multi-resource namespace (NetApp Volumes). #84779, @aangelisc
-
Prometheus: Default support labels value endpoint with match param when prom type and version not set. #84778, @bohandley
-
MSSQL: Add Windows AD/Kerberos auth. #84742, @asimpson
-
Chore: Disable angular support by default. #84738, @tolzhabayev
-
Elasticsearch: Remove xpack button and make includeFrozen not dependant on it. #84734, @ivanahuckova
-
Plugins: Enable feature toggle
pluginsDynamicAngularDetectionPatterns
by default. #84723, @xnyo
-
Plugins: Enable managedPluginsInstall by default. #84721, @oshirohugo
-
Alerting: Stop persisting silences and nflog to disk. #84706, @JacobsonMT
-
Histogram: Add support for stacking mode. #84693, @adela-almasan
-
Datasource: Change query filtering. #84656, @sunker
-
Feature toggles: Remove redshiftAsyncQueryDataSupport and athenaAsyncQueryDataSupport feature toggles. #84653, @idastambuk
-
Teams: Display teams page to team reader if they also have the access to list team permissions. #84650, @IevaVasiljeva
-
Plugins: Enable feature toggle
enablePluginsTracingByDefault
by default. #84645, @xnyo
-
NestedFolders: Enable nested folders by default. #84631, @zserge
-
Canvas: Add direction options for connections. #84620, @drew08t
-
CloudWatch: Static labels should use label name. #84611, @iwysiu
-
Tempo: Deprecate old search. #84498, @joey-grafana
-
Canvas: Support dashed connection lines. #84496, @Develer
-
I18n: Add Brazilian Portuguese. #84461, @joshhunt
-
I18n: Expose current UI language in @grafana/runtime config. #84457, @joshhunt
-
Canvas: Add snapping to vertex edit. #84417, @drew08t
-
CloudWatch Logs: Remove toggle for cloudWatchLogsMonacoEditor. #84414, @iwysiu
-
Prometheus: Use frontend package in Prometheus DS with a feature toggle. #84397, @bohandley
-
Alerting: Show error message when error is thrown after clicking create alert f…. #84367, @soniaAguilarPeiron
-
Tempo: Remove Loki tab. #84346, @joey-grafana
-
Storage: Add support for listing resource history. #84331, @DanCech
-
Cloudwatch: Remove cloudWatchWildCardDimensionValues feature toggle. #84329, @iwysiu
-
Plugin Extensions: Add prop types to component extensions. #84295, @leventebalogh
-
Canvas: New basic elements. #84205, @Develer
-
Tempo: Update TraceQLStreaming feature toggle stage. #84203, @joey-grafana
-
Canvas: Add universal data link support. #84142, @nmarrs
-
Chore: Remove repetitive words. #84132, @carrychair
-
Documentation: Updated yaml for influxdb data sources. #84119, @ldomesjo
-
Queries: Improve debug logging of metrics queries. #84048, @mmandrus
-
Storage: Support listing deleted entities. #84043, @DanCech
-
Explore: Remove deprecated
query
option from splitOpen
. #83973, @Elfo404
-
Chore: Remove deprecated ExploreQueryFieldProps. #83972, @Elfo404
-
Chore: Remove deprecated exploreId from QueryEditorProps. #83971, @Elfo404
-
Alerting: Disallow invalid rule namespace UIDs in provisioning API. #83938, @rwwiv
-
Auth: Set the default org after User login. #83918, @mgyongyosi
-
Canvas: Add datalink support to rectangle and ellipse elements. #83870, @nmarrs
-
NodeGraph: Edge color and stroke-dasharray support. #83855, @morrro01
-
InfluxDB: Add configuration option for enabling insecure gRPC connections. #83834, @jmickey
-
Plugins: Fetch instance provisioned plugins in cloud, to check full installation. #83784, @oshirohugo
-
Alerting: Implement correct RBAC checks for creating new notification templates. #83767, @gillesdemey
-
Library panels: Ensure all filters are visible on mobile . #83759, @ashharrison90
-
AuthProxy: Allow disabling Auth Proxy cache. #83755, @Jguer
-
Switch: Remove "transparent" prop. #83705, @Clarity-89
-
Alerting: Allow inserting before or after existing policy. #83704, @gillesdemey
-
Chore: Taint ArrayVector with
never
to further discourage. #83681, @joshhunt
-
Alerting: Remove legacy alerting. #83671, @gillesdemey
-
Canvas: Add vertex control to connections. #83653, @drew08t
-
Alerting: Disable legacy alerting for ever. #83651, @yuri-tceretian
-
Table: Preserve filtered value state. #83631, @codeincarnate
-
Canvas: Add ability to edit selected connections in the inline editor. #83625, @nmarrs
-
Auth: Add all settings to Azure AD SSO config UI. #83618, @mgyongyosi
-
Cfg: Add a setting to configure if the local file system is available. #83616, @mgyongyosi
-
Server: Reload TLS certs without a server restart. #83589, @chalapat
-
Accessibility: Improve landmark markup. #83576, @tskarhed
-
Snapshots: Change default expiration. #83550, @evictorero
-
Transformations: Add substring matcher to the 'Filter by Value' transformation. #83548, @timlevett
-
Folders: Allow listing folders with write permission. #83527, @papagian
-
Chore: Remove React 17 peer deps. #83524, @ashharrison90
-
Alerting: Support deleting rule groups in the provisioning API. #83514, @joeblubaugh
-
Cloudwatch: Bump grafana/aws-sdk-go to 0.24.0. #83480, @idastambuk
-
Alerting: Stop persisting user-defined templates to disk. #83456, @JacobsonMT
-
Transformer: Config from Query: set threshold colours. #83366, @LarsStegman
-
CloudWatch: Refactor "getDimensionValuesForWildcards". #83335, @iwysiu
-
CloudWatch: Fetch externalId from settings instead of env. #83332, @iwysiu
-
Tracing: Add node graph panel suggestion. #83311, @joey-grafana
-
Canvas: Add ability to rotate elements. #83295, @nmarrs
-
Tempo: Add support for ad-hoc filters. #83290, @joey-grafana
-
DataTrails: Sticky controls. #83286, @torkelo
-
CloudWatch: Move SessionCache onto the instance. #83278, @iwysiu
-
Alerting: Deprecate max_annotations_to_keep and max_annotation_age in [alerting] configuration section. #83266, @yuri-tceretian
-
Annotation query: Render query result in alert box. #83230, @sunker
-
Chore: Query oauth info from a new instance. #83229, @linoman
-
CloudWatch: Add Firehose kms-related metrics. #83192, @thepalbi
-
Chore: Add go workspace. #83191, @toddtreece
-
Accessibility: Improve HelpModal markup. #83171, @tskarhed
-
Chore: Delete Input Datasource. #83163, @jackw
-
Traces: Add traces panel suggestion. #83089, @joey-grafana
-
CloudWatch: Update AWS/EC2 metrics. #83039, @jangaraj
-
CloudWatch: Update AWS/Lambda metrics. #83038, @jangaraj
-
CloudWatch: Update AWS/ES metrics. #83037, @jangaraj
-
CloudWatch: Update AWS/AutoScaling metrics. #83036, @jangaraj
-
CloudWatch: Update AWS/Kafka metrics. #83035, @jangaraj
-
Page: Use browser native scrollbars for the main page content. #82919, @joshhunt
-
Parca: Apply template variables for labelSelector in query. #82910, @lzakharov
-
Grafana/UI: Replace Splitter with useSplitter hook and refactor PanelEdit snapping logic to useSnappingSplitter hook . #82895, @torkelo
-
Cloudwatch: Add linting to restrict imports from core. #82538, @idastambuk
-
Grafana/icons: Add icons package. #82314, @Clarity-89
-
Storage: Watch support. #82282, @DanCech
-
Image Rendering: Add settings for default width, height and scale. #82040, @khushijain21
-
AzureMonitor: User authentication support. #81918, @aangelisc
-
Plugins: Disable uninstall while cloud uninstall is not completed. #81907, @oshirohugo
-
Plugins: Disable update button when cloud install is not completed. #81716, @oshirohugo
-
Expressions: Sql expressions with Duckdb. #81666, @scottlepp
-
BarChart: TooltipPlugin2. #80920, @leeoniya
-
Grafana: Replace magic number with a constant variable in response status. #80132, @rlaisqls
-
Alerting: Update rule access control to explicitly check for permissions "alert.rules:read" and "folders:read". #78289, @yuri-tceretian
-
Alerting: Update provisioning API to support regular permissions. #77007, @yuri-tceretian
-
Whitelabelling: Override version in UI from config. (Enterprise)
-
Alerting: Remove legacy alerting. (Enterprise)
-
Reporting: Delete Deprecated Endpoint for Single Dashboard. (Enterprise)
-
Plugins: Add endpoint to get provisioned plugins from an instance. (Enterprise)
-
Reporting: Delete Deprecated Endpoint for Scheduling. (Enterprise)
-
Reporting: Delete Deprecated Endpoint for Email. (Enterprise)
Bug fixes
-
RBAC: Fix access checks for interactions with RBAC roles in hosted Grafana. #85520, @IevaVasiljeva
-
Keybindings: Replace mod+h as help shortcut with ? . #85449, @tskarhed
-
RBAC: Fix slow user permission search query on MySQL. #85410, @gamab
-
BrowseDashboards: Add subpath to URLs on Browse Dashboards page. #85354, @butkovv
-
Dashboards: Fix issue where long ad-hoc values broke UI. #85290, @kaydelaney
-
NodeGraph: Fix possible metadata mismatch between nodes in graph. #85261, @aocenas
-
Alerting: Fix receiver inheritance when provisioning a notification policy. #85193, @julienduchesne
-
AuthProxy: Fix missing session for ldap auth proxy users. #85136, @Jguer
-
RBAC: Fix slow user permission search query on MySQL. #85058, @gamab
-
CloudMonitoring: Only run query if filters are complete. #85004, @aangelisc
-
BrowseDashboards: Add subpath to URLs on Browse Dashboards page. #84992, @butkovv
-
Datasources: Fix expressions that reference hidden queries. #84977, @sunker
-
Canvas: Fix crash when trying to add wind turbine element. #84962, @nmarrs
-
InfluxDB: Fix alias interpolation when it has $__interval or multiple tags. #84940, @itsmylife
-
Alerting: Stop returning autogen routes for non-admin on api/v2/status. #84864, @JacobsonMT
-
Alerting: Fix broken panelId links. #84839, @gillesdemey
-
Alerting: External AM fix parsing basic auth with escape characters. #84681, @JacobsonMT
-
Alerting: Support PromQL-style matchers. #84672, @gillesdemey
-
FolderPicker: Add permission filter to nested folder picker. #84644, @joshhunt
-
RolePicker: Don't try to fetch roles for new form. #84630, @kalleep
-
Pyroscope: Fix template variable support. #84477, @aocenas
-
Scenes: Fix public dashboard email sharing section. #84467, @juanicabanas
-
Alerting: Fix AlertsFolderView not showing rules when using nested folders. #84465, @soniaAguilarPeiron
-
Jaeger: Fix flaky test. #84441, @fabrizio-grafana
-
Scenes: Fix issue with discarding unsaved changes modal in new dashboards. #84369, @kaydelaney
-
PostgreSQL: Display correct initial value for tls mode. #84356, @gabor
-
Cloudwatch: Fix issue with Grafana Assume Role. #84315, @sarahzinger
-
Playlists: Fix kiosk mode not activating when starting a playlist. #84262, @joshhunt
-
Google Cloud Monitor: Fix
res
being accessed after it becomes nil
in promql_query.go
. #84223, @adamyeats
-
Elasticsearch: Fix using of individual query time ranges when querying. #84201, @ivanahuckova
-
InfluxDB: Fix for wrong query generated with template variable and non regex operator on frontend mode. #84175, @wasim-nihal
-
Prometheus: Remove < and > from Query Builder Label Matcher operations. #83981, @kylebrandt
-
Worker: Use CorsWorker to avoid CORS issues. #83976, @ivanortegaalba
-
Tempo: Fix by operator to support multiple arguments. #83947, @fabrizio-grafana
-
Plugins Catalog: Fix plugin details page initial flickering. #83896, @leventebalogh
-
Loki: Interpolate variables in live queries. #83831, @ivanahuckova
-
Table Panel: Fix condition for showing footer options. #83801, @codeincarnate
-
Alerting: Fix bug in screenshot service using incorrect limit. #83786, @grobinson-grafana
-
Alerting: Fix editing Grafana folder via alert rule editor. #83771, @gillesdemey
-
Cloudwatch: Fix new ConfigEditor to add the custom namespace field . #83762, @idastambuk
-
LDAP: Fix LDAP users authenticated via auth proxy not being able to use LDAP active sync. #83715, @Jguer
-
Elasticsearch: Fix adhoc filters not applied in frontend mode. #83592, @svennergr
-
RBAC: Fix delete team permissions on team delete. #83442, @gamab
-
Dashboards: Fixes issue where panels would not refresh if time range updated while in panel view mode. #83418, @kaydelaney
-
AzureMonitor: Fix mishandled resources vs workspaces. #83184, @adamyeats
-
Sql: Fix an issue with connection limits not updating when jsonData is updated. #83175, @jarben
-
Alerting: Use time_intervals instead of the deprecated mute_time_intervals in a…. #83147, @soniaAguilarPeiron
-
DataFrame: Improve typing of arrayToDataFrame helper and fix null/undefined handling. #83104, @aocenas
-
Cloudwatch: Fix filter button issue in VariableEditor. #83082, @wilguo
-
Alerting: Fix panic in provisioning filter contacts by unknown name. #83070, @JacobsonMT
-
Search: Include collapsed panels in search v2. #83047, @suntala
-
Plugins: Fix loading modules that only export a default. #82299, @sd2k
-
Table: Fix units showing in footer after reductions without units. #82081, @codeincarnate
-
AuthProxy: Invalidate previous cached item for user when changes are made to any header. #81445, @klesh
-
Unit: Add SI prefix for empty unit. #79897, @raymalt
-
Variables: Multi-select DataSource variables are inconsistently displayed in the Data source picker. #76039, @polibb
-
SAML: Better error message for saml private key type errors. (Enterprise)
-
Reporting: Fix monthly schedule text and modify monthly schedule inputs behavior. (Enterprise)
Breaking changes
In 9.3 we released a way to set case_insensitive_login
to true. This enables, lowercased username, login for users signing up with Grafana, for more information read our blog post.
If you encounter any issues with users signing up, we recommend everyone to use lowercase in their login, username otherwise refer to the blog post for how to solve any of the users that can be conflicting with their login/username. Issue #84972
This is a breaking change for users who use uppercase in their login or emails. The users are by default now using lowercase as part of their login and emails.
Before this code change, users would be able to still log in as either [email protected]
or [email protected]
, users are now only able to login and signup with grafana using lowercasing [email protected]
.
We recommend reviewing the blog post about using the CLI and why this is important for us to consolidate our security efforts. Issue #84840
This is a breaking change for users who have restricted the default access to annotation permissions by removing annotation related actions from the Viewer or Editor basic roles. In such cases we are not able to complete the permission migration automatically, and you will see the following log in your Grafana server logs: basic role permissions missing annotation permissions, skipping annotation permission migration
. You will also notice that dashboard and folder permissions do not appear in the user interface. Don't worry, all the permissions that you assigned are still there, they are just not being displayed.
We recommend reviewing what annotation permissions you have revoked from the basic roles (you can reference our documentation to see what permissions are missing). If you are fine granting them back to the basic roles, do that, then run the following data base command: DELETE FROM migration_log WHERE migration_id="managed dashboard permissions annotation actions migration"
and restart Grafana. This will make sure that the annotation permission migration gets run again, and this time it should succeed.
If you are not willing to grant the annotation permissions back to the basic roles, please disable annotationPermissionUpdate
feature toggle (add annotationPermissionUpdate = false
to [feature_toggles]
in Grafana's configuration file) and reach out to Grafana's support team. When we can learn more about your use case, we will work with you to find a solution. Issue #84787
Angular support is turned off
by default starting Grafana 11, you can find all the details in a dedicated documentation page.
Special notes for your reviewer:
Please check that:
The xpack checkbox dependency for enabling the Include Frozen Indices functionality has been removed, allowing direct control over frozen indices inclusion. Users should review their datasource settings to ensure the "Include Frozen Indices" option is configured as desired, particularly if xpack was previously disabled. This change aims to simplify configuration options and may affect queries if settings are not adjusted accordingly. Issue #84734
For data sources that extend DataSourceWithBackend
, the filterQuery
method is now called before the data source query
method. If the filterQuery
method assumes that some kind of query migration happens before this method is called, you now need to do the migration inside this method.
Users of data source plugins that did not previously remove hidden queries will see a change of behaviour: Before this change, clicking the Disable query
button had no impact on the query result, but starting from Grafana 11 responses associated with hidden queries will no longer be returned to the panel. Issue #84656
SystemJS is no longer exported from @grafana/runtime
. Plugin developers should instead rely on importing modules / packages using standard TS import syntax and npm/yarn for package installation.
Please check that:
We've removed the Loki tab from the Tempo data source. You can still access Logs through the Loki data source or can also create a link from Tempo to Loki via our trace to logs feature. Issue #84346
The query
option in splitOpen
was deprecated in 10.1
and is now being removed. Issue #83973
Since https://github.com/grafana/grafana/pull/38942 (Grafana 8.2.0
) the ExploreQueryFieldProps
type was deprecated and is now removed. Issue #83972
Since https://github.com/grafana/grafana/pull/38942 exploreId
is no longer supplied to query editors in Explore. The property was deprecated in 10.3.0
and is now removed. If your query editor needs to know from which app is being rendered, you can check the app
prop in QueryEditorProps
. Issue #83971
The Vector interface that was deprecated in Grafana 10 has been further deprecated. Using it will now generate build-time Typescript errors, but remain working at runtime. If you're still using ArrayVector in your code, it should be removed immediately and replaced with plain arrays. Plugins compiled against older versions and depend on calling get/set will continue to work because the Array prototype still has a modified prototype. This will be removed in the future Issue #83681
In Grafana 11 the legacy alerting reaches the end-of-life. Users cannot enable it and Grafana will refuse to start if the settings are not updated to run the new Grafana Alerting. Migration from legacy alerting is not available as well. Grafana 10.4.x is the last version that offers the migration.
-
If the setting [alerting].enable
is set to true
Grafana will not start and emit the log message with recommendations to change the configuration
-
Setting [alerting].max_annotation_age
is replaced by [unified_alerting.state_history.annotations].max_age
-
Setting [alerting].max_annotations_to_keep
is replaced by [unified_alerting.state_history.annotations].max_annotations_to_keep
-
setting [unified_alerting].execute_alerts
does not fall back to the legacy [alerting].execute_alerts
anymore. Instead, the default value true
is used.
-
setting [unified_alerting].evaluation_timeout
does not fall back to the legacy setting [alerting].evaluation_timeout_seconds
in the case when it is either invalid or has the default value. Now, if the setting is invalid, it will cause Grafana to exit.
-
setting [unified_alerting].min_interval
does not fall back to the legacy setting [alerting].min_interval_seconds
in the case when it is either invalid or has the default value. Now, if the setting is invalid, it will cause Grafana to exit. Issue #83651
We've removed React 17 as a peer dependency from our packages. Anyone using the new versions of these packages should ensure they've upgraded to React 18 following the upgrade steps: https://react.dev/blog/2022/03/08/react-18-upgrade-guide Issue #83524
We're adding a validation between the response of the ID token HD parameter and the list of allowed domains as an extra layer of security. In the event that the HD parameter doesn't match the list of allowed domains, we're denying access to Grafana.
If you set Google OAuth configuration using api_url,
you might be using the legacy implementation of OAuth, which doesn't have the HD parameter describing the organisation the approved token comes from. This could break your login flow.
This feature can be turned off through the configuration toggle validate_hd
. Anyone using the legacy Google OAuth configuration should turn off this validation if the ID Token response doesn't have the HD parameter. Issue #83229
The direct input datasource plugin has been removed in Grafana 11. It has been in alpha for 4 years and is superseded by TestData that ships with Grafana.
Please check that:
The alert rule API methods now require more permissions for users to perform changes to rules. To create a new rule or update or delete an existing one, the user must have permission to read from the folder that stores the rules (i.e. permission folder:read
in the scope of the rule's folder) and permission to read alert rules in that folder (i.e. permission alert.rules:read
The standard roles already have all required permissions, and therefore, neither OSS nor Grafana Enterprise users who use the fixed roles (standard roles provided by Grafana) are affected. Only Grafana Enterprise users who create custom roles can be affected Issue #78289
The deprecated endpoint for rendering pdf of a single dashboard GET /render/pdf/:dashboardID
and report model fields dashboardId
, dashboardName
, dashboardUid
, and templateVars
have been removed. Only new endpoint GET /api/reports/render/pdfs
accepting dashboards
list is support moving forward Issue #6362
The deprecated old schedule setting with separate fields hour,
minute
, day
have been removed. Only new schedule setting with startDate
will be supported moving forward Issue #6329
The deprecated email
field to send a report via /api/reports/email
endpoint have been removed. Only emails
field will be supported moving forward. Issue #6328
Plugin development fixes & changes