[Plugin Monitoring] v3 à venir : Nouveautés + Breaking changes

Bonjour à tous,

J’en parle sur plusieurs sujets depuis quelques temps, mais ce post est l’occasion de parler plus précisément de la v3 du plugin Monitoring plugin-monitoring qui est en cours de développement.

Déjà une première information :

  • Le plugin devenait un « mille feuille » au niveau du code, avec les multiples ajouts faits au fil des mois et des années, et devenait compliqué à maintenir, avec tous les cas à gérer (les multiples versions de Linux, de comment vous les utilisez, ce que vous installez dessus, et donc ce qu’il faut adapter dans le code pour gérer ces cas d’usage)

J’ai voulu mettre un peu d’ordre dans tout cela, et je me suis retrouvé au final à réécrire pratiquement entièrement le code :open_mouth:

La bonne nouvelle, c’est que cela fonctionne (toujours lol), et que le code est maintenant plus modulable lors de l’ajout d’une commande ou bien à la modification d’une autre (en fonction des versions d’OS qui évoluent, des packages linux etc…), mais ce n’est pas encore terminé.

Autre information : Cette version 3 (comme déjà annoncé) ne sera compatible qu’à partir des version 4.4 de Jeedom et de Debian 11, et a été écrit (pour les parties concernées) en pure JS (sans JQuery).

L’autre bonne nouvelle (c’est une demande que j’avais dans ma backlog), le plugin devient plus personnalisable et surtout utilisable dans des scénarios ou des virtuels (ou autre) sur l’ensemble des données et donc des commandes du plugin :

  • Vous voulez tester la place qu’il reste sur un disque = l’info est là
  • Vous voulez ne pas tester la mémoire libre, mais la mémoire utilisée, le % est là aussi
  • Vous voulez historiser chaque commande pour permettre de suivre son évolution, c’est possible (mémoire, trafic réseau, disque, swap, etc…)
  • Vous voulez avec les valeurs en nombre (156678899 disponible sur le disque) et pas en chaine de caractères (Go, To, Ko, etc…), c’est possible

Le template de widget est toujours là, mais se personnalise et s’unifie (autres demandes que j’avais) pour chaque commande, vous avez d’un coup d’oeil les infos : Total + Libre + Utilisé (et non pas un mix de ces infos), chaque icone peut se personnaliser (autant en couleurs que de changer l’icone si vous le souhaitez !)

image

Côté tableau des commandes, forcément, il y en a plus de disponibles avec tous ces changements (extrait car il y en a encore d’autres) :

MAIS : pour ceux qui cherchent la simplicité :

  • Pas besoin d’aller dans ce tableau de commandes et de toucher à quoi que ce soit si vous ne le souhaitez pas : par défaut, le plugin continue à s’afficher sur le Dashboard et à aller récupérer les infos comme l’ancienne version :wink:

Donc il peut devenir personnalisable pour ceux qui le souhaitent, et pour ceux qui cherchent la simplicité, il y aura juste à l’installer et comme avant à ajouter vos équipements.

Si vous ne souhaitez pas utiliser le template intégré, vous aurez la possibilité d’utiliser les commandes individuellement pour vous faire votre propre design (soit via un virtuel, soit en désactivant l’usage du template dans les options de l’équipement). Après à vous de les gérer comme bon vous semble :

2ème information :

  • Le plugin Monitoring sera intégré au plugin SSH Manager plugin-sshmanager (actuellement en version béta et qui passera en stable d’ici la sortie de Monitoring v3), ce qui signifie que pour que Monitoring fonctionne pour se connecter en SSH à un équipement, il aura besoin que le plugin SSH Manager soit installé, et à l’inverse, si vous souhaitez lancer d’autres commandes SSH sur vos équipements, il vous suffira de les ajouter dans le plugin SSH Manager (sans surcharger le plugin Monitoring)

Alors pas d’inquiétude là non plus :

  • Tout cela se fera de manière automatique !
  • Il suffira d’installer (ou de mettre à jour) le plugin Monitoring, et le code s’occupera d’installer la bonne version de SSH-Manager (s’il n’est pas déjà installé).
  • Et cerise sur le gâteau, la version (beta ou stable) de Monitoring, fera (encore une fois si le plugin n’est pas déjà installé par ailleurs) matcher sa version avec celle de SSH Manager :+1:
    • si Monitoring est en version béta, il installera par défaut la version béta de SSH Manager, et si Monitoring est en stable, il installera la version stable de SSH Manager.
    • MAIS : si SSH Manager est déjà installé (qu’il soit en stable ou en béta) il n’y touchera pas :wink:

Alors certains vont se dire « et quid des performances avec tout ca » ? :

La plupart des informations que vont s’afficher étaient déjà récupérées lors des connexions sur vos équipements, mais pas exploitées, donc forcément ca va prendre un peu plus de ressources sur jeedom pour stocker en base de données ces infos, mais on parle de quelques chiffres et de texte de quelques dizaines de caractères ! donc cela ne devrait pas avoir d’impact.

Sur mes plateformes de tests (notamment un pi3b+ et un odroid c2 pour les moins costauds) cela tourne très bien et je ne vois pas de différence.

La contrepartie ? :

  • Je ne sais pas encore si la migration (fluide) sera possible entre la version 2.5 et la future v3 du plugin concernant vos équipements ! Il est possible que vous deviez recréer vos équipements et adapter les scénarios que vous utilisiez déjà avec ce plugin.

C’est ce que je suis en train de regarder actuellement, mais il y a eu tellement de changements dans le code, que cela risque d’être compliqué (mais si c’est possible, je le ferai bien entendu, et si ce n’est pas possible, tout sera expliqué dans la documentation)

Via ce post, je suis à votre écoute et il est là pour que l’on discute de cette nouvelle version v3 et de ce que vous attendez en terme de fonctionnalités et qu’il n’y aurait pas encore :slight_smile:

Bon week-end,
TiTidom.

30 « J'aime »

Super taf. Bravo

1 « J'aime »

Bonsoir,

Petite question à tous :

Sur le Widget du Dashboard, quelle est votre préférence :

image

ou bien :

image

La différence ? :stuck_out_tongue: Les intitulés pour la mémoire / Swap et disque :

En entier :

  • Total : / Utilisé(e) : / Disponible : / Libre :

Seulement la première lettre :

  • T : / U : / D : / L :

La différence se fait sur la taille du widget : plus lisible (en entier) mais plus large, ou bien plus compact mais avec seulement la première lettre ?

Votez ici :

  • En entier (widget plus large)
  • Abréviation (widget plus compact)
0 votant

Bonne soirée,
TiTidom.

2 « J'aime »

Bonjour,

Pourquoi ajouter l’information de mémoire disponible ?
Cela semble être la différence entre le total et l’utilisée

Autre possibilité, supprimer le mot total, l’icone : quantité devrait suffire, non ?

:tram: : 1.88 Go - Utilisée : 273.93 Mo
(la rame de train… arf…)

Le libre, c’est dans sa tête que l’on doit le voir instantanément.

Quand ma bouteille est à moitié pleine, je sais instinctivement qu’elle est à moitié vide
-----

Bonjour Fabrice,

Merci pour ces retours et propositions :+1:

Ce sera expliqué dans la documentation du plugin au moment du passage en v3 (car il y aura des questions c’est sûr si les users font quelques additions ils vont avoir des surprises), mais cela n’empêche pas d’en parler ici :slight_smile:

En fait, sous Linux, c’est plus compliqué que cela n’y parait, et si tu regardes les chiffres en détail, il y a, au premier abord, de quoi en perdre son latin :open_mouth: car :

  • Non, la mémoire utilisée n’est pas forcément la différence entre la libre et le total,
  • Et en plus (c’est fait exprès dans le plugin que le terme soit différent), la mémoire « libre » n’est pas la mémoire « disponible » et ni l’une, ni l’autre n’est la différence entre le total et l’utilisée :stuck_out_tongue:

pour faire synthétique (et tenter d’être clair :thinking: ) :

  • La mémoire « disponible » et celle qui devrait servir le plus dans le plugin pour faire des check du système, car c’est la mémoire qui est potentiellement « disponible au lancement d’une nouvelle application » (et ce n’est qu’une estimation), mais ce chiffre est très différent de la mémoire « libre » qui elle peut être très basse, mais potentiellement ce n’est pas un problème… car entre les deux rentre en jeu la mémoire « buff/cache = buffers + cache », qui crame la mémoire libre (la remplit), mais est libérée par le système si une application demande, d’où la mémoire « disponible »…

et pour le disque (HDD), tu verras que si tu prends les chiffres (total, free, used) et que tu essaies de les additionner ou les soustraire, tu ne retomberas jamais sur tes pieds :stuck_out_tongue:

pourquoi ? car le système linux réserve environ 5% d’espace disque pour le user root, pour éviter qu’un utilisateur autre que root puisse faire crasher le système en le remplissant complètement, mais cela n’apparait nul part dans les chiffres, du coup les additions et soustractions des différentes valeurs sont fausses.

C’est pour cette raison que j’ai décidé de mettre à disposition toutes les informations à dispo, car en fonction des cas d’usage, il faut utiliser les unes ou les autres de ces informations :wink:

Alors c’est « complexe » j’en conviens, et c’est d’un niveau avancé, mais cela permet de comprendre pourquoi quand on additionne le tout on retombe jamais sur 100%, et dans le plugin Monitoring, tu verras que les pourcentages dispo et used ne font pas 100% quand on les additionne (cela aussi sera expliqué dans la doc), car comme ils ont un usage différent, ils sont calculés à partir de données différentes, et c’est d’une certaine manière « normal » que leur somme ne fasse pas toujours 100% :wink:

TiTidom.

8 « J'aime »

Vraiment impressionné par ce projet : créativité, rigueur, exhaustivité de la documentation…

Rien n’est laissé au hasard !
Bravo :+1::+1:

3 « J'aime »

Il n’y a qu’a voir son plugin TTScast, idem, une rolls rolls. :smiley:

2 « J'aime »

Je ne connaissais pas… Je viens de jeter un œil à la doc, c’est du lourd en effet :clap:

https://titidom-rc.github.io/Documentation/fr_FR/TTSCast/index

1 « J'aime »

Et toujours avec une bonne humeur, une touche d’humour, une empathie visible pour tous les retours des demandes et interrogations des utilisateurs :hugs:

Des échanges reposants et souvent constructifs, surtout après avoir subi certains fils de discussions où l’agressivité des réponses semble la règle :unamused: Qui sait si un jour la tendance sera inversée :blush:

11 « J'aime »

Bonjour :slight_smile:

Merci, cela fait chaud au coeur ! :heart_eyes: J’aime les choses bien finies et fonctionnant aux petits oignons, ceci explique sans doute cela :stuck_out_tongue:

Allez, un autre petit sondage pour vous (dans l’optique de simplifier le code du plugin qui est en pleine revue !).

Je gère un nombre de cas certains et notamment des architecture / OS dont je ne sais pas s’ils sont encore utilisés (monitorés) aujourd’hui.

Alors à vos votes pour que j’essaie de me faire une idée :slight_smile: Ce sont les OS que vous monitorez, pas seulement ceux sur lesquels Jeedom tournent !!! (je préfère préciser :stuck_out_tongue: ) :

Cette information apparait notamment dans le widget sur le dashboard, sur la première ligne (entre parenthèse à la fin de la ligne) :

image

J’ai remis tous les types d’architecture (OS), mais pas d’inquiétude :stuck_out_tongue: ils ne vont pas disparaitre, mais si certains ne sont plus du tout utilisés, cela ne sert à rien d’encombrer le code avec leur spécificité ! :

  • Arm6L (Raspberry Pi 2 ? Zero ?)
  • Arm7L
  • mips64
  • aarch64 (Odroid C2 par exemple)
  • x86_64 (toutes les VM par exemple)
  • RasPlex
  • OpenELEC
  • LibreELEC
  • piCorePlayer
  • FreeBSD
  • Medion
  • Synology
  • Arm6L
  • Arm7L
  • aarch64
  • mips64
  • x86_64
  • RasPlex
  • OpenELEC
  • LibreELEC
  • osmc
  • piCorePlayer
  • FreeBSD
  • Medion
  • Synology
0 votant

Merci d’avance pour votre participation :+1:

Bonne fin de journée,
TiTidom.

2 « J'aime »

Bonjour,

Petit aperçu des avancées du dev de cette v3 du plugin Monitoring :

  • Pour ceux (@Steph79 notamment) qui l’avaient demandé, l’intégration des volumes 3 et 4 pour une baie synology a été fait :

image

J’ai recodé presque entièrement la partie graphique du widget :

  • Les icônes sont passés à gauche pour pouvoir intégrer dans chaque équipement la commande rafraichir « standard » et la laisser à droite comme dans tous les plugins.
  • Le widget mobile a été revue également pour être compatible avec le plus de configurations possibles (taille écran, portrait, paysage, etc…) et les icones organisés un peu différemment (notamment plus espacés, car cliquer sur le bouton « reboot » avec un doigt est forcément plus touchy qu’avec un curseur de souris :stuck_out_tongue: )

Vue Dahsboard :
image

Vue mobile :
image

La refonte du moteur dans le code pour aller chercher les infos en local comme en SSH est presque terminé (et c’est cette réécriture optimisée qui m’a permis d’ajouter des commandes facilement pour la baie syno par exemple :+1: )

Il me reste la partie « Migration » (et sa documentation) de la version 2.5 à cette v3 :

  • Ne seront récupérés, à priori, que les paramètres des équipements : ip, login, password, clé ssh, bref les paramètres de connexion, pour le reste, tout a trop changé dans le code pour pouvoir les récupérer, il faudra donc (une fois la migration effectuée, supprimer l’équipement et le recréer à l’identique, ce qui sera simplifié par la migration des paramètres de connexion et passer partiellement par la case « reconfig »

D’ici quelques temps, j’aurai besoin de vous tous pour valider dans une version béta que pour chaque type d’équipement (local, distant : vm, raspberry, syno, freebsd, rasplex, etc…) que toutes les commandes sont conformes à ce qu’il y avait avant :+1:

TiTidom.

12 « J'aime »

Bonjour,

Sympa les évolutions :+1:

Pour le Syno (désolé de me réveiller si tard :slightly_frowning_face:) :
→ Est-il possible « facilement » d’augmenter le nombre de volumes au-delà de 4 ?
→ Si oui, cela m’intéresse, si c’est trop lourd → oublie !

Quoi qu’il en soit, tu peux compter sur moi pour les futurs tests de la beta.

@+

1 « J'aime »

Salut,

Il t’en faudrait combien ? :open_mouth: , car à chaque fois ca alourdit le plugin (même si maintenant c’est plus simple à ajouter…)

Il faudrait voir aussi de quel type sont ces volumes (volume interne, volume esata, usb, etc…)

Tout est possible, mais je ne te promet rien pour la sortie de la v3 (qui est imminente pour la première béta en tout cas)

TiTidom.

Bonjour à tous,

[IMPORTANT]

La réécriture du plugin est terminée, et la v3.0.16 (béta) sortira bientôt (j’ai encore une batterie de tests à faire) : probablement pendant le we.

En attendant, je vous invite à aller lire le changelog et à prendre connaissance de la procédure de migration (dans la doc).

J’ai mis à jour le changelog : Changelog

Et la documentation a été mise à jour également, en intégrant la procédure de migration : Migration v2.5 → v3.0

Je vous invite tous à lire cette documentation, car le passage de la version 2.5 à la version 3.0 n’est pas neutre, et il y a des actions à mener. Tant que ces actions n’auront pas été menées, le dashboard ne s’affichera pas correctement, et il y a aura des erreurs dans les logs du plugin :wink:

TiTidom.

8 « J'aime »

Bon je me lance :scream:

  • Besoins au quotidien (production)
    → 7 volumes

  • A venir (tests en cours, passeront en production si tout est fonctionnel)
    → 12 supplémentaires, voire 15.

  • 100% sont des volumes internes.

Je reconnais que cela fait beaucoup (c’est pour cela que je me demandais s’il y avait une routine à jouer n fois dans le code). Si c’est trop lourd, on pourrait se limiter à 7 ou 8.

En tous les cas, aucune urgence, je voyais cela bien après la sortie de la v3.

@+

Hello,

Quelques idées en passant (pour une prochaine version évidemment)

Monitorer les kills de process du Linux qui sont du à un problème mémoire (comme « Mémoire suffisante » sur la page santé, il compte un mot dans un log)

Ça pourrait permettre de faire clignoter en rouge la ligne mémoire sur le widget par exemple.

Autre idée peut être plus compliquée, le load du demon pour les plugins qui ont des démons. Jeedom a l’info si démon ou pas pour chaque plugin. Par contre faudrait trouver un moyen de connaître le pid de chaque démon (de mémoire il y a une norme que les plugins peuvent suivre…)

EDIT : je sais pas si c’est une norme mais je vois pas mal de : /tmp/jeedom/idPlugin/daemon.pid

1 « J'aime »

Hello et bravo pour le boulot !

Je me demande si j’ai mal compris ou s’il y a une typo, dans la doc qui explique la migration, l’option avec le bouton « migrer »

6* - Recréer les équipements en les ajoutant à nouveau, les paramétrer (IP, Login, Password, etc…) –> cela va recréer toutes les nouvelles commandes proprement

Faut-il vraiment retaper les IP, Login et Pwd ? J’ai compris que tout l’intérêt du bouton était de s’en passer…
J’ai raté un truc ?
Merci d’avance !

Salut Titi, bravo pour le sacré boulot accompli, hâte de voir le résultat !
Ma petite participation au sondage si ce n’est pas trop tard : je préfère voir en toutes lettres « Total », « Utilisé », « Disponible » et « Libre » plutôt que leurs initiales, notamment parceque dans ma tête de moineau quand je vois U et D je pense à upload et download et du coup je bug :clown_face: .

1 « J'aime »

Salut,

Bon, va falloir que je modifie la doc alors, c’est que c’est pas clair :confused:

En fait, je laisse le choix : si tu préfères les refaire à la main, tu peux :stuck_out_tongue: mais sinon, tu peux utiliser le bouton Migrer, et justement ce bouton va reprendre tous les paramètres : ip, compte, mot de passe, etc… :wink:

TiTidom.

1 « J'aime »

Bonsoir,

J’ai mis à jour la documentation, j’espère qu’ainsi ce sera plus clair sur la partie migration et la méthode à utiliser :slight_smile:

Bonne soirée,
TiTidom.

2 « J'aime »