Kibana Visualization - Gauge

Hello All

I am trying to build a visualization in Kibana using Gauge . Below is the data in my Index

App_Name Service_Name Run_Number Coverage
Red          A            4         90      
Red          B            4         70                   
Blue         A            4         90
Blue         C            4         90
Green        A            4         90

Red          A            3         80      
Red          B            3         60                    
Blue         A            3         70
Blue         C            3         90
Green        A            3         60

Red          A            2         85            
Red          B            2         45               
Blue         A            2         75
Blue         C            2         40
Green        A            2         65

I want to display a gauge for each app and show the average of coverage for all services for the app for the latest Run_number

Red         Blue        Green
80          90              90

Shows the average for each App for the recent run_number = 4

Any thoughts on how I can set this up in Kibana Visualization . I am not able to filter dynamically based on the max run_number .

Appreciate any help on this


@flash1293 & @dosant Any suggestions on this ? Appreciate any help on this

Hi, I would use a bucket aggregation to find the "latest" term of Run_Number, and get the average Coverage for that term. Overall, there will be a separate gauge per app by splitting by the terms of the App_Name

Metrics : Overall Max of Average of Coverage

  • Aggregation: Max Bucket
  • Bucket
    • Aggregation: Terms
    • Field: Run_Number
    • Order: Descending
    • Order by: Alphabetical
    • Size: 1
  • Metric
    • Aggregation: Average
    • Field: Coverage

Buckets: Split group: App_Name

  • Aggregation: Terms
  • Field: App_Name

Explanation: The Max Bucket metric splits the data by Run_Number, taking only one bucket/group that represents the highest value. That is due to sorting the buckets descending alphabetically and limiting the size of terms to 1.

For the single Run_Number bucket, we're getting the average of the Coverage. We pull that value into the graph using "max bucket", but it doesn't matter what metric selector we use (max, min, whatever) because there is only a single group of Run_Numbers.

That is how the average of coverage will show up in a gauge. We split the data into multiple gauges with the terms aggregation on App_Name.