Unable to create a Dynamic Grafana table

  • I’m using Grafana v7.3.6

  • I am trying to create an SLI/SLO dashboard in Grafana with the Prometheus backend. I want to utilize the Table component in Grafana and the expected output is as follows:

The service name is the name of the job in Prometheus
SLI Type is a static field and there can be one or more types for one job/service
Reliability Target is different for each SLI Type & Service combination
SLI is determined using a PromQL expression
Status is determined from Prometheus up command
Error budget is another field calculated from a PromQL expression and is different for each SLI Type & Service combination

  • I’ve written PromQL expressions that return the output values for a particular SLI Type for a service
  • For the Reliability target, I’ve defined a static variable for now
  • For Status, I’ve mapped the output of Up command - 0/1 to active/ down using value mappings
  • For Error budget, I’ve written a PromQL expression that can get the specific error budget for that SLI type.

I’m trying to use the combination of multiple queries for the Table component along with transformation options but they don’t seem to work for dynamic combinations.
What will be the correct approach to achieve this using Grafana?
How can I configure different SLI Type and their Reliability targets for a specific service statically?
Is there any way to combine these multiple PromQL queries and perform a join operation in PromQL that can get multiple data at once?