解释普罗米修斯查询结果
Interpreting Prometheus query result
我的 已经回答了。现在我试图根据给定的查询来解释结果。
指标采集:
// globally done
Summary.build()
.name("http_response_time")
.labelNames("method", "handler", "status")
.help("Request completed")
.register();
// done BEFORE every request
final long start = System.nanoTime();
// "start" is saved as a request attribute and lateron read from the request
// done AFTER every request
final double latencyInSeconds =
SimpleTimer.elapsedSecondsFromNanos(start, System.nanoTime());
responseTime.labels(
request.getMethod(),
handlerLabel,
String.valueOf(response.getStatus())
)
.observe(latencyInSeconds);
查询:
rate(http_response_time_sum{application="myapp",handler="myHandler", status="200"}[1m])
/
rate(http_response_time_count{application="myapp",handler="myHandler", status="200"}[1m])
结果:
0.0020312920780360694
所以,这是什么?以 ns 为单位进行测量,以秒为单位推送到摘要对象。
就我的解释而言,这告诉我最后一分钟的所有成功请求的平均延迟为 0.0020 秒(20 毫秒)。
对吗?
我将 post 我的结果放在这里:measured/calculated/interpreted 值似乎是正确的。
无论如何,我更喜欢 Prometheus 方法的更详细的数学文档。
我的
指标采集:
// globally done
Summary.build()
.name("http_response_time")
.labelNames("method", "handler", "status")
.help("Request completed")
.register();
// done BEFORE every request
final long start = System.nanoTime();
// "start" is saved as a request attribute and lateron read from the request
// done AFTER every request
final double latencyInSeconds =
SimpleTimer.elapsedSecondsFromNanos(start, System.nanoTime());
responseTime.labels(
request.getMethod(),
handlerLabel,
String.valueOf(response.getStatus())
)
.observe(latencyInSeconds);
查询:
rate(http_response_time_sum{application="myapp",handler="myHandler", status="200"}[1m])
/
rate(http_response_time_count{application="myapp",handler="myHandler", status="200"}[1m])
结果:
0.0020312920780360694
所以,这是什么?以 ns 为单位进行测量,以秒为单位推送到摘要对象。
就我的解释而言,这告诉我最后一分钟的所有成功请求的平均延迟为 0.0020 秒(20 毫秒)。
对吗?
我将 post 我的结果放在这里:measured/calculated/interpreted 值似乎是正确的。
无论如何,我更喜欢 Prometheus 方法的更详细的数学文档。