Create panels for specific hosts

Hey guys,
I got a new installation of grafana-server version 6.4.4 on a debian system.
(I’m new to grafana)
There is a graphite database that is configured in grafana.
There are a lot of different hosts and metrics: windows systems, linux systems, switches etc.
There is for example a load check for linux systems. I added that panel under the linux hosts.
But when I switch to the windows hosts, that panel appears, too. But it doesn’t contain any data. (Sure, because it’s a linux check)
So my question is how can I create panels that are just vaild for specific hosts? For example the load check applies for all linux hosts, but not for windows hosts.
So the load panel should appear at all linux hosts, but not at windows hosts. And for example a windows cpu utilization panel shouldn’t appear at linux hosts.

an example for a windows host:

There are panel disk C: windows, disk D: windows and disk E: windows that contain data. panel “memory usage linux systems” doesn’t show data.

So the panels are static and apply for every host.

Panel config looks like that:

Okay, maybe it’s because of $hostname? So the check gets applied for all hosts?

Thank you very much!

Is there anyone who would answer and give me a hint?
My monitoring system is icinga2 that puts all metrics into a graphite database.
In Grafana I chose that graphite instance.
When I saw screenshots of grafana I thought there is kind of a tree like in cacti where you can create groups, for example:
-windows server group
-windows server 1
-windows server 2
-windows server 3

-linux server group
-linux server 1
-linux server 2

-Switches group

and so on.

Is that possible with grafana? I mean to create a tree view on the left an create groups where I can put hosts into?

Thank you!

You can put dashboards into folders, but the folder structure can only be one level deep. So no folders within folders.

If that suffices for your need then you could have a folder for each group and then dashboards related to that group within.

You can use a dashboard variable to query for every instance (node/host/whatever) within the group and then use that variable to repeat panels or rows. So you’d get a dashboard with one panel or row of panels for each instance.

Something that took me a little bit to realise is that dashboard variables are specific to the dashboard. You can only regenerate them on dashboard load (or time range change or never) and they won’t change between panels or rows.

If that doesn’t do it for you then I guess you could write out your dashboards as JSON and provision them from files. So that way you could write a thing to programmatically maintain the set of dashboards you need.