diff --git a/bundles/grafana/items.py b/bundles/grafana/items.py
index 2c3717c..743dca4 100644
--- a/bundles/grafana/items.py
+++ b/bundles/grafana/items.py
@@ -151,6 +151,7 @@ for dashboard_id, monitored_node in enumerate(monitored_nodes, start=1):
                             'host': monitored_node.name,
                             **query_config['filters'],
                         },
+                        exists=query_config.get('exists', []),
                         function=query_config.get('function', None),
                     ).strip()
                 })
diff --git a/bundles/telegraf/metadata.py b/bundles/telegraf/metadata.py
index 1a25d11..0d0f887 100644
--- a/bundles/telegraf/metadata.py
+++ b/bundles/telegraf/metadata.py
@@ -45,7 +45,9 @@ defaults = {
                         'memory_rss',
                     ],
                 })},
-                'diskio': {h({})},
+                'diskio': {h({
+                    'device_tags': ["ID_PART_ENTRY_NUMBER"],
+                })},
                 'kernel': {h({})},
                 'mem': {h({})},
                 'processes': {h({})},
diff --git a/data/grafana/flux.mako b/data/grafana/flux.mako
index 0bf1c17..83ec9e2 100644
--- a/data/grafana/flux.mako
+++ b/data/grafana/flux.mako
@@ -3,6 +3,9 @@ from(bucket: "${bucket}")
 % for key, values in filters.items():
 <% values = values if isinstance(values, list) else [values] %>\
   |> filter(fn: (r) => ${' or '.join(f'r["{key}"] == "{value}"' for value in values)})
+% endfor
+% for exist in exists:
+  |> filter(fn: (r) => exists r["${exist}"]) // WTF
 % endfor
   |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) // aggregate early for best performance
 % if minimum:
diff --git a/data/grafana/rows/disk_io.py b/data/grafana/rows/disk_io.py
index 6cecfd9..f1053ce 100644
--- a/data/grafana/rows/disk_io.py
+++ b/data/grafana/rows/disk_io.py
@@ -9,6 +9,9 @@
                         'read_bytes',
                     ],
                 },
+                'exists': [
+                    'ID_PART_ENTRY_NUMBER',
+                ],
                 'function': 'derivative',
             },
         },
@@ -26,6 +29,9 @@
                         'write_bytes',
                     ],
                 },
+                'exists': [
+                    'ID_PART_ENTRY_NUMBER',
+                ],
                 'function': 'derivative',
             },
         },