Search code examples
prometheusgrafanapromql

How to add two different counter values in grafana?


I have two counters let's say c1 and c2. How to show the total count c1+c2 in the Grafana panel? When I do c1+c1 values are shown correctly on the panel but when I do c1+c2 it returns a null value.

Query working:

sum by (level1,level2,level3)
(
  sum_over_time(
    sponsored_products_service_counter_total{
      cloud_zone=~"$cluster_id",
      job="$app",
      namespace="$namespace",
      container="$container",
      pod=~"$pod"
    }[$__interval]
  )
) + sum by (level1,level2,level3)
(
  sum_over_time(
    sponsored_products_service_counter_total{
      cloud_zone=~"$cluster_id",
      job="$app",
      namespace="$namespace",
      container="$container",
      pod=~"$pod"
    }[$__interval]
  )
)

Query resulting in null value:

sum by (level1,level2,level3)
(
  sum_over_time(
    sponsored_products_service_counter_total{
      cloud_zone=~"$cluster_id",
      job="$app",
      namespace="$namespace",
      container="$container",
      pod=~"$pod"
    }[$__interval]
  )
) + sum by (level1,level2,level3)
(
  sum_over_time(
    display_ads_service_counter_total{
      cloud_zone=~"$cluster_id",
      job="$app",
      namespace="$namespace",
      container="$container",
      pod=~"$pod"
    }[$__interval]
  )
)

Result for only sponsored_products_service_counter_total sponsored_products_service_counter_total

Result for only display_ads_service_counter_total display_ads_service_counter_total


Solution

  • Thanks @marklaex for clearing doubt. simple + is not enough. Look into vector matching for binary operators. Depending on how much rows is produced by operands in may need simple + on() or something with group_left()/group_right()