UI extensions
Use UI extensions to contribute new actions and functionality to the core Grafana UI and other app plugins.
Understand the extensions ecosystemβ
The UI extensions framework is built around these concepts:
-
Extension point: A place in Grafana Core or in a plugin where content can be hooked into.
-
Renderable content: Functionality (link or component) made available to render in an extension point, or a component exposed to be used by another plugin.
-
Exposed component: Component made available to other plugins with the
expose*
APIs. If exposed, a component is not tied to extension points. -
Registered content: Links, components or functions made available with the
add*
APIs. If registered, content can be rendered in specific extension points. -
Content provider: The app plugin providing the content (link or component) to be rendered at the extension point.
-
Content user: The extension point using the renderable content.
-
Plugin developer: A developer working with the Grafana plugins ecosystem.
I want to render extension contentβ
As a content user, you can either use exposed components or render content (links or components) made available by content providers in an extension point.
Why add an extension point?β
Define extension points to add new capabilities:
- An extension point allows other plugins to extend your UI with new functionality. You don't need any additional effort to provide functionality from other plugins in your UI.
- Clean separation of concerns. Your application doesn't need to know anything about the plugin extending your UI.
- Easy to bootstrap. If both apps are installed and enabled, then the extensions are automatically configured and displayed for your user. There is no need for either app to include custom logic to detect the presence of the other.
Where can I find extension points?β

In the example above, the Grafana Core extension point "grafana/dashboard/panel/menu"
is rendering links registered by plugins. Check out all available extension points in Grafana Core.
Next stepsβ
- Learn how to create an extension point
- Learn how to use exposed components
- Avoid UI issues when working with extension points
I want to share content from my app pluginβ
If youβre a plugin developer and want other plugins or Grafana Core to render links or components from your app plugin, you need to either register or expose your content first.
Use casesβ
You can make your content available to extension points in situations such as:
- You want to show a link in a specific place in Grafana Core
- You want another plugin to link to a specific page in your App
- You want another plugin to show a widget from your app in their page
Next stepsβ
- Learn how to register an extension to an extension point
- Learn how to expose components from a plugin so other plugins can import them
Further readingβ
- Learn how to version exposed components and extension points
- Check the API reference guide
- If you need to debug your extension see Use logs to debug your extension