Monitoring panel for software ecosystem

The inventory of competences showed that we have a lot of people with web skills interested to contribute. There is a need for a monitoring tool allowing to

  • manually add an instance of a software
  • automatically track their status (online / offline and more)

Here is what the panel could look like (sorry for the very rough draft, we should add designers to the list):

panelsvg

Who could be interested? I can explain the needs in details if needed.

@davidbp845 @happytodev @tykayn @eleba @umbrosus @Wykks @Libertus @jnoel @trayeur @kapis @bpresles

[edit] current proof of concept:

Capture d’écran 2022-07-28 à 17.50.28

(old version below)
image

4 « J'aime »

Salut @HugoTrentesaux.
J’aimerais bien participer à cet outil de monitoring ou même le mettre en place entièrement si besoin.

I would love to participate in this monitoring tool or even set it up entirely if needed.

4 « J'aime »

Super ! Est-ce que tu vois comment t’y prendre pour faire une première preuve de concept ou est-ce que tu as besoin d’en discuter davantage ?

Non, je vois comment faire. Il faudra juste voir comment vérifier l’état de chaque service : un simple ping ou une requête un peu plus poussée (et qui sera surement différente pour chaque type de service) ?
En tout cas, je m’y mets :wink:

5 « J'aime »

Au début un simple ping http périodique (par exemple toutes les dix minutes) et activable manuellement par l’utilisateur devrait suffire. Après on pourra ajouter des fonctionnalités comme une requête sur BMA pour obtenir le bloc courant des instances Duniter (/blockchain/current), mais une solution très basique sera déjà d’une grande aide :smiley_cat:

1 « J'aime »

Merci @HugoTrentesaux pour ce topic dédié à la demande que j’avais formulée. La demande originale concernait surtout les noeuds duniter mais cela peut effectivement s’étendre aux autres services. Du coup, je copie/colle ce que j’ai mis dans le sujet original :

Voici le code source de instances.joinpeertube.org ou encore le code source de fediverse.observer qui pourraient inspirer @jnoel :slight_smile:

2 « J'aime »

J’ai commencé une ébauche de programme que vous pourrez voir ici :
https://g1-status.mithril.re/

Le code source est ici :

Pour le moment, ça ne ping l’url qu’au moment de la création et ça lui donne un statut (down/up) et une couleur (rouge/vert).

On pourrait imaginer stocker le délai de réponse et en faire un graph comme pour les mirroirs arch par exemple :
https://archlinux.org/mirrors/mithril.re/

N’hésitez pas à me donner vos conseils.

@Paidge, je ne vois ton message que maintenant, mais c’est une bonne idée. Je vois l’info de localisation sur peertube. Ca pourrait être intéressante pour nous aussi.

8 « J'aime »

Pour le dépôt GIT, nous avons git.duniter.org :wink:

2 « J'aime »

Super ! On pourra le mettre à l’ordre du jour de la visio développeurs.

Super, quand pourrais-je conseiller ce site dans mon petit tuto sur les nœuds : Nœud césium+ vs nœud duniter - Tutoriels - Forum Monnaie Libre

2 « J'aime »

Il me semble aussi très important à ce jour d’ajouter les nœuds césium+

3 « J'aime »

Salut @jnoel, désolé pour les retours tardifs, j’ai été très occupé ces derniers temps entre mon boulot et les rml16. Merci pour ton ébauche, ça permet de continuer la discussion plus facilement. Je propose cette liste en mode wiki pour identifier les besoins.

Fonctionnalités minimales

  • panneaux pour les différents logiciels
  • statut au moment de la visite
  • historique des statuts
  • Cesium+ pod
  • lien vers le tutoriel d’installation

Fonctionnalités supplémentaires

  • statut de connexion en fonction de l’API
    • duniter : version du noeud sur BMA /
    • duniter : numéro du bloc courant sur BMA /blockchain/current
    • wotwizard
      • version du noeud sur l’API GraphQL {version}
      • version de l’UI webapp wotwizard-ui
      • version de l’UI html wotwizard client
    • cesium+ : nombre de documents document/stats
    • cesium+ : version sur node/summary
    • stocker la latence des requêtes sur les API

Fonctionnalités avancées

  • gouvernance des données (s’assurer que les informations sont celles souhaitées)
  • textes explicatifs sur comment se servir de ces informations
4 « J'aime »

À noter que maintenant Kazou fournit une information assez intéressante sur les nœuds Duniter. On pourrait ajouter le lien.

2 « J'aime »

Un exemple de panneau d’uptime intéressant :

https://stats.uptimerobot.com/mQX5Vi5YW2

1 « J'aime »

Un autre plus en lien avec nous, pour la blockchain Ark: Delegates | ARK Blockchain Explorer

productivity c’est le uptime

2 « J'aime »

Bonjour, désolé pour le délai, j’ai eu très peu de temps à consacrer à ce dév ces derniers mois.

Depuis quelques jours, j’ai un stagiaire en licence informatique qui a choisi de travailler sur g1_status durant son stage.

Je viens de mettre en ligne la dernière version qu’on a faite et qui permet de stocker l’historique des statuts, d’interroger BMA pour connaitre le dernier block d’un noeud et d’en déduire s’il est à jour ou pas par rapport aux autres.

Nous allons continuer dans les jours qui viennent à implémenter les fonctionnalités minimales & supplémentaires manquantes.

Une fois que les fonctionnalités seront codées, nous creuserons l’UI…

3 « J'aime »

Super nouvelle ! C’est normal de galérer à trouver du temps, mais c’est super si le stagiaire est motivé par ce projet :slight_smile:
En plus c’est une bonne manière de découvrir les spécificités de différents logiciels, les API, l’enjeu de décentralisation, les problèmes de la production…
S’il veut venir sur le forum, ça peut être une bonne occasion pour lui d’avoir des retours sur son travail en continu. On peut même lui trouver un binôme qui suggère des améliorations pour l’UI pour lui laisser plus de temps pour le back et l’implémentation. À voir ce qu’il préfère…

Une remarque à propos de wotwizard. Il y a :

  • l’API GraphQL de wotwizard
  • le client html
  • le client webapp wotwizard-ui

Je pense que l’intérêt principal de cette interface de monitoring est l’API GraphQL de wotwizard puisque les clients en dépendent. Mais en même temps l’utilisateur sera plutôt concerné par l’ui. Donc il faudrait un moyen de rattacher une UI single-node à une API GraphQL (et idéalement avec des UI multi-node).

1 « J'aime »

Pour Cesium+, si on cherche le nombre de documents sur par exemple :
https://g1.data.presles.fr/document/stats
on tombe sur une erreur disant « No feature for name [stats] ».

Pourtant c’est bien cette url qui est décrite dans l’API :
http://doc.e-is.pro/cesium-plus-pod/REST_API.html#overview

Vous avez une idée de comment on peut récupérer le nombre de documents ?

Je vois qu’on peut avoir l’info dans « node/stats »

Super nouvelle version ! J’ai mis à jour la capture d’écran dans le post principal. On pourrait en parler à la visio dev du 21 août au minimum. Jusqu’à quand Romain travaillera-t-il sur ce projet ? Est-ce qu’il veut qu’on prenne un moment ensemble pour parler des fonctionnalités supplémentaires ?