[Grafana v9.0.8] Get table column to show "last" value when underlying data is null

  • What Grafana version and what operating system are you using?
    v9.0.8, self-hosted on a GKE cluster

  • What are you trying to achieve?
    I’m using the Istio Mesh dashboard, where multiple Prometheus queries are merged into one table panel. The “instant” option is checked.
    I want to always have displayed data in that table.

  • How are you trying to achieve it?
    I imported that Istio dashboard into my own Grafana instance. The backing datasource is a Prometheus that gets data through federation with the Prometheus shipped by Istio.

  • What happened?
    Not all values are present at the same time, and frequently the table shows the “No Data” text instead of table data.
    I suspect that the issue lies in federation…maybe not every time series gets data at the same time, and so table is not displayed entirely when that happens.
    See picture below, is possible to spot two promql queries that (among others) are feeding distinct columns of the table panel

  • What did you expect to happen?
    Table data is always shown at every refresh. Is there a way to show the “last value” for every column when data is not available? It should allow to always have data to display.

  • Can you copy/paste the configuration(s) that you are having problems with?
    I’m importing this Istio dashboard: Istio Mesh Dashboard | Grafana Labs

  • Did you receive any errors in the Grafana UI or in related logs? If so, please tell us exactly what they were.
    No errors

  • Did you follow any online instructions? If so, what is the URL?
    I found this similar problem, but didn’t help me to solve mine.

https://community.grafana.com/t/grafana-v7-5-table-value-last-not-null/62420

Well, thanks to a comment on Grafana Labs Slack channel I’ve been directed to the right solution.
My scrapes are of 30 secs and it’s a best practice to set the rate interval at least 4x times the scrape time

Following advices from this blog post about the $__rate_interval variable I was able to achieve what I wanted.

Problem solved :slight_smile: