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