Grafana plugin types and usage
This documentation discusses plugin configuration, provisioning, and usage for plugin developers. General information about plugin administration is available at Plugin management.
Overview
Grafana plugin development allows for many options depending on the type of user experience you want to create. Whatever your need, there's a supported plugin type for your intended use:
- Panel plugin - a new way of visualizing data.
- Data-source plugin - a connection to a new database or other source of data.
- App plugin - an integrated out-of-the-box experience.
Refer to Get started for instructions on how to quickly scaffold each type of plugin.
Don't open support tickets for topics related to plugin development. For help with plugin development, reach out to the Community forums.
Panel (visualization) plugins
Development of panel plugins, also known as visualizations, allows Grafana to use custom visualizations, similar to existing plugins such the Polystat panel.
Usage of panel plugins
Any installed plugin of type panel
can be used, selected, and configured as a visualization within a dashboard.
Compared with data sources and apps, there’s currently no support for configuring visualizations on a Grafana organization level.
With the recent introduction of Grafana Scenes, you can use any installed plugin of type panel
as a visualization within a Scenes implementation.
Data source plugins
In plugin development, you can create new data source plugins to use Grafana with new databases, similar to existing plugins such as MongoDB or Google BigQuery. Data source plugins may be added on the frontend and the backend.
Usage of data-source plugins
Create and configure a Grafana data source when you want to work with data provided by a third-party service for use in Grafana Dashboards, Explore, Alerting, and so on.
Given any installed plugin of type datasource
, you can create and configure any number of data sources per Grafana organization. After you create zero to infinity data sources, they are persisted in Grafana's database.
To distinguish a Grafana data source from a data-source plugin, we sometimes refer to the latter as a data-source instance, that is, a configured Grafana data source with a plugin id
type of datasource
.
Global configuration of data source plugins
Use the Grafana configuration file to configure your app plugin_id
.
Not all plugins support this type of configuration. Refer to the readme of specific plugins for details.
Provisioning of data sources
Data sources can also be provisioned using Grafana’s provisioning features so that you can define Grafana as-code as part of a GitOps approach when Grafana starts up or on demand.
Note that a plugin of type datasource
must be installed before it can be provisioned.
Bundling of dashboards
Data-source plugins can include dashboards by referencing dashboard JSON files (including property
and type=dashboard
) within the plugin.json
file. Grafana puts a dashboard in the General
folder when it is imported.
App plugins
Development of app plugins, also known as apps or applications, allows you to create out-of-the-box solutions such as in the Redis app. You can optionally bundle data sources and panels, as well as provide custom pages, Scenes, and UI extensions.
Usage of app plugins
Configure a Grafana app when you want to leverage or create a tailored monitoring view for a third-party service and optionally use custom pages or UI extensions. Given any installed plugin of type app
, you can enable them once per Grafana organization and they are persisted in Grafana’s database.
To distinguish a Grafana app from an app plugin, we sometimes refer to the latter as an app instance, that is, a configured Grafana app with a plugin id
type of app
.
Global configuration of app plugins
Use the Grafana configuration file to configure your app plugin_id
.
Not all plugins support this type of configuration. Refer to the readme of specific plugins for details.
Provisioning of app plugins
Apps can also be provisioned using Grafana’s provisioning features so that you can define Grafana as-code as part of a GitOps approach when Grafana starts up or on demand.
Note that the plugin must be installed before provisioning can succeed with a plugin id
of app
type.
Bundling of apps
The app plugin type allows you to nest other plugins inside it; in other words, to bundle or include multiple plugins in the same package.
Bundling of dashboards
App plugins can include dashboards by referencing dashboard JSON files within the plugin.json
including property
and type=dashboard
. Grafana puts dashboards in the General
folder when it is imported which will happen automatically when an app is enabled.