ValueError: Duplicated timeseries in CollectorRegistry

ValueError: Duplicated timeseries in CollectorRegistry - Python - Programmation

Marsh Posté le 30-08-2021 à 22:31:35    

Bonjour,
 
Je suis débutant en Python et j'essaye de créer un script qui interroge une API et me retourne les résultats sous forme de métrics pour être exploitable par Prometheus.
 

Code :
  1. # -*- encoding: utf-8 -*-
  2. from prometheus_client import start_http_server, Gauge
  3. import ovh
  4. import sched
  5. import time
  6. vps = {
  7.     "tete.tata.net": "server160",
  8.     "titi.tata.net": "server165",
  9.     "toto.tata.net": "server170",
  10.     "tyty.tata.net": "server172",
  11. }
  12. s = sched.scheduler(time.time, time.sleep)
  13. client = ovh.Client()
  14. start_http_server(9100)
  15. def read_api(sc):
  16.     for (key,value) in vps.items():
  17.         usage = client.get('/vps/' + key + '/backupftp')
  18.         g = Gauge(value + '_usage', 'Disk usage')
  19.         g.set(usage['usage']['value'])
  20.     s.enter(600, 1, read_api, (sc,))
  21. s.enter(600, 1, read_api, (s,))
  22. s.run()


 
Tout fonctionne bien les dix premières minutes et les metrics sont bien disponible sur le port 9100.
Le problème arrive lors du second round :

Traceback (most recent call last):
  File "api_get_backupFTP.py", line 30, in <module>
    s.run()
  File "/usr/lib/python3.7/sched.py", line 151, in run
    action(*argument, **kwargs)
  File "api_get_backupFTP.py", line 24, in read_api
    g = Gauge(value + '_usage', 'Disk usage')
  File "/home/api_get_backupFTP/prometheus_client/metrics.py", line 345, in __init__
    _labelvalues=_labelvalues,
  File "/home/api_get_backupFTP/prometheus_client/metrics.py", line 121, in __init__
    registry.register(self)
  File "/home/api_get_backupFTP/prometheus_client/registry.py", line 31, in register
    duplicates))
ValueError: Duplicated timeseries in CollectorRegistry: {'server160_usage'}


 
Je suis consient que l'erreur est la même qu'ici mais je ne trouve pas comment la résoudre.
 
 
Pouvez-vous m'aider s'il vous plait ?
 
Merci

Reply

Marsh Posté le 30-08-2021 à 22:31:35   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed