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 as Frames, Fields, 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 Frames and Fields.

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:

Re-exports

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.
  • Contains useful helper traits for constructing Fields and Frames.

Attribute Macros

  • Generates a main function that starts a Plugin with the returned service struct.