Grouping multiple panels to place on dashboard as a unit

Grafana v10.4.2 Linux Ubuntu 22.04.4

I have multiple small panels (Photo below) of each peer connection that each display a unique established or idle status. I want to group them all together on my dashboard, rather than just placing them on the dashboard next to each other. Reason being I use python automation to reorganize panels based on status and if just one of these peer panels turns red I want it moved, but I want the other peer panels to go with it. Rather than worrying about updating the x and y positioning of each panel via the json model, it would be nice to just worry about them as a single unit and only have to configure/update one giant panels positioning. Would be nice to be able to almost create a giant panel to put them in so if they need to move they stay together positioning wise. Using rows does not work because then I am not able to optimize all the space on my dashboard and my python script automation would be more complex.

I don’t think it’s possible to ‘group’ different panels somehow, but it is possible to use one panel to show several results, may be such an approach would fit:

panel

1 Like

That does look like a good solution What are the steps you took to implement this?

This is the Table view of data returned by my query:

These are some settings of the Stat panel:

Background color is configured via Value mappings:

Value mappings

What does your data structure look like? My query returns {‘peer_40’: ‘Established’, ‘peer_42’: ‘Established’, …} but I cannot figure out how you got the name and status column headers in Grafana when my table looks like this:

Screenshot 2024-08-09 at 2.00.25 PM

That is typically being done by datasource means.

But even for similar to your layout:

Result is also achievable without any transformations:

I also like the solution proposed by @ebabeshko , but I noticed you wrote:

which AFAIK is not possible without some other plugins or perhaps special coding.

I got it to work as you demonstrated! Thank you @ebabeshko