将千分尺度量标准发布到Prometheus

时间:2019-09-26 12:25:26

标签: prometheus spring-boot-actuator micrometer spring-micrometer

我正在使用Spring Boot v2.1.3和Micrometer Registry for Prometheus v1.2.1。

我已经在我的代码中创建了DistributionSummary,并将其添加到PrometheusRegistry。我正在使用此度量标准来存储API花费的时间。而且,我已经按照我的SLA创建了存储桶,例如:10ms,20ms和60ms。

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

我正在使用Spring Actuator将指标发布到Prometheus。

响应“ / actuator / 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分钟平均花费的时间。

1 个答案:

答案 0 :(得分:0)

以下是必需的查询:

每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)