【发布时间】:2019-10-17 08:56:22
【问题描述】:
我在一个相对简单的应用程序中使用 Prometheus 0.6.0 Java 客户端。我只有两个计数器和两个仪表,它们通过 HTTP REST 端点公开,使用内置的 Prometheus HTTPServer 我看到了非常不稳定的行为。
有时,计数器根本不会注册(例如,在访问 HTTP 端点时从不显示),有时会显示 # HELP 和 # TYPE 行,但不会显示实际指标。我可以在我的本地开发箱中看到片状,并在 kubernetes pod 上部署。
为了进一步缩小范围,我有这段代码来初始化计数器。而且我在致电counter.inc() 时一直收到 NPE。
Counter counter = Counter.build().name("counter").help(helpText).labelNames(tags).register();
counter.inc();
我用仪表尝试了上述方法,但我得到了同样的错误。
对于上下文,这是从类ApplicationMetrics 调用的,代码如下:
public static Counter counter1;
public static Counter counter2;
static void initializeMetrics() {
counter1 = Counter.build().name("counter1").help(helpText1).labelNames(tags1).register();
counter1.inc();
counter2 = Counter.build().name("counter2").help(helpText2).labelNames(tags2).register();
counter2.inc();
}
我正在从我的主应用程序启动类中的 start 方法发出一个静态方法调用。
void start() {
// Initialize stuff for the rest of the app
ApplicationMetrics.initializeMetrics();
}
我在配置/设置计数器的方式上做错了吗?我无法在普罗米修斯问题列表中找到与此相关的任何内容。
【问题讨论】:
-
你能包含更多代码来添加一些上下文吗?初始化代码在哪里,你在哪里增加计数器?
-
@Chris 更新了帖子并提供了更多详细信息
标签: java prometheus prometheus-java