Creating a testing and management tool for panels and dashboards

Hi all,

not sure if this is the right sub but feel free to tell me which one would be correct :slight_smile:

I’m building a dashboard that predominantly consists of HTML-Graphics panels. The main dashboard will consist of about two dozen panels which can be clicked on to get to the next level showing more detailed information etc. All the panels I use are made with the HTML-Graphics plugin, because the standard panels are not sufficient for what I’m trying to achieve. The HTML-Graphics plugin lets me run a JS script. All that will result in a multi-level dashboard with more than 100 panels of about a dozen different types (read: different JS, CSS and HTML scripts).

I’m already noticing that handling all that inside grafana is suboptimal. The code fields are small and get messy fast. I’d need to copy a finished code into several other panels every time I change something and externally keep track to avoid forgetting a panel. Altogether, the whole process will be more error-prone the larger the dashboard gets and will be exponentially difficult to manage.

So I thought about writing a little testing environment that replicates the queries and panel, displays the result and, when the it’s satisfactory, pushes the JS-Code to all the corresponding Panels/Dashboards. The environment would make it possible to store different templates for panels and API-requests. With this I would just need to change a template and could change multiple panels at once. It could also contain an overview of which panels are used where etc.

A git and the possibility to create a Jenkins automation that pushes JSON into grafana already exist at my workplace, as well as a monitoring systems with APIs I’m using. So I could fully focus on a tool that creates the code that is pushed to git. But I’m wondering if there are existing tools that already do what I’m trying to achieve. I don’t really need to reinvent the wheel.

Additional info: I’m in job training for software dev right now and will have to present a documentation and presentation of a (part of a) software as part of my final exams. I though this could be a great project for showing comprehension in different topics regarding software design. Designing a piece of software that already exists is not the best prerequisite for a good grade, as development costs (aka time) are also part of that.

Here is an ugly little flowchart of what I intend to build:

Edit: Of course I looked at the different provisioning tools linked in the grafana docs, but I don’t really see that any of these provide what I need. Except I’m missing something, in that case I’ll be happy for a hint.

A panel and dashboard testing and management tool guarantees smooth operation, precision, and performance. It also makes maintenance and monitoring easier, enabling teams to produce superior-quality dashboards.

Key Steps

  • Define Requirements: Describe the data and characteristics that will be tested.
  • Develop Automation Scripts: For effective testing, use codeless solutions or technologies.
  • Integrate Testing: Use CI/CD pipelines to ensure continuous quality assurance.

Benefits

  • Enhanced Accuracy: detects problems instantly.
  • Improved Performance: enhances dashboard performance.
  • Efficient Monitoring: makes it easier to track repairs and updates.

This tool ensures reliable dashboards with minimal effort.