docs: What's New & Upgrade Guide 10.0 (#64927)

* updated what's new index and added v10.0 what's new and upgrade guide

* Update _index.md

* Added nested folders

* Nested folders screenshot

* Add draft of Correlations what's new content

* Correlations minor edit

* add dashboards whats new

* What's new: Query multiple data sources in Explore

* Update docs/sources/whatsnew/whats-new-in-v10-0.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* AuthNZ: What's new in Grafana 10.0 (#66362)

* AuthNZ: What's new in Grafana 10.0

* Add upgrade guides

* Apply suggestions from code review

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>

* Apply suggestions from code review

Co-authored-by: Jo <joao.guerreiro@grafana.com>

* Apply suggestions from code review

Co-authored-by: Jo <joao.guerreiro@grafana.com>

---------

Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Co-authored-by: Jo <joao.guerreiro@grafana.com>

* Added span filters section

* add info about dashboard previews removal

* Update docs/sources/whatsnew/whats-new-in-v10-0.md

Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>

* add datagrid and drag and drop

* combine new ds picker and panel onboarding content

* Logs: Add LogContext to What's New v10 (#66575)

* add log context description

* change `eyeball button` to `eye icon`

* Adds Alerting entries for 10

* Add Azure Monitor entry for v10

* add public dashboards features

* small tweaks to public dashboards content

* Add Security: Trusted types section

* Add DataViz: initial placeholder sections with some content

* Adds alerting entry for templates

* Adds an and

* update headings

* fix link format and update wording

* nesting topics under dashboards and visualizations, updated headers

* Adds oncall contact point entry

* Copyedits for oncall alerting entry

* add incremental querying blurb to whats-new

* Renaming nested folders to subfolders

* Update what's new to indicate availability of features and improve messaging (#66755)

* Added image for time regions

* update wording for feature release stage

* Add section about Phlare data source rename

* restructuring and styling fixes

* add datasource picker recording

* Log Context: Improved "Whats New" text (#67285)

* improve "Log context" whats new

* change screenshot

* Update docs/sources/whatsnew/whats-new-in-v10-0.md

Co-authored-by: Matias Chomicki <matyax@gmail.com>

* fix spelling

* Update docs/sources/whatsnew/whats-new-in-v10-0.md

Co-authored-by: J Stickler <julie.stickler@grafana.com>

* Update docs/sources/whatsnew/whats-new-in-v10-0.md

Co-authored-by: J Stickler <julie.stickler@grafana.com>

* Update docs/sources/whatsnew/whats-new-in-v10-0.md

Co-authored-by: J Stickler <julie.stickler@grafana.com>

* Update docs/sources/whatsnew/whats-new-in-v10-0.md

Co-authored-by: J Stickler <julie.stickler@grafana.com>

* change image

---------

Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: J Stickler <julie.stickler@grafana.com>

* wording and style edits

* Update how to use Trusted Types

* Adding opentracing deprecation notes

* Adding opentracing deprecation notes

* added breaking changes with raw markdown

* updated page weight

* state location of public dashboards list more explicitly

* added email sharing user admin info

* clarified what was fixed

* Deletes oncall entry

* added heading markdown

* replaced absolute links with relrefs

* fixed relrefs

* Update canvas GA section to include connection properties

* canvas: slight grammar update

* updated template and name of contributor field for each item

* adding contributor name

* added contributor names to what's new

* added contributor names to what's new and upgrade guide

* fixed typo

* Docs: What is new 10 - add Data plane (#68125)

* Remove drag & drop to dashboard

* Add PDC to 10.0 what's new

* reorder sections, edit copy

* update order, format and copy

* grammar fix

add "and"

* add intro text to breaking changes pages

* fix Explore mixed DS what's new doc (#68303)

Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>

* Remove datagrid from what's new, drag and drop to experimental

* Update docs/sources/whatsnew/whats-new-in-v10-0.md

* updates to data source picker availability

* Update what's new for canvas / trend panel (finalized)

* Update ds picker recording

* Add deprecation notice for changing folder UID

* docs: update with angular plugin list

* Update with documentations links for annotation filtering and time regions

* Update annotation filtering section in docs/sources/whatsnew/whats-new-in-v10-0.md

* add datagrid as experimental

* modify datagrid doc accordingly

* Update docs/sources/whatsnew/whats-new-in-v10-0.md

Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* adds alerting screenshot

* deletes sentence

* adds state history pic

* resolving outstanding suggestions

Co-authored-by: David Harris <david.harris@grafana.com>
Co-authored-by: Nathan Marrs  <nathanielmarrs@gmail.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>

* changed order of sections

* updated text about breaking changes in whats new and upgrade guide

* fixed links

* copy edits

* general copy edits

* removed TO DOs from whats new, copy edited upgrade guide, some copy edits of breaking changes

* fix doc validator errors

* added availability information, updated preview notes, replaced screenshot

* copy edit, added links, added breaking changes content

* general copy edit of breaking changes; small update to common tasks

* replaced notes with admonitions

* link fixes

* reverted blog links to full addresses

* fixed heading inconsisency

* fix doc validator error

* added availability note

* added missing availability notes

* replaced screenshot and fixed wording

* replaced screenshot and fixed wording

* Updated subfolders description

To call out missing features and stress that it can only be used in dev/test environments

* added availability note

---------

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
Co-authored-by: Zsofia <zsofia.komaromi@gmail.com>
Co-authored-by: Josiah (Jay) Goodson <josiah.goodson@gmail.com>
Co-authored-by: natellium <natalia.bernarte@grafana.com>
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
Co-authored-by: Natalia Bernarte Oses <74534993+natellium@users.noreply.github.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
Co-authored-by: Ieva <ieva.vasiljeva@grafana.com>
Co-authored-by: Jo <joao.guerreiro@grafana.com>
Co-authored-by: Joey Tawadrous <joey.tawadrous@grafana.com>
Co-authored-by: Artur Wierzbicki <artur.wierzbicki@grafana.com>
Co-authored-by: Ivan Ortega Alba <ivanortegaalba@gmail.com>
Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Andreas Christou <andreas.christou@grafana.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
Co-authored-by: Galen <galen.kistler@grafana.com>
Co-authored-by: Adela Almasan <adela.almasan@grafana.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: Matias Chomicki <matyax@gmail.com>
Co-authored-by: J Stickler <julie.stickler@grafana.com>
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
Co-authored-by: Mitchel Seaman <mitchel.seaman@gmail.com>
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
Co-authored-by: Ezequiel Victorero <ezequiel.victorero@grafana.com>
Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
Co-authored-by: David Harris <david.harris@grafana.com>
Co-authored-by: Victor Marin <victor.marin@grafana.com>
Co-authored-by: Joey <90795735+joey-grafana@users.noreply.github.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
pull/69310/head
Isabel 2 years ago committed by GitHub
parent b10daa12b3
commit d4ef06451c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      docs/sources/_index.md
  2. 33
      docs/sources/breaking-changes/_index.md
  3. 309
      docs/sources/breaking-changes/breaking-changes-v10-0.md
  4. 6
      docs/sources/shared/upgrade/upgrade-common-tasks.md
  5. 2
      docs/sources/upgrade-guide/_index.md
  6. 94
      docs/sources/upgrade-guide/upgrade-v10.0/index.md
  7. 8
      docs/sources/whatsnew/_index.md
  8. 415
      docs/sources/whatsnew/whats-new-in-v10-0.md

@ -70,8 +70,9 @@ title: Grafana documentation
<h4>Provisioning</h4>
<p>Learn how to automate your Grafana configuration.</p>
</a>
<a href="{{< relref "whatsnew/whats-new-in-v9-5/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v9.5</h4>
<a href="{{< relref "whatsnew/whats-new-in-v10-0/" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v10</h4>
<p>Explore the features and enhancements in the latest release.</p>
</a>

@ -0,0 +1,33 @@
---
aliases:
- guides/
cascade:
labels:
products:
- cloud
- oss
title: Breaking changes
weight: 2
---
# Breaking changes in Grafana
In some cases, major releases that introduce many new features also introduce breaking changes. These changes are described, along with information about what to do, in the breaking changes pages specific to each release.
For our purposes, a breaking change is any change that requires users or operators to do something. This includes:
- Changes in one part of the system that could cause other components to fail
- Deprecations or removal of a feature
- Changes to an API that could break automation
- Changes that affect some plugins or functions of Grafana
- Migrations that can’t be rolled back
{{% admonition type="note" %}}
To learn what's available in a Grafana release, refer to the [What's new ]({{< relref "../whatsnew/" >}}) page for each version. For the steps we recommend when you upgrade, check out the [Upgrade guide]({{< relref "../upgrade-guide/" >}}) for each version.
{{% /admonition %}}
Refer to any of the following breaking changes guides:
{{< section menuTitle="true">}}

@ -0,0 +1,309 @@
---
description: Breaking changes for Grafana v10.0
keywords:
- grafana
- breaking changes
- documentation
- '10.0'
- release notes
title: Breaking changes in Grafana v10.0
weight: -1
---
# Breaking changes in Grafana v10.0
Following are breaking changes that you should be aware of when upgrading to Grafana v10.0.
For our purposes, a breaking change is any change that requires users or operators to do something. This includes:
- Changes in one part of the system that could cause other components to fail
- Deprecations or removal of a feature
- Changes to an API that could break automation
- Changes that affect some plugins or functions of Grafana
- Migrations that can’t be rolled back
For each change, the provided information:
- Helps you determine if you’re affected
- Describes the change or relevant background information
- Guides you in how to mitigate for the change or migrate
- Provides more learning resources
For release highlights and deprecations, refer to our [v10.0 What’s new]({{< relref "../whatsnew/whats-new-in-v10-0/" >}}). For the specific steps we recommend when you upgrade to v10.0, check out our [Upgrade guide]({{< relref "../upgrade-guide/upgrade-v10.0/index.md" >}}).
<!--
## Feature
You must use relative references when linking to docs within the Grafana repo. Please do not use absolute URLs. For more information about relrefs, refer to [Links and references](/docs/writers-toolkit/writing-guide/references/).-->
## General breaking changes
### Angular is deprecated and turned off by default for new Grafana Cloud stacks
#### You are affected if:
You create a new Grafana Cloud stack and intend to use any panel or data source plugins written using the Angular.js JavaScript framework. See the [list of Angular plugins]({{< relref "../developers/angular_deprecation/angular-plugins/" >}}).
#### Background
AngularJS is an old frontend framework that stopped active development many years ago. Because of that, it's a security risk. AngularJS also requires **unsafe-eval** in the [CSP (Content Security Policy)](https://developer.mozilla.org/en/Security/CSP) settings, which also reduces the security level of how javascript is executed in the browser.
Angular plugin support in Grafana is deprecated, meaning it will be removed in a future release. There are still some community and private plugins built using Angular. Starting with v9.0, Grafana has a server configuration option, called [angular_support_enabled]({{< relref "../setup-grafana/configure-grafana/#angular_support_enabled" >}}), that controls whether Angular plugin support is available.
#### Change in Grafana v10
Angular is disabled by default for all new Grafana Cloud stacks. Existing stacks in Grafana Cloud, Grafana Enterprise on-premise instances, and Grafana OSS instances will not be automatically impacted.
#### How to mitigate
If you're using Angular plugins in Grafana, try an alternative panel or data source that doesn't use Angular. This list of detected [Angular plugins]({{< relref "../developers/angular_deprecation/angular-plugins/" >}}) offers alternatives where they exist.
If you're a developer maintaining a plugin that uses Angular, we recommend you refactor or rewrite its frontend using React.js instead. The team at Grafana is ready to help and provide tools and guidance; you can reach us in [Slack](https://grafana.slack.com/archives/C3HJV5PNE) or on our [Forum](https://community.grafana.com/c/plugin-development/30).
#### Learn more
- [Angular Support Deprecation documentation]({{< relref "../developers/angular_deprecation/" >}})
### Grafana legacy alerting is deprecated and no longer accepts internal or external contributions
#### You are affected if:
You use Grafana legacy alerting and have requested new features or changes to it.
#### Description
Grafana legacy alerting (dashboard alerts) has been deprecated since Grafana v9.0, in favor of the new, improved Grafana Alerting. In Grafana v10, the legacy alerting codebase&mdash;which depends on Angular&mdash;is still available, but we'll no longer contribute to it or accept external contributions for it. We'll continue to work on the migration path from legacy alerting to Grafana Alerting for our remaining users that need to migrate.
#### Migration path
The new Grafana Alerting was introduced in Grafana 8 and is a superset of legacy alerting. Learn how to migrate your alerts in the [Upgrade Alerting documentation]({{< relref "../alerting/migrating-alerts/" >}}).
### API keys are migrating to service accounts
#### You are affected if:
You use Grafana API keys and haven't yet migrated to service accounts
#### Description
In Grafana v8.5, we introduced [service accounts](https://grafana.com/blog/2022/08/24/new-in-grafana-9.1-service-accounts-are-now-ga/), which are a superset of API keys that support token rotation and role-based access control (RBAC). They were promoted to general availability (GA) in v9.1, with an option to manually migrate API keys to service accounts through the UI and API since then. **When you upgrade to Grafana v10, Grafana will automatically migrate all API keys to service accounts and hide the API keys screen that was under the Admin section.**
This is a "breaking" change because if users are used to seeing and interacting with API keys, they won't see that page in navigation anymore and will need to navigate to the **Service accounts** page instead. However, your existing API tokens will remain fully functional and migrated to service accounts, so no automation will break. If you roll back to a previous version of Grafana, your API keys will remain intact.
Grafana's [HTTP API endpoints for generating and managing API Keys]({{< relref "../developers/http_api/auth/#create-api-token" >}}) remain functional, but we recommend you begin using the [Service account HTTP API]({{< relref "../developers/http_api/serviceaccount/" >}}) to generate and manage machine authentication instead.
#### Migration path
While upgrading to Grafana v10, you don't need to take any action; your API keys will be automatically migrated. To test or perform the migration from API keys to service accounts before upgrading to Grafana v10, follow our [migration documentation]({{< relref "../administration/api-keys/#migrate-api-keys-to-grafana-service-account" >}}").
#### Learn more
- [Documentation on migrating from API keys to service accounts]({{< relref "../administration/api-keys/" >}})
- [Blog post announcement with a video demo including how to migrate](https://grafana.com/blog/2022/08/24/new-in-grafana-9.1-service-accounts-are-now-ga/)
### The experimental "dashboard previews" feature is removed
#### You are affected if:
You have the `dashboardPreviews` feature toggle switched on.
#### Description
We're removing the experimental dashboard previews feature due to user permission and performance issues that prevented us from continuing its development. Dashboard previews have been behind a feature toggle since Grafana v9.0.
#### Migration path
The entire feature has been removed from Grafana. For users who enabled the `dashboardPreviews` feature flag, Grafana will continue to work as-is but without dashboard previews. We recommend you remove the `dashboardPreviews` feature flag from your Grafana configuration.
#### Learn more
- [Previous dashboard previews documentation](https://grafana.com/docs/grafana/v9.5/search/dashboard-previews/)
### RBAC is on by default in Grafana Enterprise and cannot be disabled
#### You are affected if:
You have actively disabled RBAC in Grafana's configuration.
#### Description
Starting from Grafana 9, RBAC has been enabled by default. An option to disable RBAC was introduced as an emergency mechanism and has only been used in rare cases. With Grafana v10 we removed the configuration option to disable RBAC. This ensures that Grafana works consistently across different features and decreases the risk of having issues with Grafana's legacy access control. Additionally, access control for some of the Grafana v10 features only work with the RBAC, so disabling it is no longer an option.
#### Migration path
No action is needed&mdash;migration is automatic. Users' current roles, permissions, SSO mapping, and other authorization functionality will continue to work as before.
### Usernames are now case-insensitive by default
#### You are affected if:
You run Grafana with a Postgres or sqlite database, you import users from different SSO identity providers (like Google and Active Directory), and users who signed in from different providers were previously created twice because of case differences (for example "<Myra@Grafana.com>" vs "<myra@grafana.com>."
#### Background
When someone signs up for a Grafana account, they can do it using an email or a login. The fields were case sensitive, which could lead to two or more accounts being created for the same user. Additionally, Grafana allows users to set up an authentication provider, and that provider might return an individual's sign-up email with an uppercased domain name or some combination of uppercase and lowercase letters.
Having several accounts leads to split user permissions, confusion among signup flows, and unused "zombie" accounts in your database. Plus, multiple accounts can introduce issues when switching between authentication providers. We refer to these inconsistencies in user uniqueness as a _user identity conflict_.
#### Change in Grafana v10
Grafana will start matching users without regard for case. Conflicting users will not be able to sign in.
#### Migration path
We've built a [CLI tool](https://grafana.com/blog/2022/12/12/guide-to-using-the-new-grafana-cli-user-identity-conflict-tool-in-grafana-9.3/) which users can use to resolve any potential conflicts beforehand. This breaking change was communicated already with Grafana v9.3.
#### Learn more
- [Blog post describing usage of the new CLI command](https://grafana.com/blog/2022/12/12/guide-to-using-the-new-grafana-cli-user-identity-conflict-tool-in-grafana-9.3/)
### The "Alias" field in the CloudWatch data source is removed
#### You are affected if:
You're using the "Alias" field in the CloudWatch data source, instead of using dynamic labels.
#### Description
Alias patterns in the CloudWatch query editor were replaced by Label (dynamic labels) behind a feature toggle. Starting from Grafana v9, Label has been enabled by default. With Grafana v10 we removed the option to disable Label and remove the Alias field entirely.
#### Migration path
Open and save each dashboard that uses the Alias field. Alias is migrated to Label automatically when you load the dashboard.
#### Learn more
- [Grafana CloudWatch documentation about the change]({{< relref "../datasources/aws-cloudwatch/query-editor/#label" >}})
### Athena data source plugin must be updated to version >=2.9.3
#### You are affected if:
You've installed and are using the Athena data source plugin.
#### Description
Grafana v10.0.0 ships with the new React 18 upgrade. In turn, changes in the batching of state updates in React 18 cause a bug in the query editor in Athena plugin versions <=2.9.2.
#### Migration path
Update the plugin to version 2.9.3 or higher in your Grafana instance management console. This will ensure your plugin query editor works as intended.
### Redshift data source plugin must be updated to version >=1.8.3
#### You are affected if:
You've installed and are using the Redshift data source plugin.
#### Description
Grafana v10.0.0 ships with the new React 18 upgrade. In turn, changes in the batching of state updates in React 18 cause a bug in the query editor in Redshift plugin versions <=1.8.3.
#### Migration path
Update the plugin to version 1.8.3 or higher in your Grafana instance management console. This will ensure your plugin query editor works as intended.
## For Plugin Developers
### Upgrading to React 18
#### You are affected if:
You've developed a Grafana plugin that uses the React JS framework (this includes most app, panel, and data source plugins).
#### Description
Grafana has been upgraded to React 18 and now leverages the new React client rendering API. Plugin authors in particular should be aware, as there could be unintended side effects due to the changes around automatic batching of state updates and consistent `useEffect` timings.
#### Migration path
As a plugin developer: once a canary build has been released (post-9.5.0), test your plugin against one of the grafana-dev docker builds [here](https://hub.docker.com/r/grafana/grafana-dev/tags?page=1) ([this one](https://hub.docker.com/layers/grafana/grafana-dev/10.0.0-111404pre/images/sha256-ac78acf54b44bd2ce7e68b796b1df47030da7f35e53b02bc3eec3f4de05f780f?context=explore) for example). Because of the extra optimisations made by React 18, some changes may be needed to maintain previous behavior.
#### Learn more
- [React 18 release notes](https://react.dev/blog/2022/03/29/react-v18)
- [React 18 upgrade guide](https://react.dev/blog/2022/03/08/react-18-upgrade-guide)
### Deprecated logs-related functions and variables have been removed from the "@grafana/data" and "@grafana/ui" packages
#### You are affected if:
You're a plugin author and you use one of the following logs-related functions:
- The interface type LogsParser in grafana-data
- The following functions and classes related to logs in the grafana-ui package: `1LogLabels`, `LogMessageAnsi`, `LogRows`, `getLogRowStyles.`, `getLogLevel`, `getLogLevelFromKey`, `addLogLevelToSeries`, `LogsParsers`, `calculateFieldStats`, `calculateLogsLabelStats`, `calculateStats`, `getParser`, `sortInAscendingOrder`, `sortInDescendingOrder`, `sortLogsResult`, `sortLogRows`, `checkLogsError`, `escapeUnescapedString`.
#### Description
Certain rarely-used logs-related functions and variables have been moved from grafana-packages to the core grafana codebase. These items have been marked as deprecated previously, and a deprecation-notice was issued in the grafana changelog. Plugin authors who have relied on these functions and variables being available will have to adjust their codebase.
#### Migration path
If you've written a data source or panel plugin, make sure it doesn't use the functions and variables that have been deprecated and removed.
#### Learn more
- [https://github.com/grafana/grafana/issues/65779](https://github.com/grafana/grafana/issues/65779)
- [https://github.com/grafana/grafana/issues/65778](https://github.com/grafana/grafana/issues/65778)
### DataFrame: Use Array<T> or Vector<T> for field values
<!--check on how the <T> are supposed to show up -->
#### You are affected if:
You're a plugin author and you've implemented your own version of Vector for data frames.
#### Description
Working with DataFrames was more complicated than it should have been because data was held in a Vector interface rather than a simple Array. In Grafana v10, the interface has been changed so developers can use simple arrays or Vectors.
#### Migration path
Any code using Vectors will continue to work without issue. If you've implemented your own version of Vector, it will need to be updated. The easiest approach is to refactor code so it extends MutableVector. This will work in both Grafana v9 and v10.
#### Learn more
- [https://github.com/grafana/grafana/issues/66480](https://github.com/grafana/grafana/issues/66480)
### grafana/toolkit CLI commands have been removed and migrated to the create-plugin package
#### You are affected if:
You develop plugins using @grafana/toolkit CLI commands.
#### Description
We announced the deprecation of the grafana/toolkit in v9.3 (November 2022) and have a new tool called create-plugin now available as a replacement. We encourage you to migrate and use our updated tooling. All grafana/toolkit commands except `build` are removed in Grafana v10.
Here are some of the benefits of create-plugin:
- **More flexible:** With @grafana/create-plugin, you have more control over your plugins and their dependencies, and can more easily customize the tooling to fit your specific needs.
- **Faster development time:** With its out-of-the-box development environment @grafana/create-plugin can significantly reduce development time compared to using @grafana/toolkit.
- **Improved testing capabilities:** Testing plugins with @grafana/create-plugin is much easier with GitHub workflows that automate unit and e2e test runs whenever changes are pushed to GitHub.
- **Better documentation:** The [documentation](https://grafana.github.io/plugin-tools/docs/creating-a-plugin) for @grafana/create-plugin is more comprehensive and easier to discover than that of @grafana/toolkit.
#### Migration path
You may already be using the new tooling. If you have an existing plugin previously created using the @grafana/toolkit, you can use the following command to migrate it to the new build tooling:
```
# Run this command from the root of your plugin
cd ./my-plugin
npx @grafana/create-plugin@latest migrate
```
#### Learn more
- [Migration guide](https://grafana.github.io/plugin-tools/docs/migrating-from-toolkit/)

@ -8,7 +8,7 @@ Because Grafana upgrades are backward compatible, the upgrade process is straigh
In addition to common tasks you should complete for all versions of Grafana, there might be additional upgrade tasks to complete for a version.
{{% admonition type="note" %}}
There might be minor breaking changes in some releases. We outline these changes in the [What's New ]({{< relref "../../whatsnew/" >}}) document for each release.
There might be breaking changes in some releases. We outline these changes in the [What's New ]({{< relref "../../whatsnew/" >}}) document for most releases or a separate [Breaking changes]({{< relref "../../breaking-changes/" >}}) document for releases with many breaking changes.
{{% /admonition %}}
For versions of Grafana prior to v9.2, we published additional information in the [Release Notes]({{< relref "../../release-notes/" >}}).
@ -142,7 +142,9 @@ To upgrade Grafana running in a Docker container, complete the following steps:
1. Run a commands similar to the following commands.
> **Note:** This is an example. The parameters you enter depend on how you configured your Grafana container.
{{% admonition type="note" %}}
This is an example. The parameters you enter depend on how you configured your Grafana container.
{{% /admonition %}}
```bash
docker pull grafana/grafana

@ -9,7 +9,7 @@ keywords:
- documentation
- upgrade
title: Upgrade Grafana
weight: 380
weight: 3
---
# Upgrade Grafana

@ -0,0 +1,94 @@
---
description: Guide for upgrading to Grafana v10.0
keywords:
- grafana
- configuration
- documentation
- upgrade
title: Upgrade to Grafana v10.0
menutitle: Upgrade to v10.0
weight: 1700
---
# Upgrade to Grafana v10.0
{{< docs/shared "upgrade/upgrade-common-tasks.md" >}}
## Technical notes
### Role-based access control changes
<!-- Vardan Torosyan -->
Role-based access control (RBAC) is now always enabled and we've removed the option to disable it.
No action is required.
However, if you decide to **downgrade** for any reason and **disable RBAC**, you'll need to run through the following guide before upgrading again.
The aforementioned sequence of actions (upgrade, downgrade, disable RBAC, upgrade again) causes legacy access control and role-based access control systems to be out of sync.
As a side effect, permissions for some Grafana resources, like dashboards, might be lost.
To prevent that from happening, before you upgrade Grafana back again, please take the following steps:
1. Stop Grafana.
2. In your database, run the following SQL queries:
```sql
DELETE
FROM builtin_role
where role_id IN (SELECT id
FROM role
WHERE name LIKE 'managed:%');
DELETE
FROM team_role
where role_id IN (SELECT id
FROM role
WHERE name LIKE 'managed:%');
DELETE
FROM user_role
where role_id IN (SELECT id
FROM role
WHERE name LIKE 'managed:%');
DELETE
FROM permission
where role_id IN (SELECT id
FROM role
WHERE name LIKE 'managed:%');
DELETE
FROM role
WHERE name LIKE 'managed:%';
DELETE
FROM migration_log
WHERE migration_id IN ('teams permissions migration',
'dashboard permissions',
'dashboard permissions uid scopes',
'data source permissions',
'data source uid permissions',
'managed permissions migration',
'managed folder permissions alert actions repeated migration',
'managed permissions migration enterprise');
```
3. Start Grafana again.
### Case-insensitive usernames and email addresses
<!-- Vardan Torosyan -->
Usernames and email addresses are now treated as case-insensitive in Grafana. If you're not using MySQL as a database, potential user identity conflicts may arise when users try to log in.
We recommend you resolve any potential conflicts in advance by using the [Grafana CLI tool for managing user conflicts](/blog/2022/12/12/guide-to-using-the-new-grafana-cli-user-identity-conflict-tool-in-grafana-9.3/).
### Dashboard previews removal
<!-- Artur Wierzbicki -->
We've removed the Dashboard previews feature introduced behind a feature flag in Grafana version 9.0.
No action is required.
The `dashboardPreviews` feature flag is no longer available and can be safely removed from the Grafana server configuration.

@ -68,10 +68,16 @@ description: Learn about new and changed features in Grafana.
For release highlights, deprecations, and breaking changes in Grafana releases, refer to these "What's new" pages for each version.
> **Note:** For Grafana versions prior to v9.2, additional information might also be available in the archive of [release notes]({{< relref "../release-notes" >}}).
{{% admonition type="note" %}}
For Grafana versions prior to v9.2, additional information might also be available in the archive of [release notes]({{< relref "../release-notes/" >}}).
{{% /admonition %}}
For a complete list of every change, with links to pull requests and related issues when available, see the [Changelog](https://github.com/grafana/grafana/blob/main/CHANGELOG.md).
## Grafana 10
- [What's new in 10.0]({{< relref "whats-new-in-v10-0/" >}})
## Grafana 9
- [What's new in 9.5]({{< relref "./whats-new-in-v9-5" >}})

@ -0,0 +1,415 @@
---
description: Feature and improvement highlights for Grafana v10.0
keywords:
- grafana
- new
- documentation
- '10.0'
- release notes
title: What's new in Grafana v10.0
weight: -37
---
# What’s new in Grafana v10.0
Welcome to Grafana 10.0! Read on to learn about changes to search and navigation, dashboards and visualizations, and security and authentication.
For even more detail about all the changes in this release, refer to the [changelog](https://github.com/grafana/grafana/blob/master/CHANGELOG.md). For the specific steps we recommend when you upgrade to v10.0, check out our [Upgrade Guide]({{< relref "../upgrade-guide/upgrade-v10.0/index.md" >}}). For information about breaking changes in this release, refer to [Breaking changes]({{< relref "../breaking-changes/breaking-changes-v10-0/" >}}).
<!-- Template below
## Feature
<!-- Name of contributor -->
<!-- [Generally available | Available in private/public preview | Experimental] in Grafana [Open Source, Enterprise, Cloud Free, Cloud Pro, Cloud Advanced]
Description. Include an overview of the feature and problem it solves, and where to learn more (like a link to the docs).
{{% admonition type="note" %}}
You must use relative references when linking to docs within the Grafana repo. Please do not use absolute URLs. For more information about relrefs, refer to [Links and references](/docs/writers-toolkit/writing-guide/references/).
{{% /admonition %}}
-->
## Correlations
<!-- Jay Goodson -->
_Available in public preview in all editions of Grafana._
You can now bring context from multiple data sources into the Explore experience. Correlations is an extension of our existing data links functionality and now enables you to link from any data source to any other data source.
Correlations enable you to seamlessly jump from one data source to another. You define relationships between your different data sources; when you're using Explore, simply click a button next to a related field in one data source and Grafana will run the corresponding query in the other data source.
Correlations is currently in preview. As such, we recommended you only enable it on test or development instances, rather than in production environments.
To try out Correlations, enable the `correlations` feature toggle. If you’re using Grafana Cloud and would like to enable this feature, please contact customer support.
In subsequent releases, we’ll be refining and enhancing the user interface for Correlations, to provide a more streamlined user experience.
## Scenes
<!--Dominik Prokop & Natalia Bernarte -->
_Experimental in all editions of Grafana._
Scenes is a new front-end library by Grafana that empowers application engineers to effortlessly build stunning dashboard experiences right into their products. With Scenes, you can easily create apps that mirror the Grafana dashboarding experience, complete with template variable support, flexible layouts, dynamic panel rendering, and so much more.
To try it out, go to the [@grafana/scenes](https://github.com/grafana/scenes) repository.
To learn more, refer to the [Scenes documentation](https://grafana.github.io/scenes/).
## Subfolders
<!-- Zsofia K. -->
_Available in public preview in all editions of Grafana._
You can now try out creating subfolders in Grafana for organizing your dashboards and alerts. You can enable this new feature in your development environment to create, read, update, and delete subfolders, making it easier to sort resources by business units, departments, and teams.
You can also set up permissions using Role-Based Access Control (RBAC). Folder permissions cascade, being inherited from the parent folder, which simplifies access management.
The ability to add subfolders is currently in preview, with more functionality coming in subsequent releases. This includes creating subfolders using Terraform, and displaying the full folder tree when creating and moving resources through Grafana’s UI. We recommend that you enable this feature only on test or development instances, rather than in production environments.
To get started creating subfolders, enable the `nestedFolders` feature toggle. If you’re using Grafana Cloud, and would like to enable this feature, please contact customer support.
{{< figure src="/media/docs/grafana/screenshot-grafana-10.0-nested-folders-2.png" max-width="750px" caption="Subfolders in Grafana" >}}
## Dashboards and visualizations
### The Canvas panel is GA
_Generally available in all editions of Grafana._
<!-- Nathan Marrs -->
We're promoting the canvas panel out of public preview and into general availability. Over the past several months we've introduced multiple enhancements to the panel such as the ability to draw connections between elements, the ability to set the color and size of connections based on data, and the ability to add data links. We're excited to include Canvas as a first class citizen in Grafana’s core panel library. To learn more about the panel, refer to our [Canvas documentation]({{< relref "../panels-visualizations/visualizations/canvas" >}}). Also, check out our [latest blog post about canvas](https://grafana.com/blog/2023/05/11/use-canvas-panels-to-customize-visualizations-in-grafana/).
{{< figure src="/media/docs/grafana/screenshot-grafana-10-0-canvas-service-graph.png" max-width="750px" caption="Canvas service graph" >}}
### New Trend Panel
<!-- Nathan Marrs -->
_Experimental in all editions of Grafana_
The Trends panel allows you to display trends where the x-axis is numeric and not time. This experimental panel addresses gaps that were not solved by either the Time series or XY Chart panels. For example, you can plot function graphs, rpm/torque curves, supply/demand relationships, and more. To learn more about the Trend panel, refer to the [Trend documentation]({{< relref "../panels-visualizations/visualizations/trend" >}}).
{{< figure src="/media/docs/grafana/screenshot-grafana-10-0-trend-panel-new-colors.png" max-width="750px" caption="Trend engine power and torque curves" >}}
### New Datagrid panel
<!-- Victor Marin -->
_Experimental in all editions of Grafana_
Datagrid is a new panel that allows you to edit your data within a Grafana dashboard. Imagine having a spreadsheet-like view where you can fine-tune data pulled from a data source or create your own dataset from scratch and use it within your dashboard to update your panels in real time. That's what Datagrid provides. You can also use the Datagrid panel as a data source used by other panels to augment other data.
To use this new panel editing functionality, enable the `enableDatagridEditing` feature toggle.
Currently, the Datagrid Panel supports the following features in Grafana version 10.0:
- Creating and deleting rows and columns
- Data and column header edit or delete
- Search functionality
- Column freezing
- Grid selection actions (copy/paste/delete)
- Draggable columns and rows
- Series selection when pulling data from a data source
To learn more, refer to the [Datagrid documentation]({{< relref "../panels-visualizations/visualizations/datagrid/" >}}).
In subsequent releases, we’ll continue adding features to the Datagrid panel to further improve the user experience.
### Drag and drop spreadsheets into Grafana
_Experimental in all editions of Grafana_
<!-- Oscar Kilhed -->
It's easier than ever to view local data in Grafana: introducing drag and drop.
The drag and drop functionality allows you to upload your csv, Excel, or numbers files by simply dragging and dropping them into the query editor of the Grafana data source.
To try out drag and drop, enable the `editPanelCSVDragAndDrop` feature toggle.
As of Grafana version 10.0, drag and drop supports the following scenarios:
- Drag and drop files into the panel editor
- Replace files in the panel editor
- Default table panel creation
The data from dragged and dropped files is stored in the dashboard JSON and file size is limited to 1MB. To learn more about drag and drop functionality, refer to the official documentation.
### Select data sources more easily
<!-- Ivan Ortega & Natalia Bernarte -->
_Generally available in all editions of Grafana._
Concepts like data sources and dashboard panels are hard to grasp and it can be a struggle to go from Grafana’s “empty state” to a working dashboard that displays data. Our latest advancements streamline the process of selecting the ideal data source in Grafana, prioritizing recent usage, and providing labels and supplementary descriptions.
With this flow, selecting a data source has been greatly simplified, providing a clear overview of available data sources and allowing you to quickly connect to a new one when needed.
{{< video-embed src="/media/docs/grafana/screen-recording-ds-picker-whats-new-10-final.mp4" max-width="750px" caption="Datasource picker flow" >}}
### Time series time region support
_Generally available in all editions of Grafana._
<!-- Nathan Marrs -->
We've implemented support for adding time regions to the Time series panel. Time regions provide a more contextualized experience, enabling you to highlight certain days of the week, such as Monday to Friday to display work weeks, right alongside your data. Time regions are also a useful way to highlight specific parts of a day like night, work hours, or whatever you want to define for each day. They allow you to quickly orient yourself in parts of the day or ignore highlighted parts of the time series.
To learn more, refer to our [time region documentation]({{< relref "../dashboards/build-dashboards/annotate-visualizations/#add-time-region" >}}).
{{< figure src="/media/docs/grafana/screenshot-grafana-10-0-time-regions.png" max-width="750px" caption="Time regions" >}}
### Annotation filtering
_Generally available in all editions of Grafana._
<!-- Nathan Marrs -->
You can now filter dashboard annotations to apply annotations to all panels or selected panels, or use them to exclude selected panels.
To learn more, refer to our [annotation filtering documentation]({{< relref "../dashboards/build-dashboards/annotate-visualizations/#filter-by-panel" >}}).
{{< figure src="/media/docs/grafana/screenshot-grafana-10-0-annotation-filtering.png" max-width="750px" caption="Annotation filtering" >}}
### Redesigned and improved log context
_Generally available in all editions of Grafana._
<!-- Sven Grossman -->
We've made enhancements to Grafana's log context feature, resulting in a more seamless and consistent user experience. With the updated user interface, you can expect the same level of functionality and usability in log context as you would in any other logs panel.
Notably, we've added the following new features that streamline the log context experience:
- Log details with actions, including a **Copy** button, to easily copy lines, and an eye icon to display only selected labels, allowing you to focus on specific information without leaving the log context section.
- A **Wrap Lines** toggle to automatically wrap long lines of text for easier reading and analysis of log entry context directly in log context.
- An **Open in split view** button to execute the context query for a log entry in a split screen in Explore.
- Only for Loki: A quick-filter menu that lets you easily refine the context query by selecting and removing labels.
{{< figure src="/media/docs/grafana/log-context-loki-2-whats-new-10-0-.png" max-width="750px" caption="Grafana Log Context" >}}
These improvements make working with log context in Grafana more intuitive and efficient, ultimately improving the overall user experience.
### Query multiple data sources in Explore
<!-- Piotr Jamroz -->
_Generally available in all editions of Grafana._
You can now query multiple data sources simultaneously in Explore. Select "Mixed" from the data source picker and specify a data source for each query.
The "Mixed" data source in Explore is gradually rolling out to all users on Grafana Cloud. If you’re using Grafana Open Source or Enterprise, you can disable this feature using the `exploreMixedDatasource` feature toggle.
## Public dashboards
<!-- Juani Cabanas & Ezequiel Victorero & Natalia Bernarte -->
_Available in public preview in all editions of Grafana._
Public dashboards allow you to share your Grafana dashboard with anyone without requiring them to log in to Grafana. This is useful when you want to make your dashboard available to the world.
With this update, we've made the following improvements:
- The time picker and annotations can be toggled on or off in public dashboard configuration.
- You can see a list of all your public dashboards in **Dashboards > Public dashboards**.
- The user interface has been improved with a new modal design, as well as paused and not found pages.
- Added support for collapsed rows, hidden queries, and zoom into panels.
To try it out, enable the `publicDashboards` feature toggle. If you’re using Grafana Cloud, and would like to enable this feature, please contact customer support.
To learn more, refer to our [public dashboards documentation]({{< relref "../dashboards/dashboard-public" >}}).
### Public dashboards insights
<!-- Juani Cabanas & Ezequiel Victorero & Natalia Bernarte -->
_Available in public preview in Grafana Enterprise, Cloud Pro, and Cloud Advanced._
Public dashboards insights provide valuable information about your public dashboard usage. You can easily access and view important metrics such as the daily query count, the number of views in the last 30 days, and the number of errors in the last 30 days.
To try it out, enable the `publicDashboards` feature toggle. If you’re using Grafana Cloud, and would like to enable this feature, please contact customer support.
### Email sharing for public dashboards
<!-- Juani Cabanas & Ezequiel Victorero & Natalia Bernarte -->
_Available in public preview in Cloud Pro and Cloud Advanced._
Our email sharing feature allows you to easily share your public dashboards and make them visible only with specific individuals. When you add their email addresses, they receive a one-time link to access the dashboard. This provides you with greater control over who can view your public dashboards.
We've also added a **Public dashboard users** tab in **Administration > Users** where you can view a list of users who have accessed your public dashboards by way of email sharing.
To try it out, please contact customer support.
{{% admonition type="note" %}}
This feature will have a cost by active users after being promoted into general availability.
{{% /admonition %}}
To learn more, refer to our [public dashboards documentation]({{< relref "../dashboards/dashboard-public" >}}).
## Authentication and authorization
### Configure your SAML provider in the Grafana UI
<!-- Vardan Torosyan -->
_Generally available in Grafana Enterprise, Cloud Pro, and Cloud Advanced._
You can now configure SAML using our new user interface, making the process easier and more convenient than ever before.
With the new user interface (UI), you can now configure SAML without needing to restart Grafana and you can control access to the configuration UI by using [role-based access control (RBAC)]({{< relref "../administration/roles-and-permissions/access-control/" >}}), which makes the process much faster and more efficient.
The SAML UI is available in Grafana Enterprise, Cloud Pro, and Advanced. It's user-friendly, with clear instructions and helpful prompts to guide you through the process.
For more information on how to set up SAML using the Grafana UI, refer to [Configure SAML authentication using the Grafana user interface]({{< relref "../setup-grafana/configure-security/configure-authentication/saml-ui/" >}}).
### Case-insensitive usernames and email addresses
<!-- Vardan Torosyan -->
_Generally available in all editions of Grafana._
Usernames and email addresses are now treated as case-insensitive, which means that you no longer need to worry about capitalization when logging in or creating an account.
From now on, whether you type your username or email address in uppercase, lowercase, or a combination of both, Grafana will treat them as the same. This simplifies the login process and reduces the risk of typos and identity conflicts when changing authentication providers.
To help you deal with potential user identity conflicts, we've built a [Grafana CLI user identity conflict resolver tool](https://grafana.com/blog/2022/12/12/guide-to-using-the-new-grafana-cli-user-identity-conflict-tool-in-grafana-9.3/), which is available from Grafana version 9.3.
{{% admonition type="note" %}}
If you're running Grafana with MySQL as a database, this change doesn't have any impact as MySQL users were already treated as case-insensitive.
{{% /admonition %}}
## Tracing
### Span filtering for traces
<!-- Timur Olzhabayev -->
_Available in public preview in Grafana Cloud Free, Cloud Pro, and Cloud Advanced._
You can now work much more efficiently with traces that consist of a large number of spans with span filtering.
Span filters exist above the trace view and allow you to filter the spans that are shown in the trace view. The more filters you add, the more specifically span are filtered.
Currently, you can add one or more of the following filters:
- Service name
- Span name
- Duration
- Tags (which include tags, process tags, and log fields)
Span filtering is currently in preview. As such, it's recommended to enable it only on test or development instances, rather than in production environments.
To try it out, enable the `newTraceViewHeader` feature toggle. This feature is enabled by default in Grafana Cloud.
### OpenTelemetry replacing OpenTracing
<!-- Timur Olzhabayev -->
_Generally available in all editions of Grafana._
We've started the work to migrate to OpenTelemetry in Grafana version 8.4; now we're removing OpenTracing and, for those who still have it configured, replacing it under the hood with OpenTelemetry. These changes are backwards compatible, so you don't need to change anything the feature will continue working as it did before.
## Data sources
### Azure Monitor data source
<!-- Andreas Christou -->
_Generally available in all editions of Grafana._
The Azure Monitor data source now supports visualizing Application Insights Traces. A new query type, `Traces`, has been added to the service list. This can be used against Application Insights resources to query and visualize traces in both a tabular format and using the built-in Traces visualization.
This also includes support for a new Azure API that will correlate trace IDs against all Application Insights resources that are accessible to the principal that the data source is configured with. To support this feature, a new query builder has been added with support for querying the Application Insights resource using an `Operation ID` or visualizing and filtering the data based on the event type and a subset of the properties available on the trace.
### Prometheus dashboard performance improvements
<!-- Galen Kistler -->
_Experimental in Grafana Open Source._
The Prometheus data source now supports delta (incremental) querying, in which values from data frames are cached and leveraged to modify future requests to avoid requesting duplicate values in dashboards with now-relative (that is, any dashboard querying until "now") queries. This feature is disabled by default as it is still experimental, but can be enabled and configured in the Prometheus data source configuration.
This update will reduce network load, and speed up now-relative dashboards, especially for dashboards returning a lot of data.
### Phlare renamed to Grafana Pyroscope
<!-- Andrej Ocenus -->
_Generally available in all editions of Grafana._
We've renamed the Phlare data source _Grafana Pyroscope_ data source as part of the ongoing unification of the Phlare and Pyroscope projects. This data source supports both Phlare and Pyroscope backends. Existing instances of the data source should not be affected. When you create a new instance of the data source, the backend type will be autodetected on the configuration page, or you can select it manually.
### Data plane
<!-- Kyle Brandt -->
_Generally available in all editions of Grafana._
Data types are now being defined to create a data plane layer between producers and consumers of data. By defining data types as part of Grafana's platform, plugin and application developers can use these data types to achieve more reliable interoperability across the platform.
Learn more:
- [Data plane contract - Technical specification](https://grafana.github.io/dataplane/contract/)
- [Example typed dataframes and Go lib to use them in tests](https://github.com/grafana/dataplane/tree/main/examples)
- [Go library for reading and writing dataplane data](https://github.com/grafana/dataplane/tree/main/sdata)
## Alerting
_All Alerting features are generally available in all editions of Grafana._
### State history view
<!-- Brenda Muir -->
Use the improved State history view to get insight into how your alert instances behave over time. View information on when a state change occurred, what the previous state was, the current state, any other alert instances that changed their state at the same time, as well as what the query value was that triggered the change.
{{< figure src="/media/docs/alerting/state-history.png" max-width="750px" caption="State history view" >}}
### Preview notification templates
<!-- Brenda Muir -->
Preview how your notification templates will look before using them in your contact points.
{{< figure src="/media/docs/alerting/template-preview.png" max-width="750px" caption="Preview notification templates" >}}
## Security
### Trusted Types support
<!-- Tobias Skarhed -->
_Experimental in all editions of Grafana._
Use [trusted types](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/trusted-types) to reduce the risk of XSS vulnerabilities, including the sanitization of third party libraries or plugins that have not explicitly performed sanitization.
To use this feature in report-only mode:
- Enable `content_security_policy_report_only` in the configuration.
- Add `require-trusted-types-for 'script';` to the `content_security_policy_report_only_template`.
To use it in enforce mode:
- Enable `content_security_policy` in the configuration.
- Add `require-trusted-types-for 'script';` to the `content_security_policy_template`.
This is an experimental web technology with limited browser support.
### Private data source connect
<!-- Mitch Seaman -->
_Available in public preview in Grafana Cloud Pro and Advanced._
Some data sources, like MySQL databases, Prometheus instances or Elasticsearch clusters, run in private networks, like on premises networks or virtual private clouds (VPCs) running in AWS, GCP, or Azure.
To query these data sources from Grafana Cloud, you've had to open your private network to a range of IP addresses, a non-starter for many IT Security teams. The challenge is, how do you connect to your private data from Grafana Cloud, without exposing your network?
The answer is Private Data Source Connect (PDC), available now in public preview in Grafana Cloud Pro and Advanced. PDC uses SOCKS over SSH to establish a secure connection between a lightweight PDC agent you deploy on your network and your Grafana Cloud stack. PDC keeps the network connection totally under your control. It’s easy to set up and manage, uses industry-standard security protocols, and works across public cloud vendors and a wide variety of secure networks. Learn more in our [Private data source connect documentation](/docs/grafana-cloud/data-configuration/configure-private-datasource-connect).
## Deprecations
Changing the folder UID through the API is deprecated. This functionality will be removed in a future release.
Loading…
Cancel
Save