我使用Prometheus Java客户端导出应用程序的 session 信息。我们想显示 session 空闲了多长时间。
问题是我们最多有1000个 session ,并且在一定时间后 session 将被删除。不幸的是,它们并没有从普罗米修斯消失:
我的代码如下所示:
static final Gauge sessionInactivity = Gauge.build()
.name("sessions_inactivity_duration")
.labelNames("internal_key", "external_key", "browser")
.help("Number of milliseconds a certain session has been inactive")
.register();
sessionInactivity.labels(internalKey, externalKey, browser).set(inactivityTime);
我尝试在爬取期间执行
sessionInactivity.clear()
,但显然这不会清空仪表的内容。 最佳答案
这种按请求处理的方法不适用于Prometheus之类的度量系统。这将被视为概要分析,为此需要进行更多自定义。
还建议导出此类时间戳记,而不是多久以前。这可以适应更新时间不再更新的事情,您可以在Prometheus端从time()
减去。
关于java - 如何删除不再有效的仪表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45172765/