php editor Zimo encountered a problem when using the Prometheus monitoring tool: after calling the counter, the Prometheus /metrics page was not updated. The occurrence of this problem may lead to inaccurate monitoring data and cause certain problems to the operation of the system. In order to solve this problem, we need to find out the cause and take corresponding measures. In the following content, we will step by step analyze the possible causes and provide solutions to help readers solve this problem.
I have a spring bean in which the instrument is initialized like this:
@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()); }
Where does the registry come from
@autowired prometheusmeterregistry registry;
Then I use a method:
paymentstriedgauge.inc();
But then I didn't receive any updates on promtheus's /metrics page:
# HELP payments_tried How many payments was sent to PaymentServices to be created # TYPE payments_tried gauge payments_tried 0.0
Use prometheus instrumentation directly for your use case. The micrometer itself can be used with its own meter. (no spring boot required)
For example:
// 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);
Please note that the variable mygauge
is actually an atomicinteger
and micrometer simply reports the value of that instance. atomicinteger
There is also an increment()
method that you can use nicely.
The above is the detailed content of Prometheus /metrics page is not updated after calling counter. For more information, please follow other related articles on the PHP Chinese website!