The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
grafana/docs/sources/developers/plugins/migration-guide/v9.x-v10.x/_index.md

3.0 KiB

description keywords labels menuTitle title weight
Guide for migrating plugins from Grafana v9.x to v10.x [grafana plugins migration plugin documentation] [{products [enterprise oss]}] v9.x to v10.x Migrate plugins from Grafana version 9.x to 10.x 1900

Migrate plugins from Grafana version 9.x to 10.x

Verify plugin behavior with React 18

Grafana 10 includes our upgrade to React 18 and use of the new React client-side rendering API. These changes were delivered to the core grafana repo with PR 64428.

Although these updates bring many significant benefits, there's a potential for them to impact the way that your plugin works. In particular, there could be unintended side effects caused by the changes around improving consistency with useEffect timings and automatic batching of state updates.

Recommended actions:

Data frame field values are now just arrays

In Grafana 10, the values in data frames are now managed as simple JavaScript arrays (see PR #66480). It is no longer necessary to wrap values in a Vector implementation.

Most code targeting 9.x will continue to work without any issues. An exception is the rare case in which existing code directly implements Vector rather than extending or using base classes. In this case, the code should either return an array or extend FunctionalVector. All Vector implementations have been deprecated and will be removed in the future.

When writing plugins that should run on 9.x, continue to use the Vector interfaces. In this case, when targeting versions 10+, you can now use simple arrays rather than wrapper classes.

To make this transition seamless, we employed the Original JavaScript Sin™. That is, we extended the native Array prototype with several Vector methods. We will atone and undo this in v11, when Vector interfaces and classes are removed.