php小编子墨在使用prometheus监控工具时,遇到了一个问题:调用计数器后,prometheus /metrics页面未更新。这个问题的出现可能导致监控数据不准确,给系统的运行带来了一定的困扰。为了解决这个问题,我们需要找出原因并采取相应的措施。在接下来的内容中,我们将逐步分析可能的原因,并提供解决方案,帮助读者解决这一问题。
问题内容
我有一个 spring bean,其中的仪表是这样初始化的:
@postconstruct
public void initgauge() {
paymentstriedgauge = gauge.build().name("payments_tried").help("how many payments was sent to paymentservices to be created").register(registry.getprometheusregistry());
paymentscreated = gauge.build().name("payments_created").help("how many payments sent to paymentservices were created").register(registry.getprometheusregistry());
}
注册表来自哪里
@autowired prometheusmeterregistry registry;
然后我用一种方法:
paymentstriedgauge.inc();
但后来在 promtheus 的 /metrics 页面上我没有收到任何更新:
南方数据企业网站管理系统 V11.0全屏版新增功能:1.首页模板布局做了全新的调整;2.新增了企业网站广告管理系统,可以在后台随意增加和修改Banner广告、对联广告、浮动广告、弹出广告;3.新增了QQ在线资讯功能,同时还有N种模板选择;4.更换了网站统计管理系统;5.对菜单进行了加粗处理,显得更美观;6.后台使用了全新的静态编辑器,提高了后台打开编辑器的速度;7.新增了一个模板;8.修改了中英文
# HELP payments_tried How many payments was sent to PaymentServices to be created # TYPE payments_tried gauge payments_tried 0.0
解决方法
您的用例直接使用 prometheus 仪表。 micrometer 本身可以与自己的仪表一起使用。 (不需要spring boot)
例如:
// maintain a reference to myGauge
AtomicInteger myGauge = registry.gauge("numberGauge", new AtomicInteger(0));
// ... elsewhere you can update the value it holds using the object reference
myGauge.set(27);
myGauge.set(11);
请注意变量 mygauge 实际上是一个 atomicinteger 并且 micrometer 只是报告该实例的值。 atomicinteger 还有一个 increment() 方法,您可以很好地使用。









