【发布时间】:2017-12-19 21:07:29
【问题描述】:
我正在使用 Prometheus 的 Summary 指标来收集 API 调用的延迟。我没有进行实际的 API 调用,而是简单地调用 Thread.sleep(1000) 来模拟 1 秒的 api 调用延迟值——这使得 Summary 保持 0.01 的值(1 秒的延迟)。但是,例如,如果我在同一分钟内调用 Thread.sleep(1000) 两次,则 Summary 指标的值最终为 0.02(延迟 2 秒),而不是刚刚发生的两个单独的 0.01 延迟实例在同一分钟内发生。我的问题是普罗米修斯查询。我目前使用的 Prometheus 查询是:rate(my_custom_summary_sum[1m])。
我的 Prometheus 查询应该是什么,这样我才能看到每个 Thread.sleep(1000) 调用的延迟。截至目前,Summary 指标收集并显示每分钟的总延迟总和。如何显示对Thread.sleep(1000) 的每个个人 调用(即API 请求)的延迟?
private static final Summary mySummary = Summary.build()
.name("my_custom_summary")
.help("This is a custom summary that keeps track of latency")
.register();
Summary.Timer requestTimer = mySummary.startTimer(); //starting timer for mySummary 'Summary' metric
Thread.sleep(1000); //sleep for one second
requestTimer.observeDuration(); //record the time elapsed
这是由此查询产生的图表: Prometheus graph
【问题讨论】:
标签: monitoring latency summary prometheus