Gavrinis Open your mind | 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 :
- # -*- encoding: utf-8 -*-
- from prometheus_client import start_http_server, Gauge
- import ovh
- import sched
- import time
- vps = {
- "tete.tata.net": "server160",
- "titi.tata.net": "server165",
- "toto.tata.net": "server170",
- "tyty.tata.net": "server172",
- }
- s = sched.scheduler(time.time, time.sleep)
- client = ovh.Client()
- start_http_server(9100)
- def read_api(sc):
- for (key,value) in vps.items():
- usage = client.get('/vps/' + key + '/backupftp')
- g = Gauge(value + '_usage', 'Disk usage')
- g.set(usage['usage']['value'])
- s.enter(600, 1, read_api, (sc,))
- s.enter(600, 1, read_api, (s,))
- 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 |