1+++ 2title = "What's new in Grafana v8.0" 3description = "Feature and improvement highlights for Grafana v8.0" 4keywords = ["grafana", "new", "documentation", "8.0", "release notes"] 5weight = -33 6aliases = ["/docs/grafana/latest/guides/whats-new-in-v8-0/"] 7[_build] 8list = false 9+++ 10 11# What’s new in Grafana v8.0 12 13This topic includes the release notes for Grafana v8.0. For all details, read the full [CHANGELOG.md](https://github.com/grafana/grafana/blob/master/CHANGELOG.md). 14 15## Grafana OSS features 16 17These features are included in the Grafana open source edition. 18 19### Grafana v8.0 alerts 20 21The new alerts in Grafana 8.0 are an opt-in feature that centralizes alerting information for Grafana managed alerts and alerts from Prometheus-compatible data sources in one UI and API. You can create and edit alerting rules for Grafana managed alerts, Cortex alerts, and Loki alerts as well as see alerting information from prometheus-compatible data sources in a single, searchable view. For more information, on how to create and edit alerts and notifications, refer to [Overview of Grafana 8.0 alerts]({{< relref "../alerting/unified-alerting/_index.md" >}}). 22 23As part of the new alert changes, we have introduced a new data source, Alertmanager, which includes built-in support for Prometheus Alertmanager. It is presently in alpha and it not accessible unless alpha plugins are enabled in Grafana settings. For more information, refer to [Alertmanager data source]({{< relref "../datasources/alertmanager.md" >}}). 24 25> **Note:** Out of the box, Grafana still supports old Grafana alerts. They are legacy alerts at this time, and will be deprecated in a future release. 26 27To learn more about the differences between new alerts and the legacy alerts, refer to [What's New with Grafana 8 Alerts]({{< relref "../alerting/unified-alerting/difference-old-new.md" >}}). 28 29### Library panels 30 31Library panels allow users to build panels that can be used in multiple dashboards. Any updates made to that shared panel will then automatically be applied to all the dashboards that have that panel. For instructions on how to create, add, unlink and manage library panels, refer to [Library panels]({{< relref "../panels/panel-library.md" >}}). 32 33### Real-time streaming 34 35Data sources can now send real-time updates to dashboards over a websocket connection. This can be used with the [MQTT data source](https://github.com/grafana/mqtt-datasource). 36 37In addition to data source integration, events can be sent to dashboards by posting metrics to the new live endpoint: `/api/live/push` endpoint. 38 39These metrics will be broadcast to all dashboards connected to that stream endpoint. 40 41For more information about real-time streaming, refer to [Grafana Live documentation]({{< relref "../live/_index.md" >}}). 42 43### Prometheus metrics browser 44 45The Prometheus metrics browser allows you to quickly find metrics and select relevant labels to build basic queries. If supported by your Prometheus instance, each metric will show its HELP and TYPE as a tooltip. For more information, refer to [Metrics browser documentation]({{< relref "../datasources/prometheus.md#metrics-browser" >}}). 46 47### Bar chart visualization (beta) 48 49The Bar chart panel is a new visualization that supports categorical data. It only supports one data frame and it needs to have at least one string field that will be used as the category for an X or Y axis and one or more numerical fields. 50 51{{< figure src="/static/img/docs/bar-chart-panel/bar-chart-example-v8-0.png" max-width="1025px" caption="Bar chart example" >}} 52 53To use it with time series you first have to add a **Reduce** transform. 54 55For more information, refer to [Bar chart visualization]({{< relref "../visualizations/bar-chart.md" >}}). 56 57### State timeline visualization (beta) 58 59The State timeline visualization shows discrete state changes over time. Each field or series is rendered as a unique horizontal band. This panel works well with string or boolean states, but it can also be used with time series data. When used with time series data, the thresholds are used to turn the numerical values into discrete state regions. 60 61This panel also takes advantage of the new value mapping features that allow you to color string and boolean values. 62 63Example with string values: 64{{< figure src="/static/img/docs/v8/state_timeline_strings.png" max-width="800px" caption="state timeline with string states" >}} 65 66With time series data and thresholds: 67{{< figure src="/static/img/docs/v8/state_timeline_time_series.png" max-width="800px" caption="state timeline with time series" >}} 68 69For more information, refer to [State timeline visualization]({{< relref "../visualizations/state-timeline.md" >}}). 70 71### Status history visualization (beta) 72 73A sister panel to the state timeline is the new Status history panel visualization. It can display periodic states in a grid view. It supports both numerical, string, or boolean states. You can assign colors using value mappings, thresholds, or gradient color. For more information, refer to [Status history]({{< relref "../visualizations/status-history.md" >}}). 74schemes. 75 76![Status grid visualization](/static/img/docs/status-grid/status-grid-8-0.png) 77 78### Histogram visualization (beta) 79 80This hidden feature of the old Graph panel is now a standalone visualization. It combines a histogram transformation and bar chart visualization into a single, integrated, easy-to-use panel. There is also a new standalone histogram transformation that can be paired with any visualization. 81 82{{< figure src="/static/img/docs/histogram/histogram-8-0.png" max-width="1025px" caption="Histogram example" >}} 83 84For more information, refer to [Histogram]({{< relref "../visualizations/histogram.md" >}}) 85 86### Time series visualization updates 87 88The Time series is out of beta! We are removing the `Beta` tag and graduating the Time series visualization to a stable state. 89 90- **Time series** is now the default visualization option, replacing the **Graph (old)**. 91- The Time series panel now supports stacking. For more information, refer to [Graph stacked time series]({{< relref "../visualizations/time-series/graph-time-series-stacking.md" >}}). 92- You can now add alerts in the Time series panel, just like the old Graph panel. 93- Updated [connect null values]({{< relref "../visualizations/time-series/graph-time-series-as-lines.md#connect-null-values" >}}) options. 94- We added support for a shared crosshair and a tooltip that’s now smarter when it comes to data display in the tooltip. 95- Various performance improvements. 96 97[Time series panel]({{< relref "../visualizations/time-series/_index.md" >}}) topics have been updated as a result of these changes. 98 99### Node graph visualization updates 100 101You can now expand the node graph for the displayed trace when using the Trace to logs feature. Depending on the data source, this can show spans of the trace as nodes in the graph, or as some additional context like service map based on the current trace. 102 103We also added a grid view and the ability to explore hidden nodes. 104 105[Tracing in Explore]({{< relref "../explore/trace-integration.md" >}}) and [Node graph]({{< relref "../visualizations/node-graph.md" >}}) were updated as a result of these changes. 106 107### Pie chart visualization updates 108 109The Pie chart is out of beta! We are removing the `beta` tag and graduating the Pie chart visualization to a stable state. 110 111### Panel editor updates 112 113Lots of panel editor improvements, heavily informed by user research and community feedback. 114 115- All options are now shown in a single pane. 116- You can now search panel options. 117- The Value mappings feature has been completely redesigned. For more information, refer to [Value mappings]({{< relref "../panels/value-mappings.md" >}}). 118- New **Table view** option is always available. 119 120The [Panels]({{< relref "../panels/_index.md" >}}) section has been updated to reflect these changes. 121 122### Look and feel update 123 124Grafana 8 comes with a refreshed look and feel, including themes changed to be more accessible. The improved Grafana UI brings a number of adjustments and tweaks that make the application even more fun to use. Enjoy the new home dashboard design! 125 126Under the hood, the new theme architecture enables us to bring more sophisticated themes control in the future. 127 128### Download logs 129 130When you inspect a panel, you can now download log results as a text (.txt) file. 131 132[Download log results]({{< relref "../panels/inspect-panel.md#download-log-results" >}}) in [Inspect a panel]({{< relref "../panels/inspect-panel.md" >}}) was added as a result of this feature. 133 134### Inspector in Explore 135 136The new Explore inspector helps you understand and troubleshoot your queries. You can inspect the raw data, export that data to a comma-separated values (CSV) file, export log results in text format, and view query requests. 137 138[Inspector in Explore]({{< relref "../explore/explore-inspector.md" >}}) was added as a result of this feature. 139 140### Explore log improvements 141 142Log navigation in Explore has been significantly improved. We added pagination to logs, so you can click through older or newer logs as needed. 143 144[Logs in Explore]({{< relref "../explore/logs-integration.md" >}}) was updated as a result of these changes. 145 146![Navigate logs in Explore](/static/img/docs/explore/navigate-logs-8-0.png) 147 148### Plugin catalog 149 150You can now use the Plugin catalog app to easily manage your plugins from within Grafana. Install, update, and uninstall plugins without requiring a server restart. 151 152[Plugin catalog]({{< relref "../plugins/catalog.md" >}}) was added as a result of this feature. 153 154### Performance improvements 155 156Grafana 8.0 includes many performance enhancements. 157 158#### Initial startup and load performance 159 160We reduced the Grafana initial download size massively, approximately 40%. This means that on slower or mobile connections, the initial login page or home dashboard will load much faster. 161 162All panels that have migrated from Flot to uPlot will also render two to three times faster because the library is much more efficient. Right now, this includes the Time series, Stat, Timeline, Histogram, and Barchart panel visualizations. 163 164#### Operational and runtime performance 165 166These improvements affect any subsequent data updates or interactions, including: 167 168- Streaming performance 169- General speed of interaction, such as zooming, tooltips, synchronized cursors, and panel updates while editing 170 171### Data source updates 172 173The following data source updates are included with this Grafana release. 174 175#### Azure Monitor data source 176 177Azure Resource Graph is now supported in the Azure Monitor data source. This is a service in Azure that is designed to extend Azure Resource Management by providing efficient and performant exploration of your Azure resources. 178 179The Azure Monitor data source now supports Managed Identity for users hosting Grafana in Azure to simplify and secure configuring Azure Monitor in Grafana. 180 181Also, in addition to querying Log Analytics Workspaces, you can now query the logs for any individual [supported resource](https://docs.microsoft.com/en-us/azure/azure-monitor/essentials/metrics-supported), or for all resources in a subscription or resource group. 182 183> **Note:** In Grafana 7.5 we started the deprecation for separate Application Insights queries, in favor of querying Application Insights resources through Metrics and Logs. In Grafana 8.0 new Application Insights and Insights Analytics queries cannot be made, and existing queries have been made read-only. For more details, refer to the [Deprecating Application Insights]({{< relref "../datasources/azuremonitor/_index.md#deprecating-application-insights" >}}). 184 185[Azure Monitor data source]({{< relref "../datasources/azuremonitor/_index.md" >}}) was updated as a result of these changes. 186 187#### Elasticsearch data source 188 189[Elasticsearch data source]({{< relref "../datasources/elasticsearch.md" >}}) and [Provisioning]({{< relref "../administration/provisioning.md" >}}) were updated as a result of these changes. 190 191##### Use semver strings to identify Elasticsearch version 192 193We changed how the configured Elasticsearch version is handled. You can now specify via provisioning the full semver string version of your instance (such as “7.12.1”) instead of the old version format based on numbers. There’s no manual intervention needed, the old options will be correctly recognized. 194 195##### Generic support for template variables 196 197You can now use a different interpolation method to use template variables in a more extensive way. You can now use template variables in every query editor field that allows free input. 198 199![Elasticsearch template variables](/static/img/docs/elasticsearch/input-templates-8-0.png) 200 201##### Allow omitting field for metrics that support inline scripts 202 203Metric aggregations can be specified without a field if a script is provided. You can now deselect fields for metrics aggregation when they support scripting. 204 205Previously this was only possible when adding a new metric without selecting a field, because once selected, the field could not have been removed. 206 207![Elasticsearch omit fields](/static/img/docs/elasticsearch/omit-fields-8-0.png) 208 209##### Allow setting a custom limit for log queries 210 211You can now set a custom line limit for logs queries instead of accepting the previously hard-coded 500. We also simplified the query editor to only show relevant fields when issuing logs queries. 212 213![Elasticsearch custom log limit](/static/img/docs/elasticsearch/custom-log-limit-8-0.png) 214 215##### Guess field type from first non-empty value 216 217Response values were always interpreted as strings in Elasticsearch responses, which caused issues with some visualization types that applied logic based on numeric values. We now apply some heuristics to detect value types from the first non-empty value in each response. 218 219#### Google Cloud Monitoring data source 220 221In a prior release, Cloud Monitoring added _preprocessing_ support in their query editor. This capability has been added to the Cloud Monitoring data source in Grafana. 222 223Whenever a metric is selected in the query editor, a suitable preprocessing option is automatically selected for you. To avoid breaking changes, preprocessing is not enabled by default on existing queries. If you want to use preprocessing for existing queries, you have to manually select one in the query editor. 224 225[Google Cloud Monitoring data source]({{< relref "../datasources/google-cloud-monitoring/_index.md#pre-processing" >}}) was updated as a result of this change. 226 227#### Graphite data source 228 229[Graphite data source]({{< relref "../datasources/graphite.md" >}}) was updated as a result of these changes. 230 231##### Variable metric names expand 232 233Values for dashboard variables can be now populated using the [Graphite expand API](https://graphite-api.readthedocs.io/en/latest/api.html#metrics-expand). Expand API is used when the metric query is wrapped in expand() function. 234 235This way, values can contain not only the last matching node from the metric query, but also the full path of the metric. It can also be narrowed down to a specific node with a regular expression. 236 237##### Map Graphite queries to Loki 238 239Graphite queries are now automatically transformed to Loki queries according to user-defined rules when the data source changes in Explore. 240 241#### Jaeger data source 242 243You can now use more parameters to find traces. 244 245[Jaeger data source]({{< relref "../datasources/jaeger.md" >}}) was updated as a result of this change. 246 247### Authentication updates 248 249This Grafana release includes the following authentication updates. 250 251#### JWT 252 253JWT is a new authentication option in Grafana. 254 255#### Added JWT authentication support 256 257You can now configure Grafana to accept a JWT token provided in the HTTP header. 258 259[JWT authentication]({{< relref "../auth/jwt.md" >}}) was added and [Configuration]({{< relref "../administration/configuration.md#auth.jwt" >}}) was updated as a result of this feature. 260 261#### OAuth 262 263[Generic OAuth authentication]({{< relref "../auth/generic-oauth.md" >}}) has been updated as a result of these changes. 264 265##### Added OAuth support for empty scopes 266 267You can now configure generic OAuth with empty scopes. This allows OAuth Identity Providers that don't use or support scopes to work with Grafana authentication. 268 269##### Added OAuth support for strict parsing of role_attribute_path 270 271You can now configure generic OAuth with strict parsing of the `role_attribute_path`. By default, if the `role_attribute_path` property does not return a role, then the user is assigned the `Viewer` role. You can disable the role assignment by setting `role_attribute_strict = true`. It denies user access if no role or an invalid role is returned. 272 273#### Singlestat panel deprecated 274 275Support for Singlestat panel has been discontinued. When you upgrade to version 8.0, all existing Singlestat panels automatically becomes Stat panels. 276Stat panel is available as plugin. 277 278### Grafana license update 279 280Grafana has updated its license from Apache 2.0 to the GNU Affero General Public License (AGPL). Please see the related [blog post](https://grafana.com/blog/2021/04/20/grafana-loki-tempo-relicensing-to-agplv3/), [Q&A](https://grafana.com/blog/2021/04/20/qa-with-our-ceo-on-relicensing/) and [license](https://github.com/grafana/grafana/blob/main/LICENSE) for more details. 281 282## Enterprise features 283 284These features are included in the Grafana Enterprise edition. 285 286### Fine-grained access control 287 288You can now add or remove detailed permissions from Viewer, Editor, and Admin org roles, to grant users just the right amount of access within Grafana. Available permissions include the ability to view and manage Users, Reports, and the Access Control API itself. Grafana will support more and more permissions over the coming months. 289 290[Fine-grained access control docs]({{< relref "../enterprise/access-control/_index.md" >}}) were added as a result of this feature. 291 292### Data source query caching 293 294Grafana caches the results of backend data source queries so that multiple users viewing the same dashboard or panel do not make multiple submissions of the same query to the data source (like Splunk or Snowflake) itself. 295 296This results in faster average load times for dashboards and fewer duplicate queries overall to data sources, which reduces cost and the risk of throttling, reaching API limits, or overloading your data sources. 297 298You can enable caching per data source, and time-to-live (TTL) can be configured globally and per data source. Query caching can be set up with Redis, Memcached, or a simple in-memory cache. 299 300For more information, refer to the [Data source query caching docs]({{< relref "../enterprise/query-caching.md" >}}). 301 302### Reporting updates 303 304When creating a report, you can now choose to export Table panels as .csv files attached to your report email. This makes it easier for recipients to view and work with that data. 305 306You can also link back to the dashboard directly from the email, for users who want to see the data live in Grafana. This release also includes some improvements to the Reports list view. 307 308For more information, refer to [Reporting docs]({{< relref "../enterprise/reporting.md" >}}). 309 310### License restrictions clarification in the docs 311 312The Grafana Enterprise documentation has been updated to describe more specifically how licensed roles are counted, how they can be updated, and where you can see details about dashboard and folder permissions that affect users' licensed roles. 313 314For more information, refer to [License restrictions docs]({{< relref "../enterprise/license/license-restrictions.md" >}}). 315 316## Breaking changes 317 318The following breaking changes are included in this release. 319 320### Variables 321 322- Removed the **Value groups/tags** feature from variables. Any tags will be removed. 323- Removed the `never` refresh option for query variables. Existing variables will be migrated and any stored options will be removed. 324 325Documentation was updated to reflect these changes. 326 327### Elasticsearch: Use application/x-ndjson content type for multi-search requests 328 329For multi-search requests, we now use the correct application/x-ndjson content type instead of the incorrect application/json. Although this should be transparent to most of the users, if you are running Elasticsearch behind a proxy, then be sure that your proxy correctly handles requests with this content type. 330 331### Prometheus: Update default HTTP method to POST for existing data sources 332 333The default HTTP method for Prometheus data source is now POST, previously it was GET. The POST APIs are there since January 2018 (Prometheus 2.1.0) and they have fewer limitations than the GET APIs. Users with Prometheus instance with version < 2.1.0 that use the default HTTP method should update their HTTP method to GET. 334