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

Spring引导2普罗米修斯不拉db指标

柳俊逸
2023-03-14

我在普罗米修斯使用spring boot2。我们使用Postgres作为数据库。普罗米修斯url没有获取数据库指标。

任何参考资料都会很有帮助。

我已经试过了

@Configuration
@AutoConfigureAfter({DataSourceAutoConfiguration.class})
public class MyConfiguration {


  @Autowired
  HikariDataSource dataSource;

  @Bean
  PostgreSQLDatabaseMetrics dbMeterics() {
    return new PostgreSQLDatabaseMetrics(dataSource, "database-name");
  }

} 

当我到达终点/普罗米修斯时,我得到了这个错误

java.lang.NullPointerException: null
    at io.micrometer.core.instrument.binder.db.PostgreSQLDatabaseMetrics.lambda$bindTo$1(PostgreSQLDatabaseMetrics.java:101)
    at io.micrometer.core.instrument.internal.DefaultGauge.value(DefaultGauge.java:40)
    at io.micrometer.prometheus.PrometheusMeterRegistry.lambda$newGauge$3(PrometheusMeterRegistry.java:235)
    at io.micrometer.prometheus.MicrometerCollector.collect(MicrometerCollector.java:69)
    at io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.findNextElement(CollectorRegistry.java:183)
    at io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.nextElement(CollectorRegistry.java:216)
    at io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.nextElement(CollectorRegistry.java:137)
    at io.prometheus.client.exporter.common.TextFormat.write004(TextFormat.java:22)
    at org.springframework.boot.actuate.metrics.export.prometheus.PrometheusScrapeEndpoint.scrape(PrometheusScrapeEndpoint.java:50)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)
    at org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.invoke(ReflectiveOperationInvoker.java:76)

共有1个答案

邢献
2023-03-14

在第101行中,通过DI接收的注册表用于构建pgMetrics对象。由于您在这一行获得空指针,您可能会缺少作为依赖项导入的Prometheus注册表。

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

  • 我试图使用现有的Prometheus(集群外部)从EKS集群内部聚合所有的指标,EC2(CPU、ram、disk)和POD(CPU、ram、disk)。我开始使用node-exporter、kube-state-metrics添加数据,但我一直坚持部署metrics-server。使用helm I conf并安装它,和正在提取数据,但是有人能告诉我如何将所有这些都提取到外部的Prometheus吗

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

  • 我把普罗米修斯和格拉法纳部署到我的集群里。 当我打开仪表板时,我不会获得pod CPU使用情况的数据。 当我检查Prometheus UI时,它显示pods 0/0向上,但是我的集群中有许多pods在运行。

  • 我需要为web应用程序提供自定义度量。问题是我不能使用Spring,而是必须使用jax-rsendpoint。要求非常简单。假设您有一个带有键值对的映射,其中键是度量名称,值是一个简单的整数,它是一个计数器。代码如下所示:

  • 有没有办法使格拉法纳的普罗米修斯计数器真正单调? 每当服务器重新启动时,我的服务器上的计数器(使用Prometheus Java库)就会重置,Grafana中的计数器也会降至零。我在文档中找不到普罗米修斯查询的方法。Java库也没有提供使计数器在重新启动时持久化的方法。