I’m using a single Grafana instance to support multiple customers. I want each customer to have at least their own dashboard. But I want each dashboard to be identical. I.e. have the same charts and configs. The only thing that would be different would be a templated variable for each customer. (Think of it as a customer id.) So there is a “source dashboard” that serves as a template. Every time that source dashboard changes, I want all those downstream customer dashboards to update immediately. What’s the best way to do this? This is what I’m thinking:
- Maintain a source dashboard in Grafana. Use the dashboard API to source control everything in that dashboard. (I.e. export the entire dashboard into GitHub.)
- Every time I make a change in the source dashboard, have a script that uses the Grafana API to take those changes and apply them to all the individual customer dashboards.
- Whenever I need to create a new customer dashboard, I would just “instantiate” it using the source dashboard with a new customer id.
Is this the best practice way to do it? I can’t find any libraries or native capability in Grafana to make this easier. It seems like I’d need to do a lot of custom scripting to make this possible. Is this correct? Would it be okay to do this even if there are hundreds, thousands of customer dashboards?