From 3f19cc89fa646c9abd80a3d627dc79d35dc14318 Mon Sep 17 00:00:00 2001 From: Jack Baldry Date: Wed, 27 Sep 2023 18:22:45 +0100 Subject: [PATCH] [v9.5.x] Remove plugins (#75583) * Delete plugins files comprehensively * Fix all links to "Sign a plugin" pages Signed-off-by: Jack Baldry * [publish_dashboards] * Fix metadata links Signed-off-by: Jack Baldry * [publish-technical-documentation-next] Publish from grafana/agent:main/docs/sources * Fix data-frames redirect Signed-off-by: Jack Baldry * add collapse shortcode (#15422) * Add note about missing rewrites Signed-off-by: Jack Baldry * Fix all data-frames links Signed-off-by: Jack Baldry * Fix links to "plugins" Signed-off-by: Jack Baldry * Fix links to angular-react Signed-off-by: Jack Baldry * Fix "plugin-sdk-go" links Signed-off-by: Jack Baldry * Fix backend links Signed-off-by: Jack Baldry * Fix "Add query editor help" links Signed-off-by: Jack Baldry * Fix some remaining links Signed-off-by: Jack Baldry * [publish_plugins] * [publish-technical-documentation-release] Publish from grafana/grafana:v9.5.x/docs/sources * Add missing redirects and fix a couple more links Signed-off-by: Jack Baldry --------- Signed-off-by: Jack Baldry --- docs/sources/administration/plugin-management/index.md | 4 ++-- .../alerting/fundamentals/evaluate-grafana-alerts.md | 2 +- .../alerting/manage-notifications/mute-timings.md | 2 ++ docs/sources/datasources/_index.md | 2 +- docs/sources/datasources/mssql/query-editor/index.md | 2 +- docs/sources/datasources/mysql/_index.md | 2 +- docs/sources/datasources/postgres/_index.md | 2 +- docs/sources/developers/angular_deprecation/_index.md | 2 +- .../developers/angular_deprecation/angular-plugins.md | 2 +- docs/sources/fundamentals/dashboards-overview/index.md | 5 +---- .../fundamentals/timeseries-dimensions/index.md | 6 +----- .../configure-standard-options/index.md | 2 +- .../query-transform-data/transform-data/index.md | 2 +- .../sources/setup-grafana/set-up-grafana-monitoring.md | 2 +- docs/sources/upgrade-guide/upgrade-v8.0/index.md | 2 +- docs/sources/whatsnew/whats-new-in-v7-0.md | 10 +++++----- docs/sources/whatsnew/whats-new-in-v7-4.md | 2 +- docs/sources/whatsnew/whats-new-in-v9-4.md | 2 +- 18 files changed, 24 insertions(+), 29 deletions(-) diff --git a/docs/sources/administration/plugin-management/index.md b/docs/sources/administration/plugin-management/index.md index bde0cf5d17e..8c66d756e3f 100644 --- a/docs/sources/administration/plugin-management/index.md +++ b/docs/sources/administration/plugin-management/index.md @@ -13,7 +13,7 @@ weight: 600 Besides the wide range of visualizations and data sources that are available immediately after you install Grafana, you can extend your Grafana experience with _plugins_. -You can [install]({{< relref "#install-a-plugin" >}}) one of the plugins built by the Grafana community, or [build one yourself]({{< relref "../../developers/plugins/" >}}). +You can [install]({{< relref "#install-a-plugin" >}}) one of the plugins built by the Grafana community, or [build one yourself](https://grafana.com/developers/plugin-tools). Grafana supports three types of plugins: [panels](/grafana/plugins?type=panel), [data sources](/plugins?type=datasource), and [apps](/grafana/plugins?type=app). @@ -165,7 +165,7 @@ Grafana also writes an error message to the server log: WARN[05-26|12:00:00] Some plugin scanning errors were found errors="plugin '' is unsigned, plugin '' has an invalid signature" ``` -If you are a plugin developer and want to know how to sign your plugin, refer to [Sign a plugin]({{< relref "../../developers/plugins/sign-a-plugin/" >}}). +If you are a plugin developer and want to know how to sign your plugin, refer to [Sign a plugin](https://grafana.com/developers/plugin-tools/publish-a-plugin/sign-a-plugin). | Signature status | Description | | ------------------ | ------------------------------------------------------------------------------- | diff --git a/docs/sources/alerting/fundamentals/evaluate-grafana-alerts.md b/docs/sources/alerting/fundamentals/evaluate-grafana-alerts.md index 3c30ee288c5..688971a390e 100644 --- a/docs/sources/alerting/fundamentals/evaluate-grafana-alerts.md +++ b/docs/sources/alerting/fundamentals/evaluate-grafana-alerts.md @@ -23,7 +23,7 @@ Grafana managed alerts query the following backend data sources that have alerti - built-in data sources or those developed and maintained by Grafana: `Graphite`, `Prometheus`, `Loki`, `InfluxDB`, `Elasticsearch`, `Google Cloud Monitoring`, `Cloudwatch`, `Azure Monitor`, `MySQL`, `PostgreSQL`, `MSSQL`, `OpenTSDB`, `Oracle`, and `Azure Monitor` -- community developed backend data sources with alerting enabled (`backend` and `alerting` properties are set in the [plugin.json]({{< relref "/docs/grafana/latest/developers/plugins/metadata" >}})) +- community developed backend data sources with alerting enabled (`backend` and `alerting` properties are set in the [plugin.json](https://grafana.com/developers/plugin-tools/reference-plugin-json) ### Metrics from the alerting engine diff --git a/docs/sources/alerting/manage-notifications/mute-timings.md b/docs/sources/alerting/manage-notifications/mute-timings.md index 51f406c9823..9503c764731 100644 --- a/docs/sources/alerting/manage-notifications/mute-timings.md +++ b/docs/sources/alerting/manage-notifications/mute-timings.md @@ -20,6 +20,8 @@ A mute timing is a recurring interval of time when no new notifications for a po Similar to silences, mute timings do not prevent alert rules from being evaluated, nor do they stop alert instances from being shown in the user interface. They only prevent notifications from being created. +You can configure Grafana managed mute timings as well as mute timings for an [external Alertmanager data source]({{< relref "/docs/grafana/latest/datasources/alertmanager" >}}). For more information, refer to [Alertmanager documentation]({{< relref "/docs/grafana/latest/alerting/manage-notifications/alertmanager" >}}). + ## Mute timings vs silences The following table highlights the key differences between mute timings and silences. diff --git a/docs/sources/datasources/_index.md b/docs/sources/datasources/_index.md index a7627f9fc9a..8fb15a62d52 100644 --- a/docs/sources/datasources/_index.md +++ b/docs/sources/datasources/_index.md @@ -24,7 +24,7 @@ After you add and configure a data source, you can use it as an input for many o This documentation describes how to manage data sources in general, and how to configure or query the built-in data sources. For other data sources, refer to the list of [datasource plugins](/grafana/plugins/). -To develop a custom plugin, refer to [Build a plugin]({{< relref "../developers/plugins/" >}}). +To develop a custom plugin, refer to [Build a plugin](https://grafana.com/developers/plugin-tools). ## Manage data sources diff --git a/docs/sources/datasources/mssql/query-editor/index.md b/docs/sources/datasources/mssql/query-editor/index.md index a50c05944db..013822cfaf6 100644 --- a/docs/sources/datasources/mssql/query-editor/index.md +++ b/docs/sources/datasources/mssql/query-editor/index.md @@ -220,7 +220,7 @@ The resulting table panel: If you set the **Format** setting in the query editor to **Time series**, then the query must have a column named `time` that returns either a SQL datetime or any numeric datatype representing Unix epoch in seconds. Result sets of time series queries must also be sorted by time for panels to properly visualize the result. -A time series query result is returned in a [wide data frame format]({{< relref "../../../developers/plugins/data-frames#wide-format" >}}). +A time series query result is returned in a [wide data frame format](https://grafana.com/developers/plugin-tools/introduction/data-frames#wide-format). Any column except time or of type string transforms into value fields in the data frame query result. Any string column transforms into field labels in the data frame query result. diff --git a/docs/sources/datasources/mysql/_index.md b/docs/sources/datasources/mysql/_index.md index 4d5c21b1c56..eb8dcf44ebc 100644 --- a/docs/sources/datasources/mysql/_index.md +++ b/docs/sources/datasources/mysql/_index.md @@ -273,7 +273,7 @@ The resulting table panel: If you set Format as to _Time series_, then the query must have a column named time that returns either a SQL datetime or any numeric datatype representing Unix epoch in seconds. In addition, result sets of time series queries must be sorted by time for panels to properly visualize the result. -A time series query result is returned in a [wide data frame format]({{< relref "../../developers/plugins/data-frames#wide-format" >}}). Any column except time or of type string transforms into value fields in the data frame query result. Any string column transforms into field labels in the data frame query result. +A time series query result is returned in a [wide data frame format](https://grafana.com/developers/plugin-tools/introduction/data-frames#wide-format). Any column except time or of type string transforms into value fields in the data frame query result. Any string column transforms into field labels in the data frame query result. > For backward compatibility, there's an exception to the above rule for queries that return three columns including a string column named metric. Instead of transforming the metric column into field labels, it becomes the field name, and then the series name is formatted as the value of the metric column. See the example with the metric column below. diff --git a/docs/sources/datasources/postgres/_index.md b/docs/sources/datasources/postgres/_index.md index ef3960fefe3..35d8179e91a 100644 --- a/docs/sources/datasources/postgres/_index.md +++ b/docs/sources/datasources/postgres/_index.md @@ -225,7 +225,7 @@ The resulting table panel: If you set Format as to _Time series_, then the query must have a column named time that returns either a SQL datetime or any numeric datatype representing Unix epoch in seconds. In addition, result sets of time series queries must be sorted by time for panels to properly visualize the result. -A time series query result is returned in a [wide data frame format]({{< relref "../../developers/plugins/data-frames#wide-format" >}}). Any column except time or of type string transforms into value fields in the data frame query result. Any string column transforms into field labels in the data frame query result. +A time series query result is returned in a [wide data frame format](https://grafana.com/developers/plugin-tools/introduction/data-frames#wide-format). Any column except time or of type string transforms into value fields in the data frame query result. Any string column transforms into field labels in the data frame query result. > For backward compatibility, there's an exception to the above rule for queries that return three columns including a string column named metric. Instead of transforming the metric column into field labels, it becomes the field name, and then the series name is formatted as the value of the metric column. See the example with the metric column below. diff --git a/docs/sources/developers/angular_deprecation/_index.md b/docs/sources/developers/angular_deprecation/_index.md index ea1d2f07f90..a9a903e3d9c 100644 --- a/docs/sources/developers/angular_deprecation/_index.md +++ b/docs/sources/developers/angular_deprecation/_index.md @@ -36,7 +36,7 @@ We encourage you to locate the repository of the corresponding plugin and create ### Links -- [Migrate Angular to React]({{< relref "../plugins/migration-guide/angular-react/" >}}) +- [Migrate Angular to React](https://grafana.com/developers/plugin-tools/migration-guides/migrate-angularjs-to-react) - [Build a panel plugin](https://grafana.com/tutorials/build-a-panel-plugin/) - [Build a data source plugin](https://grafana.com/tutorials/build-a-data-source-plugin/) - [List of current Angular plugins]({{< relref "./angular-plugins/" >}}) diff --git a/docs/sources/developers/angular_deprecation/angular-plugins.md b/docs/sources/developers/angular_deprecation/angular-plugins.md index 9175c7372a4..016fac4b0f4 100644 --- a/docs/sources/developers/angular_deprecation/angular-plugins.md +++ b/docs/sources/developers/angular_deprecation/angular-plugins.md @@ -31,7 +31,7 @@ We also list the year in which the plugin was last updated in the catalog and wh We are greatly appreciative of the developers who have contributed plugins to the Grafana ecosystem, your work has helped support millions of users to gain insights into their data. A plugin being listed below is no reflection on its quality, and is purely to help users understand the impact of the removal of Angular support in Grafana. -Guidance on migrating a plugin to React can be found in our [migration guide]({{< relref "../plugins/migration-guide/angular-react/" >}}). If you would like to add any specific migration guidance for your plugin here or update our assessment, please open a PR by clicking the `Suggest an edit` button at the bottom of this page. +Guidance on migrating a plugin to React can be found in our [migration guide](https://grafana.com/developers/plugin-tools/migration-guides/migrate-angularjs-to-react). If you would like to add any specific migration guidance for your plugin here or update our assessment, please open a PR by clicking the `Suggest an edit` button at the bottom of this page. # Current AngularJS based plugins diff --git a/docs/sources/fundamentals/dashboards-overview/index.md b/docs/sources/fundamentals/dashboards-overview/index.md index 523e1e52d1c..033898555f3 100644 --- a/docs/sources/fundamentals/dashboards-overview/index.md +++ b/docs/sources/fundamentals/dashboards-overview/index.md @@ -34,7 +34,7 @@ It can be difficult to understand the distinctions between different data source ## Plugins -A Grafana plugin is software that adds new capabilities to Grafana. They come in many types, but right now we'll address _data source plugins_. The job of a Grafana data source plugin is to take a query you want answered, retrieve the data from the data source, and reconcile the differences between the data model of the data source and the data model of Grafana dashboards. It does this using a unified data structure called a [data frame][data-frames]. +A Grafana plugin is software that adds new capabilities to Grafana. They come in many types, but right now we'll address _data source plugins_. The job of a Grafana data source plugin is to take a query you want answered, retrieve the data from the data source, and reconcile the differences between the data model of the data source and the data model of Grafana dashboards. It does this using a unified data structure called a [data frame](https://grafana.com/developers/plugin-tools/introduction/data-frames). The data coming into the plugin from the data source might be in many different formats (such as JSON, rows and columns, or CSV), but when it leaves the plugin and moves through the rest of the gates toward a visualization, it's always in data frames. @@ -93,9 +93,6 @@ This component architecture is part of what makes Grafana so powerful and genera [create-plugin]: "/docs/grafana/ -> /docs/grafana//developers/plugins/create-a-grafana-plugin/" [create-plugin]: "/docs/grafana-cloud/ -> /docs/grafana//developers/plugins/create-a-grafana-plugin/" -[data-frames]: "/docs/grafana/ -> /docs/grafana//developers/plugins/data-frames" -[data-frames]: "/docs/grafana-cloud/ -> /docs/grafana//developers/plugins/data-frames" - [transform-data]: "/docs/grafana/ -> /docs/grafana//panels-visualizations/query-transform-data/transform-data" [transform-data]: "/docs/grafana-cloud/ -> /docs/grafana//panels-visualizations/query-transform-data/transform-data" {{% /docs/reference %}} diff --git a/docs/sources/fundamentals/timeseries-dimensions/index.md b/docs/sources/fundamentals/timeseries-dimensions/index.md index a8b69da47c3..0f085a4cd55 100644 --- a/docs/sources/fundamentals/timeseries-dimensions/index.md +++ b/docs/sources/fundamentals/timeseries-dimensions/index.md @@ -94,15 +94,11 @@ For more information, see the documentation on [creating alerts with multiple se In the case of SQL-like data sources, more than one numeric column can be selected, with or without additional string columns to be used as dimensions. For example, `AVG(Temperature) AS AvgTemp, MAX(Temperature) AS MaxTemp`. This, if combined with multiple dimensions, can result in a lot of series. Selecting multiple values is currently only designed to be used with visualization. -Additional technical information on tabular time series formats and how dimensions are extracted can be found in [the developer documentation on data frames as time series][data-frames-as-time-series]. +Additional technical information on tabular time series formats and how dimensions are extracted can be found in [the developer documentation on data frames as time series](https://grafana.com/developers/plugin-tools/introduction/data-frames#data-frames-as-time-series). {{% docs/reference %}} [create-grafana-managed-rule]: "/docs/grafana/ -> /docs/grafana//alerting/alerting-rules/create-grafana-managed-rule#single-and-multi-dimensional-rule" [create-grafana-managed-rule]: "/docs/grafana-cloud/ -> /docs/grafana//alerting/alerting-rules/create-grafana-managed-rule#single-and-multi-dimensional-rule" - -[data-frames-as-time-series]: "/docs/grafana/ -> docs/grafana//developers/plugins/data-frames#data-frames-as-time-series" -[data-frames-as-time-series]: "/docs/grafana-cloud/ -> docs/grafana//developers/plugins/data-frames#data-frames-as-time-series" - [time-series-databases]: "/docs/grafana/ -> /docs/grafana//fundamentals/timeseries#time-series-databases" [time-series-databases]: "/docs/grafana-cloud/ -> /docs/grafana//fundamentals/timeseries#time-series-databases" {{% /docs/reference %}} diff --git a/docs/sources/panels-visualizations/configure-standard-options/index.md b/docs/sources/panels-visualizations/configure-standard-options/index.md index 1244253d361..644b0caef2a 100644 --- a/docs/sources/panels-visualizations/configure-standard-options/index.md +++ b/docs/sources/panels-visualizations/configure-standard-options/index.md @@ -19,7 +19,7 @@ weight: 2 # Configure standard options -The data model used in Grafana, namely the [data frame]({{< relref "../../developers/plugins/data-frames/" >}}), is a columnar-oriented table structure that unifies both time series and table query results. Each column within this structure is called a _field_. A field can represent a single time series or table column. +The data model used in Grafana, namely the [data frame](https://grafana.com/developers/plugin-tools/introduction/data-frames), is a columnar-oriented table structure that unifies both time series and table query results. Each column within this structure is called a _field_. A field can represent a single time series or table column. Field options allow you to change how the data is displayed in your visualizations. Options and overrides that you apply do not change the data, they change how Grafana displays the data. When you change an option, it is applied to all fields, meaning all series or columns. For example, if you change the unit to percentage, then all fields with numeric values are displayed in percentages. diff --git a/docs/sources/panels-visualizations/query-transform-data/transform-data/index.md b/docs/sources/panels-visualizations/query-transform-data/transform-data/index.md index f5c455b593b..707ca744641 100644 --- a/docs/sources/panels-visualizations/query-transform-data/transform-data/index.md +++ b/docs/sources/panels-visualizations/query-transform-data/transform-data/index.md @@ -879,7 +879,7 @@ As you can see each row in the source data becomes a separate field. Each field > **Note:** This transformation is available in Grafana 7.5.10+ and Grafana 8.0.6+. -Prepare time series transformation is useful when a data source returns time series data in a format that isn't supported by the panel you want to use. For more information about data frame formats, refer to [Data frames]({{< relref "../../../developers/plugins/data-frames/" >}}). +Prepare time series transformation is useful when a data source returns time series data in a format that isn't supported by the panel you want to use. For more information about data frame formats, refer to [Data frames](https://grafana.com/developers/plugin-tools/introduction/data-frames). This transformation helps you resolve this issue by converting the time series data from either the wide format to the long format or the other way around. diff --git a/docs/sources/setup-grafana/set-up-grafana-monitoring.md b/docs/sources/setup-grafana/set-up-grafana-monitoring.md index d520a4cba2e..86829b5968a 100644 --- a/docs/sources/setup-grafana/set-up-grafana-monitoring.md +++ b/docs/sources/setup-grafana/set-up-grafana-monitoring.md @@ -111,7 +111,7 @@ These instructions assume you have already added Graphite as a data source in Gr ### Pull metrics from Grafana backend plugin into Prometheus -Any installed [backend plugin]({{< relref "../developers/plugins/backend/" >}}) exposes a metrics endpoint through Grafana that you can configure Prometheus to scrape. +Any installed [backend plugin](https://grafana.com/developers/plugin-tools/introduction/backend-plugins) exposes a metrics endpoint through Grafana that you can configure Prometheus to scrape. These instructions assume you have already added Prometheus as a data source in Grafana. diff --git a/docs/sources/upgrade-guide/upgrade-v8.0/index.md b/docs/sources/upgrade-guide/upgrade-v8.0/index.md index d37a34fe60d..085989347ce 100644 --- a/docs/sources/upgrade-guide/upgrade-v8.0/index.md +++ b/docs/sources/upgrade-guide/upgrade-v8.0/index.md @@ -38,7 +38,7 @@ Refer to [Grafana Live configuration]({{< relref "../../setup-grafana/set-up-gra ### 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. +Grafana v8.0 changes the underlying data structure to [data frames](https://grafana.com/developers/plugin-tools/introduction/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](https://grafana.com/developers/plugin-tools/introduction/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](https://github.com/grafana/grafana/issues/35534#issuecomment-861519658) for detailed instructions and workarounds. diff --git a/docs/sources/whatsnew/whats-new-in-v7-0.md b/docs/sources/whatsnew/whats-new-in-v7-0.md index cb64a1e7a93..448bcfccefd 100644 --- a/docs/sources/whatsnew/whats-new-in-v7-0.md +++ b/docs/sources/whatsnew/whats-new-in-v7-0.md @@ -72,7 +72,7 @@ For users with large dashboards or with heavy queries, being able to reuse the q The [Google Sheets data source](https://grafana.com/grafana/plugins/grafana-googlesheets-datasource) that was published a few weeks ago works really well together with the transformations feature. -We are also introducing a new shared data model for both time series and table data that we call [DataFrame]({{< relref "../developers/plugins/data-frames/#data-frames" >}}). A DataFrame is like a table with columns but we refer to columns as fields. A time series is a DataFrame with two fields (time & value). +We are also introducing a new shared data model for both time series and table data that we call [DataFrame](https://grafana.com/developers/plugin-tools/introduction/data-frames). A DataFrame is like a table with columns but we refer to columns as fields. A time series is a DataFrame with two fields (time & value). **Transformations shipping in 7.0** @@ -126,9 +126,9 @@ Grafana 7.0 adds logging support to one of our most popular cloud provider data ## Plugins platform -The [platform for plugins]({{< relref "../developers/plugins/" >}}) has been completely re-imagined and provides ready-made components and tooling to help both inexperienced and experienced developers get up and running more quickly. The tooling, documentation, and new components will improve plugin quality and reduce long-term maintenance. We are already seeing that a high quality plugin with the Grafana look and feel can be written in much fewer lines of code than previously. +The [platform for plugins](https://grafana.com/developers/plugin-tools) has been completely re-imagined and provides ready-made components and tooling to help both inexperienced and experienced developers get up and running more quickly. The tooling, documentation, and new components will improve plugin quality and reduce long-term maintenance. We are already seeing that a high quality plugin with the Grafana look and feel can be written in much fewer lines of code than previously. -Learn more about developing plugins in the new framework in [Build a plugin]({{< relref "../developers/plugins/" >}}). +Learn more about developing plugins in the new framework in [Build a plugin](https://grafana.com/developers/plugin-tools). ### Front end plugins platform @@ -142,13 +142,13 @@ With [@grafana/toolkit](https://www.npmjs.com/package/@grafana/toolkit) we are d ### Support for backend plugins -Grafana now officially supports [backend plugins]({{< relref "../developers/plugins/backend/" >}}) and the first type of plugin to be introduced is a backend component for data source plugins. You can optionally add a backend component to your data source plugin and implement the query logic there to automatically enable alerting in Grafana for your plugin. In the 7.0 release, we introduce the [Grafana Plugin SDK for Go]({{< relref "../developers/plugins/backend/grafana-plugin-sdk-for-go/" >}}) that enables and simplifies building a backend plugin in [Go](https://golang.org/). +Grafana now officially supports [backend plugins](https://grafana.com/developers/plugin-tools/introduction/backend-plugins) and the first type of plugin to be introduced is a backend component for data source plugins. You can optionally add a backend component to your data source plugin and implement the query logic there to automatically enable alerting in Grafana for your plugin. In the 7.0 release, we introduce the [Grafana Plugin SDK for Go](https://grafana.com/developers/plugin-tools/introduction/grafana-plugin-sdk-for-go) that enables and simplifies building a backend plugin in [Go](https://golang.org/). Plugins can be monitored with the new metrics and health check capabilities. The new Resources capability means backend components can return non-time series data like JSON or static resources like images and opens up Grafana for new use cases. With this release, we are deprecating the unofficial first version of backend plugins which will be removed in a future release. -To learn more, start with the [overview]({{< relref "../developers/plugins/backend/" >}}). Next, in this [tutorial](https://grafana.com/tutorials/build-a-data-source-backend-plugin/) you'll learn how to build a backend for a data source plugin and enable it for use with [Grafana Alerting]({{< relref "../alerting/" >}}). Make sure to keep an eye out for additional documentation and tutorials that will be published after the Grafana v7.0 release. +To learn more, start with the [overview](https://grafana.com/developers/plugin-tools/introduction/backend-plugins). Next, in this [tutorial](https://grafana.com/tutorials/build-a-data-source-backend-plugin/) you'll learn how to build a backend for a data source plugin and enable it for use with [Grafana Alerting]({{< relref "../alerting/" >}}). Make sure to keep an eye out for additional documentation and tutorials that will be published after the Grafana v7.0 release. ## New tutorials diff --git a/docs/sources/whatsnew/whats-new-in-v7-4.md b/docs/sources/whatsnew/whats-new-in-v7-4.md index b084fc50ea3..bc5b6b22c0f 100644 --- a/docs/sources/whatsnew/whats-new-in-v7-4.md +++ b/docs/sources/whatsnew/whats-new-in-v7-4.md @@ -176,7 +176,7 @@ The feature previously referred to as DataSource Start Pages or Cheat Sheets has [Queries]({{< relref "../panels-visualizations/query-transform-data/#manage-queries" >}}) was updated as a result of this feature. -For more information on adding a query editor help component to your plugin, refer to [Add a query editor help component]({{< relref "../developers/plugins/add-query-editor-help/" >}}). +For more information on adding a query editor help component to your plugin, refer to [Add a query editor help component](https://grafana.com/developers/plugin-tools/create-a-plugin/extend-a-plugin/add-query-editor-help). ### Variable inspector diff --git a/docs/sources/whatsnew/whats-new-in-v9-4.md b/docs/sources/whatsnew/whats-new-in-v9-4.md index 20271103756..18bf9ecead7 100644 --- a/docs/sources/whatsnew/whats-new-in-v9-4.md +++ b/docs/sources/whatsnew/whats-new-in-v9-4.md @@ -40,7 +40,7 @@ The new navigation is gradually rolling out to all users on Grafana Cloud. If yo > **Note:** The Grafana documentation has not yet been updated to reflect changes to the navigation. -> **Note:** Plugin developers should refer to [the migration guide]({{< relref "../developers/plugins/migration-guide.md#supporting-new-navigation-layout" >}}) to upgrade their plugins to work seamlessly with the new navigation layout. +> **Note:** Plugin developers should refer to [the migration guide](https://grafana.com/developers/plugin-tools/migration-guides) to upgrade their plugins to work seamlessly with the new navigation layout. {{< figure src="/media/docs/grafana/navigation-9-4.png" max-width="750px" caption="Grafana new navigation" >}}