Prometheus 向普罗米修斯发布测微计指标

Prometheus 向普罗米修斯发布测微计指标,prometheus,spring-boot-actuator,micrometer,spring-micrometer,Prometheus,Spring Boot Actuator,Micrometer,Spring Micrometer,我正在使用Spring Boot v2.1.3和Prometheus v1.2.1的测微计注册表 我在代码中创建了一个DistributionSummary,并将其添加到PrometheusRegistry中。我使用这个度量来存储API所花费的时间。此外,我已经根据我的SLA为ex:10ms、20ms和60ms创建了bucket DistributionSummary summary = DistributionSummary.builder("nb.api.responseti

我正在使用Spring Boot v2.1.3和Prometheus v1.2.1的测微计注册表

我在代码中创建了一个DistributionSummary,并将其添加到PrometheusRegistry中。我使用这个度量来存储API所花费的时间。此外,我已经根据我的SLA为ex:10ms、20ms和60ms创建了bucket

        DistributionSummary summary = DistributionSummary.builder("nb.api.responsetime")
            .sla(10, 20, 60).register(registry);
我正在使用Spring Actuator向普罗米修斯发布指标

可用于响应“/actuator/prometheus”分发摘要的指标仅为指标的总和、最大值和计数

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分钟内所用的平均时间。

以下是所需的查询:

每5分钟的平均响应时间:

rate(nb_api_responsetime_sum[5m])/rate(nb_api_responsetime_count[5m])
每分钟请求计数:

round(rate(nb_api_responsetime_count[1m]) * 60)
每分钟SLA会议次数:

sum(rate(nb_api_responsetime_bucket{le="60.0"}[1m])) by (job)
/
sum(rate(nb_api_responsetime_count[1m])) by (job)