Pokud použijeme micrometer a objekt DistributionSummary, zde jsou ukázky výstupu na actuatoru:
Pokud máme hodnoty
500, 1500, 2500, ..., 9500
a
val summary = DistributionSummary.builder("my.summary").baseUnit("miliseconds").register(meterRegistry)
a hodnoty uložíme/nahrajeme
summary.record(hodnota)
výsledek (na endpointu /actuator/prometheus
)
# HELP my_summary_miliseconds # TYPE my_summary_miliseconds summary my_summary_miliseconds_count 10.0 my_summary_miliseconds_sum 50000.0 # HELP my_summary_miliseconds_max # TYPE my_summary_miliseconds_max gauge my_summary_miliseconds_max 9500.0
Další možnosti:
val summary = DistributionSummary.builder("my.summary").baseUnit("miliseconds").serviceLevelObjectives(9.0).register(meterRegistry) # HELP my_summary_miliseconds # TYPE my_summary_miliseconds histogram my_summary_miliseconds_bucket{le="9.0",} 0.0 my_summary_miliseconds_bucket{le="+Inf",} 10.0 my_summary_miliseconds_count 10.0 my_summary_miliseconds_sum 50000.0 # HELP my_summary_miliseconds_max # TYPE my_summary_miliseconds_max gauge my_summary_miliseconds_max 9500.0
val summary = DistributionSummary.builder("my.summary").baseUnit("miliseconds").serviceLevelObjectives(9000.0).register(meterRegistry) # HELP my_summary_miliseconds # TYPE my_summary_miliseconds histogram my_summary_miliseconds_bucket{le="9000.0",} 9.0 my_summary_miliseconds_bucket{le="+Inf",} 10.0 my_summary_miliseconds_count 10.0 my_summary_miliseconds_sum 50000.0 # HELP my_summary_miliseconds_max # TYPE my_summary_miliseconds_max gauge my_summary_miliseconds_max 9500.0
val summary = DistributionSummary .builder("my.summary") .baseUnit("miliseconds") .serviceLevelObjectives(1000.0, 2000.0, 3000.0, 4000.0, 5000.0, 6000.0, 7000.0, 8000.0, 9000.0, 10000.0) .register(meterRegistry) # HELP my_summary_miliseconds # TYPE my_summary_miliseconds histogram my_summary_miliseconds_bucket{le="1000.0",} 1.0 my_summary_miliseconds_bucket{le="2000.0",} 2.0 my_summary_miliseconds_bucket{le="3000.0",} 3.0 my_summary_miliseconds_bucket{le="4000.0",} 4.0 my_summary_miliseconds_bucket{le="5000.0",} 5.0 my_summary_miliseconds_bucket{le="6000.0",} 6.0 my_summary_miliseconds_bucket{le="7000.0",} 7.0 my_summary_miliseconds_bucket{le="8000.0",} 8.0 my_summary_miliseconds_bucket{le="9000.0",} 9.0 my_summary_miliseconds_bucket{le="10000.0",} 10.0 my_summary_miliseconds_bucket{le="+Inf",} 10.0 my_summary_miliseconds_count 10.0 my_summary_miliseconds_sum 50000.0 # HELP my_summary_miliseconds_max # TYPE my_summary_miliseconds_max gauge my_summary_miliseconds_max 9500.0
val summary = DistributionSummary .builder("my.summary") .baseUnit("miliseconds") .serviceLevelObjectives(1000.0, 2000.0, 3000.0, 4000.0, 5000.0, 6000.0, 7000.0, 8000.0, 9000.0, 10000.0, 5000000.0) .scale(1000.0) .register(meterRegistry) # HELP my_summary_miliseconds # TYPE my_summary_miliseconds histogram my_summary_miliseconds_bucket{le="1000.0",} 0.0 my_summary_miliseconds_bucket{le="2000.0",} 0.0 my_summary_miliseconds_bucket{le="3000.0",} 0.0 my_summary_miliseconds_bucket{le="4000.0",} 0.0 my_summary_miliseconds_bucket{le="5000.0",} 0.0 my_summary_miliseconds_bucket{le="6000.0",} 0.0 my_summary_miliseconds_bucket{le="7000.0",} 0.0 my_summary_miliseconds_bucket{le="8000.0",} 0.0 my_summary_miliseconds_bucket{le="9000.0",} 0.0 my_summary_miliseconds_bucket{le="10000.0",} 0.0 my_summary_miliseconds_bucket{le="5000000.0",} 5.0 my_summary_miliseconds_bucket{le="+Inf",} 10.0 my_summary_miliseconds_count 10.0 my_summary_miliseconds_sum 5.0E7 # HELP my_summary_miliseconds_max # TYPE my_summary_miliseconds_max gauge my_summary_miliseconds_max 9500000.0
Pokud máme hodnoty (třeba v minutách):
100 x 0.1 - 0.9 200 x 1.1 - 1.9 500 x 2.1 - 4.9 100 x 5.1 - 9.9 50 x 10.1 - 19.9 10 x 20.1 - 59.9 5 x 60.1 - 119.9
Zde jsou výsledky a nastavení DistributionSummary:
val summary = DistributionSummary .builder("my.summary") .baseUnit("minutes") .serviceLevelObjectives(1.0, 2.0, 5.0, 10.0, 20.0, 60.0) .register(meterRegistry) # HELP my_summary_minutes # TYPE my_summary_minutes histogram my_summary_minutes_bucket{le="1.0",} 100.0 my_summary_minutes_bucket{le="2.0",} 300.0 my_summary_minutes_bucket{le="5.0",} 800.0 my_summary_minutes_bucket{le="10.0",} 900.0 my_summary_minutes_bucket{le="20.0",} 950.0 my_summary_minutes_bucket{le="60.0",} 960.0 my_summary_minutes_bucket{le="+Inf",} 965.0 my_summary_minutes_count 965.0 my_summary_minutes_sum 4414.706588345886 # HELP my_summary_minutes_max # TYPE my_summary_minutes_max gauge my_summary_minutes_max 111.38954666426672