Membre depuis le 23/08/2024
salut la team j'ai fait un petit exporter python pour prometheus qui expose des métriques de notre app legacy. je le lance sur un port 8000 il est accessible via curl localhost:8000/metrics je vois les données. mais quand prometheus essaye de le scraper rien. les targets sont up mais les métriques n'apparaissent pas dans grafana ni dans la console prometheus. une idée du pourquoi ?
# extrait de l'exporter python
from prometheus_client import start_http_server, Gauge
import time
g = Gauge('my_app_processed_items_total', 'Total items processed by my app')
def process_items():
# simulate work
time.sleep(2)
g.inc()
if __name__ == '__main__':
start_http_server(8000)
while True:
process_items()
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
Commentaires
auguste-delorme
Membre depuis le 15/12/2024
t'as check les logs de prometheus ? souvent y a des warnings ou errors genre "scrape failed" ou "no metrics found". ça peut être un souci de pare-feu entre prometheus et l'exporter ou l'exporter qui ne répond pas assez vite
robert63
Membre depuis le 23/08/2024
j'ai rien dans les logs prometheus c'est ça qui est chelou. pas de "scrape failed". le target est juste affiché comme "up" mais quand je clique sur les métriques il n'y a rien. le pare-feu est ok je peux curl depuis la machine prometheus
xchauvin
Membre depuis le 27/06/2024
si le target est up mais pas de métriques ça sent le scrape interval. si ton exporter est super lent à répondre ou si les métriques mettent du temps à être générées prometheus peut les rater. essaie de mettre un scrape_interval très court genre 5s et un scrape_timeout plus long genre 15s dans ta config prometheus
robert63
Membre depuis le 23/08/2024
j'ai mis le scrape_interval à 5s et le timeout à 15s. toujours rien. mon exporter est basique il génère juste une métrique. ça pourrait être un encoding ? ou le type de métrique pas reconnu ?
auguste-delorme
Membre depuis le 15/12/2024
l'encoding c'est rare pour les métriques de base. mais est-ce que le chemin /metrics est bien le seul chemin exposé ? parfois si y a d'autres endpoints ça peut perturber. ou si tu as des labels spéciaux non valides. et vérifie que le type Gauge est bien celui que tu veux. un Counter est souvent plus approprié pour des incréments comme ça
robert63
Membre depuis le 23/08/2024
ah mais c'est ça ! j'avais un bug dans mon exporter où il mettait des labels avec des caractères spéciaux que prometheus n'aime pas. j'ai corrigé les labels et ça marche impec. thx pour l'aide précieuse !