Home  >  Article  >  Prometheus /metrics page is not updated after calling counter

Prometheus /metrics page is not updated after calling counter

WBOY
WBOYforward
2024-02-11 17:09:081175browse

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.

Question content

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

Workaround

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!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete