Visualize Grafana dashboards in chat

An image is worth a thousand words, which is why Abbot can now help you visualize your graphs in chat with the grafana skill!

An image is worth a thousand words, which is why Abbot can now help you visualize your graphs in chat with the grafana skill!

List all your dashboards and quickly query your panels, generating graphs with custom time ranges and template variables to suit your visualization needs.

Setting it up

Before you can start visualizing all your graphs, you need to tell Abbot where to go to get them.

Start by generating a Grafana API key on your Grafana host, usually found at https://your-grafana-host/org/apikeys. Then, visit https://ab.bot/skills/grafana and click “Manage skill secrets” to add a secret named GrafanaKey, with the key you created.

In chat, tell Abbot where your Grafana host is with

@abbot grafana config host https://your-grafana-host

Once the API key and the host configuration are done, you’re ready to graph!

Graphs in action

The main command for the Grafana skill is db, for dashboard. To see all the panels of your Home dashboard, run

@abbot grafana db home

Dashboard names are case insensitive and can be partial, so if you have a dashboard with a long name, you don’t have to write it all in full.

Screenshot showing several graphs of the Home dashboard

Graph all of the things

You probably don’t want to see all the panels of a dashboard all the time though - you will likely have specific graphs you want to generate at certain times. To see a graph of a specific panel of a dashboard, add a colon and the panel name after the dashboard name to the db query, like so:

@abbot grafana db home:logins

Panel names are case insensitive, but they need to match fully. If they have spaces, you’ll need to quote them:

@abbot grafana db "home:memory / cpu"

Screenshot of a panel with a long name

You can also use the panel ID instead, so you don’t have to type the whole thing every time! Use the panels command to see all available panels of a dashboard and get the ID you need:

@abbot grafana panels home
@abbot grafana db home:11

Screenshot of panels of a dashboard
Screenshot of a graph of a panel by ID

Customize your graphs

Grafana graphs support templated variables and a host of other customization options, and you can use all of those from chat as well - the skill supports custom queries with time ranges, template variables, timezone specifications and size constraints.

Most often, you’ll want to customize the time window of your graph. You can specify a range by adding time parameters to your query:

@abbot grafana db home:3 2d 1d

This generates a graph of the logins panel in the Home dashboard with a time window starting 2 days ago and ending 1 day ago.

Time parameters are optional, and if you only have one, it will be interpreted as a window of “now - Time” to now.

@abbot grafana db "grafana dashboard:client side full page load" 24h var-app=backend var-server=backend_01 var-server=backend_03 var-interval=1h

The more complex query above generates a templated Grafana graph with a time window of 24 hours, customized with several variables.

Screenshot showing a graph with custom ranges and template variables

Any parameter that Grafana supports in a query can be passed to the skill as key=value pairs, like timezone specifications or custom graph sizes:

@abbot grafana db home:3 tz=Europe/Lisbon width=1000 height=1000

Screenshot showing a graph with a custom timezone and size

Run @abbot help grafana for general help with the skill, or @abbot grafana help [command] for detailed help of each skill command.

You can find the source for this skill on our skills repository. If you have any issues or improvement suggestions, go ahead and open an issue or send us a pull request in that repository.

Happy graphing!

calendar icon
July 1, 2024
clock icon