Dashboard distribution best practices

Hi all,

I’m looking for some general guidance and best practices when it comes to distributing Grafana dashboards to new users.

I’ve developed a number of related dashboards - one .JSON file for each dashboard. I have a ‘main’ dashboard that has tables with clickable columns, which load a separate dashboard using a URL such as /d/[someid]/mydashboardname. I have many of these .JSON files.

This works fine locally, but I’m not too sure about the user experience if I want to hand over my dashboards to someone who doesn’t have access to my machine, my network, in other words, someone completely unrelated to my organization. Right now if I’m that “other user”, I have to manually import each .JSON file separately, specify the data source(s) for each, and might even have to manually edit the [someid] part of any link I might have.

That’s not great (especially the part where I have to find out what the [someid] value is in a given environment and possibly having to tweak it).

I absolutely understand the need to leave the data source selection in the hands of the user. But manually importing a bunch of .json files and tweaking IDs that need to be part of URLs gives a rather poor first impression in my opinion, especially for people who haven’t used Grafana much before, so I’m looking for ways to simplify the so-called out-of-the-box experience as much as possible for new users.

Assume users already have Grafana installed and functional on-prem (there’s only so much hand-holding I’m going to do, that part is already well-documented).

How do I go about removing as many roadblocks as I can, when it comes to getting a user to start making use of a small pile of related dashboards that should always be distributed together?

Packaging up a bunch of .JSON files, including boilerplate config files, and perhaps a small PowerShell script might be a good start. But what can be automated to make the new user’s life easier?

If you’re exporting the dashboard to use in another instance, with different data source UIDs, enable the Export for sharing externally switch.

Or datasource can be also variable, so user will select from own datasources.