9
votes

When i make a table panel and go to "Options" tab, columns parameter set to Auto: Columns and their order are determined by the data query.

Is there a doc on how write prometheus queries for grafana tables?

My prometheus data is a metric with 2 labels my_col and my_row:

my_metric{instance="lh",job="job",my_col="1",my_row="A"} 6
my_metric{instance="lh",job="job",my_col="2",my_row="A"} 8
my_metric{instance="lh",job="job",my_col="1",my_row="B"} 10
my_metric{instance="lh",job="job",my_col="2",my_row="B"} 17

I want to make a table that looks like:

|   | 1 | 2 |
| A | 6 | 8 |
| B | 10| 17|
2

2 Answers

2
votes

There is some documentation in the Grafana docs about Table Panels here: https://grafana.com/docs/features/panels/table_panel/#table-panel

The particular transform you showed in the example doesn't appear to be supported in the above documentation unfortunately.

If possible, a change to the structure of the prometheus data to something like the below should make this easier:

my_metric{instance="lh",job="job",col_1="6",col_2="8",my_row="A"}
my_metric{instance="lh",job="job",col_1="10",col_2="17",my_row="B"}
3
votes

It is possible with Grafana 7.0.3. I think it was possible with earlier versions as well, but the approach has changed since 7.0.0 with the introduction of transformations.

Add two queries:

my_metric{instance="lh",job="job",my_col="1"}
my_metric{instance="lh",job="job",my_col="2"}

Make them instant queries and format them as tables. Create the transformation Outer join and join by my_col. You should get the two values as Value #A and Value #B. You can use the transformation Organize fields to rename them and drop all the other fields.