Maison  >  Article  >  La page Prometheus/metrics n'est pas mise à jour après l'appel du compteur

La page Prometheus/metrics n'est pas mise à jour après l'appel du compteur

WBOY
WBOYavant
2024-02-11 17:09:081111parcourir

L'éditeur PHP Zimo a rencontré un problème lors de l'utilisation de l'outil de surveillance Prometheus : après avoir appelé le compteur, la page Prometheus /metrics n'était pas mise à jour. L'apparition de ce problème peut conduire à des données de surveillance inexactes et entraîner certains problèmes dans le fonctionnement du système. Afin de résoudre ce problème, nous devons en découvrir la cause et prendre les mesures correspondantes. Dans le contenu suivant, nous analyserons étape par étape les causes possibles et proposerons des solutions pour aider les lecteurs à résoudre ce problème.

Contenu de la question

J'ai un haricot printanier dans lequel l'instrument est initialisé comme ceci :

@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());
    }

D'où vient le formulaire d'inscription

@autowired
prometheusmeterregistry registry;

Ensuite j'utilise une méthode :

paymentstriedgauge.inc();

Mais je n'ai reçu aucune mise à jour sur la page /metrics de Promtheus :

# HELP payments_tried How many payments was sent to PaymentServices to be created
# TYPE payments_tried gauge
payments_tried 0.0

Solution de contournement

Utilisez l'instrumentation prometheus directement pour votre cas d'utilisation. Le micromètre lui-même peut être utilisé avec son propre mètre. (aucune botte à ressort requise)

Par exemple :

// 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);

Veuillez noter la méthode variable mygauge 实际上是一个 atomicinteger 并且 micrometer 只是报告该实例的值。 atomicinteger 还有一个 increment(), vous pouvez l'utiliser bien.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer