Crate grafana_plugin_sdk
source ·Expand description
The Grafana Plugin SDK for Rust.
This crate contains a Rust implementation of the Grafana plugin SDK. It is divided into three main modules:
backend
contains the traits that must be implemented by backend plugins for various pieces of functionality, whether querying data, calling resources, or streaming data between Grafana and the plugin.data
contains the fundamental data structures used by backend plugins, such asFrame
s,Field
s, and their associated metadata.live
contains functionality used by Grafana Live, the streaming messaging service available from Grafana 8.0.
The prelude
contains some useful unambiguous traits which are helpful when creating some structures,
particularly Frame
s and Field
s.
Backend plugins communicate with Grafana via gRPC. The low-level protocols are exposed in the pluginv2
module as an escape hatch, if required. Please file an issue if this is needed and we will try to
accommodate your needs in the next release of the high-level SDK.
See the docs on backend plugins on grafana.com for an introduction to backend Grafana plugins, or check out the crate examples or sample app repo to get started with writing a backend plugin in Rust.
Feature flags
The following feature flags enable additional functionality for this crate:
reqwest
- adds anIntoHttpResponse
implementation forreqwest::Response
Re-exports
pub use arrow2;
Modules
- Functionality for use by backend plugins.
- Data types used throughout the SDK.
- Grafana Live features, providing streaming functionality to Grafana.
- The low-level structs generated from protocol definitions.
Attribute Macros
- Generates a
main
function that starts aPlugin
with the returned service struct.