28 votes

Comment connaître le nombre de séries chronologiques stockées dans Prometheus LevelDB ?

Je suis responsable de la maintenance des serveurs Prometheus dans notre entreprise. Les métriques sont cependant fournies par les équipes.

Existe-t-il un moyen de connaître le nombre de séries chronologiques stockées dans la base de données Prometheus ? Nous utilisons le stockage de données LevelDB par défaut. J'ai besoin de ces valeurs pour savoir si je dois modifier les paramètres de stockage local de nos instances Prometheus.

Merci pour votre aide.

0 votes

Avez-vous réussi à trouver une solution à ce problème ? LevelDB n'est utilisé que pour les index d'après ce que j'ai compris...

0 votes

Malheureusement, je n'ai pas encore trouvé de solution. Tout indice est le bienvenu.

0 votes

Je comprends que Prometheus stocke les séries temporelles sur le disque dans un fichier par série temporelle. L'emplacement est spécifié par l'indicateur storage.local.path . Avez-vous regardé dans ce domaine ?

21voto

Zaar Hai Points 427

Et si count({__name__=~".+"}) ?

Il renvoie le nombre de séries chronologiques dans la base de données. J'ai comparé avec la quantité de métriques actuellement exposées par chaque cible par la mise au rebut manuelle, et il correspond à +/- 10%. Je suppose que la différence est due à certaines cibles que j'avais dans le passé et qui sont maintenant hors ligne.

15voto

blcArmadillo Points 1872

prometheus_tsdb_head_series

Juste parce que j'oublie toujours et que je dois chercher sur Google, et que cette question est en tête de liste. D'après cette réponse il y aura probablement un écart entre prometheus_tsdb_head_series & count({__name__=~".+"}) en raison des variations de ce qu'ils considèrent comme "actif", mais à moins que vous n'ayez une grande variabilité dans le nombre de métriques, je recommande prometheus_tsdb_head_series parce que si vous avez beaucoup de métriques, c'est un lot plus rapide à interroger.

9voto

midhun k Points 91

https://prometheusui.com:9090/status ---> Head Stats --> cela vous donnera le statut complet.

4voto

Tobias Wiesenthal Points 303

Après quelques recherches supplémentaires et grâce aux commentaires de David.B j'ai trouvé une solution qui "marche pour moi" ™

Pour connaître le nombre de séries temporelles stockées par Prometheus, j'utilise la commande suivante dans le fichier storage.local.path dossier :
ls -l {{0..9},{a..f}}{{0..9},{a..f}} | grep -E "*.db$" | wc -l

En outre, nous avons trouvé certains paramètres dans le documentation sur prometheus qui pourrait être utile en cas de problèmes de mémoire/optimisation.

Ce n'est peut-être pas la méthode la plus sophistiquée, mais elle m'a donné les chiffres que je cherchais.

0voto

prabha Points 1

Vous pourriez essayer ({ nom \=~ ".+"}) sur la console prometheus pour obtenir la série temporelle totale

0 votes

J'ai essayé ça en premier lieu. Malheureusement count({name=~".+"}) me donne un nombre qui est plus petit que le nombre donné par prometheus_local_storage_memory_series . Dans mon cas, il s'agit de 3k de count prometheus_local_storage_memory_series . Je m'attendrais à ce que le nombre de séries chronologiques en mémoire soit égal ou inférieur au nombre total de séries chronologiques et non l'inverse. La version ci-dessus ( ls -l {{0..9},{a..f}}{{0..9},{a..f}} | grep -E "*.db$" | wc -l ) me dit que j'ai 527k séries temporelles.

0 votes

count({__name__=~".+"}) vous donnera le numéro que vous recherchez.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X