gpt4 book ai didi

java - 将指标推送到 pushgateway 取代旧的

转载 作者:行者123 更新时间:2023-12-05 05:57:41 25 4
gpt4 key购买 nike

我们有一个名为 MonitorApp 的 java 应用程序,它在 docker 容器中运行。这个应用程序的目的是执行某些任务,将指标推送到 Pushgateway 并结束。

此 MonitorApp 作为 Kubernetes Cron Job 运行。这意味着在发布矩阵后,它会被杀死,一段时间后会出现一个新实例。

我正在使用 Java Pushgateway API 来发布矩阵。这是我的示例代码:

class MonitorApp {

public void static main(String args[]) {

List<String> labelKeys = Arrays.asList("key01", "key02");
List<String> labelValues = Arrays.asList("value01", "value01");

PushGateway client = new PushGateway("localhost:9091");
CollectorRegistry registry = CollectorRegistry.defaultRegistry;

String jobName = "midm_monitor_app";
String metric = "metrin_name";
String help = "metric_help";


Counter counter = Counter.build()
.name(metric)
.help(help)
.labelNames(labelKeys.toArray(new String[0]))
.register(registry);
counter.labels(labelValues.toArray(new String[0])).inc();

client.push(registry,jobName);
}
}

问题是我无法增加计数器指标的值。我无法找到一种方法来获取以前的计数器值以便我可以递增它。

我读到过 Pushgateway 的目的是处理这种用例。

请建议我该如何处理?

最佳答案

据我了解,您希望在实例的多次运行之间增加一个指标。这是 not the goal of the push gateway :它只会存储您推送的值 - 除了添加/替换指标组外,不会以任何方式聚合它们。

虽然我从未使用过它们,但有使用其他监控堆栈(如 statd)或特定项目(如 pushprom)进行聚合的解决方案.您还可以将运行作为事件推送(例如在 elasticsearch 中)以进一步聚合。

如果它确实是您应用程序监控的敏感部分,我建议您远离 SPOF 解决方案。您可以利用任何(分布式)键/值存储来滚动您自己的指标缓存。

关于java - 将指标推送到 pushgateway 取代旧的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68753082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com