Table Visulization Requirements With Elasticsearch Data


I would like to create a specific table visualization from Elasticsearch documents.

The Elasticsearch documents are all in one index and are relevant data is structured like this:

"Timestamp": {
  "type": "date"
"countryCode": {
  "type": "keyword"
"catalogueKey": {
  "type": "keyword"
"status": {
  "type": "keyword"

In our data, there can be one or many statuses for one or many catalogue keys for one or many markets.

An example of some data:

{"Timestamp": "2020-10-19T...", "countryCode": "UK", "catalogueKey": "TMF620", "status": "0"},
{"Timestamp": "2020-10-20T...", "countryCode": "UK", "catalogueKey": "TMF620", "status": "2"},
{"Timestamp": "2020-10-19T...", "countryCode": "ZA", "catalogueKey": "TMF620", "status": "1"},
{"Timestamp": "2020-10-19T...", "countryCode": "UK", "catalogueKey": "TMF621", "status": "1"},
{"Timestamp": "2020-10-19T...", "countryCode": "ZA", "catalogueKey": "TMF621", "status": "2"},
{"Timestamp": "2020-10-20T...", "countryCode": "ZA", "catalogueKey": "TMF621", "status": "0"}

I would like to make what I would see as a 2D table in grafana, using queries and other fancy grafana features I believe the visualisation can be done, but after hours of tinkering, I have not found a solution yet. The table should show the value of the latest status in relation to each countryCode and each catalogueKey.

Example table:

Catalogue Key UK ZA
TMF620 2 1
TMF621 1 0

Then I wish to format the table cells dependent of the status’ value.

Is a table like this possible using all of grafanas features with elasticsearch and our data set?