Dynamic table view from Zabbix

Grafana version 9.3.2 with Zabbix 4.2.10 plugin.

I was trying to create a Dashboard with a table like view where every row represents a file and every column represents the file data.
In my mind, every cell would change color depending on the threshold.
Something like this.

Process Start Process End Process Total Time File Size Process Time to Start
file1 timestamp timestamp seconds bytes seconds
file2 timestamp timestamp seconds bytes seconds
file3 timestamp timestamp seconds bytes seconds
file4 timestamp timestamp seconds bytes seconds


The data is distributed in a few Zabbix hosts and items, and I can get them by making a few regex querys.
For example:

  • Query mode → Metrics
  • Group → Zabbix/Group
  • Host → /PXW1CEADG0[12][6-81] - 172.24.168.1[890]*/
  • Item → /File size/


If I use the “Stat” widget, Grafana only lists the item values.
image


If I use the “Table” widget, Grafana creates a selection box for each item.


I have tried to use different widgets but could not find similar options.
Any tips for me?

Hi @markfree,

This is because your result outputs stream of multiple tables and each table can be view separately by choosing from selection box. In order to show all data in one table your result needs to be 1 table. You can achieve that by ungrouping data in Zabbix (I don’t know if that exists but in Influx Flux that can be achieved with |> group() function ) or you can use Grafana transformation Merge.

 

Pictures: Grafana transformations on table

Default:

 

With transformation Labels to fields:

 

With transformation Merge:

 

This can be achieved by defining Override for each column (if you want to use different thresholds).

 
 

Best regards,
ldrascic

@ldrascic thanks for your help.

I managed to add the Labels to fields followed by Merge transformations, and it seems to be getting in shape. Also, I had to uncheck host and item_key labels, and add item as “value field name”.
image

But, now, it is using the item names as columns and the time as lines.



I have no need for the time data. I only need the last value for each file.

Any more tips? :thinking:

Hi @markfree,
Can you try with Grafana Transform Reduce?

Mode: Reduce fields
Calculations: Last * (Last non null value)

Note: I moved Merge to last position in transforms.

 

Best regards,
ldrascic

“Reduce” transformation actually reduced the values to the last one.

It seems “Merge” does nothing if I leave it as the 3rd transformation.
When I bring it on top of “Reduce”, then, the table starts getting into shape.

Still, the item names are columns and, also, I could not separate the querys by columns.

image

I’ve managed to display all the data in a sort of table format by using Stat panels.

The first panel, “File name” (string), was filtered and sorted to make it display only the file names.
The file name was sorted using a “Sort by” transformation and using the “item” field.

Now, I need to sort the other panels the same way.
However, the other panels are metric, not strings.
They do not have an “item” field, so, I could not correlate them.

All sorting must correspond to the “File name” panel, so every line correlates to each other.

Any idea?