p-dor / LiveboxMonitor

Interface graphique de contrôle d'une Livebox 4, 5, 6 ou 7
https://p-dor.github.io/LiveboxMonitor/
MIT License
286 stars 16 forks source link

Exporter Prometheus #69

Open Unyxos opened 1 month ago

Unyxos commented 1 month ago

Bonjour :)

Je regarde LiveboxMonitor depuis longtemps, et je me demande s'il serait un jour possible de bénéficier d'un sorte de mode "headless" en lecture seule permettant de faire tourner l'application comme un exporter de métriques pour Prometheus

J'ai conscience que l'appli est de base une GUI de management (entre autre), mais la richesse des informations affichées me fait penser qu'un exporter Prometheus pourrait être sympa pour monitorer et avoir des graphs d'utilisation sur des outils comme Grafana.

J'ai un petit peu regardé le code mais n'étant pas nécessairement très à l'aise avec Python, je préfère en parler ici tout d'abord pour voir si cela pourrait avoir un quelconque intérêt, et si oui, pourquoi pas essayer d'ajouter cette feature de mon côté (même si ça risque de prendre un peu de temps 😄)

p-dor commented 1 month ago

Bonjour @Unyxos,

À priori c'est tout à fait possible, un exporter pour Python étant disponible. Au niveau des metrics vous voyiez autre chose que les données statistiques de trafic par appareil et par interface ? Je me demande aussi si c'est vraiment une autre application dérivée sans UI qui conviendrait ou si ajouter cette fonctionnalité (qui nécessitera de toute façon du réglage) ne serait pas suffisant.

Personnellement je n'en aurai pas l'usage (le tab "Graphe" me suffit amplement), mais si vous ou d'autres y voyez un intérêt, pourquoi pas ! Je peux regarder moi même (ça n'a pas l'air bien sorcier) ou vous guider dans le code si vous vous sentez de le faire vous même.

Unyxos commented 1 month ago

Bonjour :)

Super! Au niveau des metrics je pense que tout ce qui est déjà remonté est déjà très complet (stats / appareil et / interface) Pour la seconde question, j'avoue que j'avais surtout en tête un cas d'usage ou cela serait lancé en mode "exporter" dans un container Docker ou quelque chose du genre sur un raspberry pi/mini serveur maison sans interface graphique, d'ou l'idée de pouvoir lancer ça directement via un flag en CLI

Je peux essayer de regarder pour le code plus tard ce mois ci :)

p-dor commented 1 month ago

Bonjour @Unyxos, dans ce cas j'ai l'impression qu'il vaudrait mieux repartir d'un fork du projet, voire de zéro en simplement copiant le code nécessaire (session, gestion des événements et des threads qui chopent les stats), et en rajoutant l'exporter Prometheus. Et d'autres metrics pourraient être rajoutés facilement, comme l'évolution de la RAM disponible (qu'il faut poller régulièrement).

Unyxos commented 1 month ago

Bonjour :)

C'est effectivement ce que je pensais faire si c'était trop compliqué/éloigné du projet de base (ce qui est, je pense, le cas) Je vais essayer de jeter un oeil à tout ça pour voir comment faire, j'avoue que j'aurai sûrement besoin d'un petit peu d'aide pour comprendre les différents appels pour les stats, etc..

Merci pour les infos en tous cas !

Tomy2e commented 1 month ago

Hello, je me permets de faire ma pub 😄 Si vous pensez que c'est inapproprié dites le moi, je supprimerai mon message. Je n'ai pas pu m'empêcher, cela fait pas mal de temps que je bosse sur ce sujet en particulier: https://github.com/Tomy2e/livebox-exporter L'exporter ne fournit pas autant de données que LiveboxMonitor, j'ai voulu aller à l'essentiel. Avant de commencer un nouveau projet, n'hésitez pas à tester ça. Je suis preneur de vos retours également !

p-dor commented 1 month ago

Bonjour @Tomy2e et merci beaucoup pour partager votre travail ! Cela me semble tout à fait répondre au besoin exprimé ici. @Unyxos pourriez vous jeter un oeil et confirmer que l'on peut fermer ce ticket avec livebox-exporter en solution ?

Petite amélioration possible @Tomy2e : pour le nombre de total de reboots il vaudrait mieux s'appuyer sur l'API NMC.Reboot:get (champ BootCounter) qui comptabilise le nombre total sur toute la vie de la Livebox. Avec DeviceInfo:get le champ NumberOfReboots donne en fait le nombre de reboots depuis la dernière mise à jour du firmware (le compteur repasse à zéro à chaque mise à jour).

Tomy2e commented 1 month ago

En toute transparence, il existe également d'autres exporters pour Livebox, à voir en fonction de ce qui vous convient le mieux:

Merci pour la suggestion concernant le nombre total de reboots, je ne connaissais pas cette façon de récupérer l'info. Je vais l'implémenter car elle est plus fiable en effet !