* organizes releases into their own pages; moves upgrade guide to the root * adds and removes aliases * Update docs/sources/upgrade-guide/upgrade-v8.0/index.md Co-authored-by: Jack Baldry <jack.baldry@grafana.com> * Update docs/sources/upgrade-guide/upgrade-v8.0/index.md Co-authored-by: Jack Baldry <jack.baldry@grafana.com> * Update docs/sources/upgrade-guide/upgrade-v8.0/index.md Co-authored-by: Jack Baldry <jack.baldry@grafana.com> * Update docs/sources/upgrade-guide/upgrade-v9.3/index.md Co-authored-by: Jack Baldry <jack.baldry@grafana.com> * Update docs/sources/shared/upgrade/upgrade-common-tasks.md Co-authored-by: Jack Baldry <jack.baldry@grafana.com> * Update docs/sources/shared/upgrade/upgrade-common-tasks.md Co-authored-by: Jack Baldry <jack.baldry@grafana.com> * Update docs/sources/shared/upgrade/upgrade-common-tasks.md Co-authored-by: Jack Baldry <jack.baldry@grafana.com> * corrects relrefs --------- Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
4.2 KiB
description | keywords | title | menutitle | weight | ||||
---|---|---|---|---|---|---|---|---|
Guide for upgrading to Grafana v8.0 |
|
Upgrade to Grafana v8.0 | Upgrade to v8.0 | 2900 |
Upgrade to Grafana v8.0
{{< docs/shared lookup="upgrade/upgrade-common-tasks.md" source="grafana" >}}
Technical notes
This section describes technical changes associated with this release of Grafana.
Plugins
Grafana now requires all plugins to be signed. If a plugin is not signed Grafana will not load/start it. This is an additional security measure to make sure plugin files and binaries haven't been tampered with. All Grafana Labs authored plugins, including Enterprise plugins, are now signed. It's possible to allow unsigned plugins using a configuration setting, but is something we strongly advise against doing. For more information about this setting, refer to [allow loading unsigned plugins]({{< relref "../../administration/#allow_loading_unsigned_plugins" >}}).
Grafana Live
Grafana now maintains persistent WebSocket connections for real-time messaging needs.
When WebSocket connection is established, Grafana checks the request Origin header due to security reasons (for example, to prevent hijacking of WebSocket connection). If you have a properly defined public URL (root_url
server option) then the origin check should successfully pass for WebSocket requests originating from public URL pages. In case of an unsuccessful origin check, Grafana returns a 403 error. It's also possible to add a list of additional origin patterns for the origin check.
To handle many concurrent WebSocket connections you may need to tune your OS settings or infrastructure. Grafana Live is enabled by default and supports 100 concurrent WebSocket connections max to avoid possible problems with the file descriptor OS limit. As soon as your setup meets the requirements to scale the number of persistent connections this limit can be increased. You also have an option to disable Grafana Live.
Refer to [Grafana Live configuration]({{< relref "../../setup-grafana/set-up-grafana-live/" >}}) documentation for more information.
Postgres, MySQL, Microsoft SQL Server data sources
Grafana v8.0 changes the underlying data structure to [data frames]({{< relref "../../developers/plugins/data-frames/" >}}) for the Postgres, MySQL, Microsoft SQL Server data sources. As a result, a Time series query result gets returned in a [wide format]({{< relref "../../developers/plugins/data-frames/#wide-format" >}}). To make the visualizations work as they did before, you might have to do some manual migrations.
For any existing panels/visualizations using a Time series query, where the time column is only needed for filtering the time range, for example, using the bar gauge or pie chart panel, we recommend that you use a Table query instead and exclude the time column as a field in the response. Refer to this issue comment for detailed instructions and workarounds.
Prefix added to series names
When you have a query where there's a time value and a numeric value selected together with a string value that's not named metric, the graph panel renders series names as value <hostname>
rather than just <hostname>
which was the case before Grafana 8.
SELECT
$__timeGroup("createdAt",'10m'),
avg(value) as "value",
hostname
FROM grafana_metric
WHERE $__timeFilter("createdAt")
GROUP BY time, hostname
ORDER BY time
There are two possible workarounds to resolve this problem:
- In Grafana v8.0.3, use an alias of the string column selected as
metric
. for example,hostname as metric
. - Use the [Standard field definitions' display name]({{< relref "../../panels-visualizations/configure-standard-options/#display-name" >}}) to format the alias. For the preceding example query, you would use
${__field.labels.hostname}
option.
For more information, refer to the our relational databases documentation of [Postgres]({{< relref "../../datasources/postgres/#time-series-queries" >}}), [MySQL]({{< relref "../../datasources/mysql/#time-series-queries" >}}), [Microsoft SQL Server]({{< relref "../../datasources/mssql/#time-series-queries" >}}).