我使用Prometheus Java客户端导出应用程序的 session 信息。我们想显示 session 空闲了多长时间。

问题是我们最多有1000个 session ,并且在一定时间后 session 将被删除。不幸的是,它们并没有从普罗米修斯消失:

java - 如何删除不再有效的仪表-LMLPHP

我的代码如下所示:

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/

10-10 08:43