Публикация микрометрических показателей в Prometheus

Я использую Spring Boot v2.1.3 и Micrometer Registry для Prometheus v1.2.1.

Я создал DistributionSummary в своем коде и добавил его в PrometheusRegistry. Я использую эту метрику для хранения времени, затраченного API. Кроме того, я создал сегмент в соответствии с моим SLA, например: 10 мс, 20 мс и 60 мс.

        DistributionSummary summary = DistributionSummary.builder("nb.api.responsetime")
            .sla(10, 20, 60).register(registry);

Я использую Spring Actuator для публикации показателей в Prometheus.

Метрики, которые доступны в ответ на «/ actator / prometheus» для DistributionSummary, - это только сумма, максимум и количество метрик.

nb_api_responsetime_max 15.0
nb_api_responsetime_bucket{le="10.0",} 2.0
nb_api_responsetime_bucket{le="20.0",} 5.0
nb_api_responsetime_bucket{le="60.0",} 5.0
nb_api_responsetime_bucket{le="+Inf",} 5.0
nb_api_responsetime_count 5.0
nb_api_responsetime_sum 56.0

Я хочу показать среднее время, затрачиваемое на вызовы API за выбранный промежуток времени. Например: Среднее время, затраченное API за последние 5 минут.


person Safvan Kothawala    schedule 26.09.2019    source источник


Ответы (1)


Ниже приведены необходимые запросы:

Среднее время отклика за 5 минут:

rate(nb_api_responsetime_sum[5m])/rate(nb_api_responsetime_count[5m])

Количество запросов в минуту:

round(rate(nb_api_responsetime_count[1m]) * 60)

SLA Meet Per Min:

sum(rate(nb_api_responsetime_bucket{le="60.0"}[1m])) by (job)
/
sum(rate(nb_api_responsetime_count[1m])) by (job)
person Safvan Kothawala    schedule 01.10.2019