当前位置: 首页 > 知识库问答 >
问题:

片状普罗米修斯java客户端

柏明亮
2023-03-14

我在一个相对简单的应用程序中使用Prometheus 0.6.0Java客户端。我只有两个计数器和两个仪表,它们通过HTTP RESTendpoint公开,使用内置的PrometheusHTTPServer。我看到了相当不稳定的行为。

有时,计数器根本不会被注册(例如,当到达HTTPendpoint时,永远不会显示),其他时候,会显示< code># HELP和< code># TYPE行,但不会显示实际的度量。我能够在我的本地开发箱和部署在kubernetes pods上看到片状剥落。

为了进一步缩小范围,我有这段代码来初始化计数器。在调用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();
}

我是不是在计数器的配置/设置方面做错了什么?我在普罗米修斯问题列表上找不到任何关于这个的东西。

共有1个答案

杨飞
2023-03-14

您正在创建一个带有标签(.labelNames(标签)位)的计数器,这实际上意味着您正在创建多个指标。如:

request_count{api="/users"} 15
request_count{api="/groups"} 3

因此,当您想要增加其中一个指标时,您需要说明是哪一个。

counter1.labels(tagValues1).inc();

否则,如果您实际上只想要一个计数器,只需删除对构建器的 .labelNames(tags1) 调用即可。

无论如何,如果您使用现实生活中的示例而不是"anti1"tags1,这个问题(和答案)会更加明显:

Counter requestCount = Counter.build()
    .name("request_count")
    .help("Number of requests, per API")
    .labelNames("api")
    .register();

那么很明显,直接递增请求计数没有多大意义。

 类似资料:
  • 我将我的GKE API服务器升级到1.6,并正在将节点升级到1.6,但遇到了一个障碍... 我有一个prometheus服务器(版本1.5.2),运行在一个由Kubernetes部署管理的pod中,其中两个节点运行版本1.5.4Kubelet,一个新节点运行版本1.6。 但普罗米修斯仍然得到401。 更新:就像乔丹所说的kubernetes认证问题。在这里看到新的、更集中的问题;https://s

  • 我要监控的应用程序为健康检查提供了一个apiendpoint,该endpoint使用json中的指标进行响应。例如: 我已经设置了Prometheus blackbox\u exporter,以监视此endpoint是否返回200 Ok,但理想情况下,我也希望获得这些指标。我知道instrumentation直接从应用程序导出这些数据。但是,由于应用程序已经在导出json对象中我想要的内容,我更希

  • 我有一个启用了监视和日志记录的GKE集群(1.15)。到目前为止,我们一直使用metrics-server对StackDriver进行度量监控。对于其他自定义度量标准,我们使用了自定义度量标准适配器,该适配器使用Prometheus-to-SD将度量标准刮取并导出到stackdriver。 我想开始看看prometheus是否能给我们提供其他功能,比如HPA的聚合度量。 在GCP marketpl

  • null 使用默认配置和轻微的定制。 我可以访问prometheus、grafana和alertmanager,查询度量标准并查看精美的图表。 但是prometheus-adapter在启动时不断抱怨它不能访问/发现度量: 在我的设置中,对于prometheus-adapter的正确值是什么?

  • 关于整合齐普金和普罗米修斯的可能性的小问题。 目前,我们已经有了一个完全可用的Zipkin实例,以及它的web UI。Zipkin超级酷,一切都很好。 我们能够让所有微服务向Zipkin发送跟踪信息,并让Zipkin汇总这些信息。 我们还可以在UI中搜索痕迹等等,超级酷。 另一方面,我们也有一个非常成熟的经过实战检验的Prometheus Grafana,其中已经包含了容器级指标、应用程序级指标和

  • 假设我在普罗米修斯中有两个指标,两个计数器: 好的: 失败: 总计: 我的问题是如何找到在查询中发生的failures 我期待以下回应: 这意味着,如果 pod 接收