Micrometer a DistributionSummary

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

Napsat komentář