Demande #5258
ferméAjouter l'analyse de log colibri au rapport d'activité mensuel visio.chapril.org
0%
Description
Actuellement, un script génère toutes les 5 minutes une ligne de log dans un fichier sur l'état des visioconférences :
Une ligne consiste en une liste de compteurs. À chaque redémarrage du service, les compteurs sont mis à zéro.
Source du script : https://forge.april.org/Chapril/visio.chapril.org-tools/src/branch/master/rapport_activite/probe_api.sh
Extrait du fichier de log obtenu :
=(^-^)=root@allo:/var/log/visio.chapril.org# tail probeapi-cron.log 2021-02-10T12:45:01 total_conferences_created=36 total_failed_conferences=0 total_conferences_completed=36 largest_conference=0 total_conference_seconds=80332 total_bytes_received=6327942131 total_bytes_sent=3956576980 total_participants=124 conferences=0 participants=0 videochannels=0 endpoints_sending_audio=0 2021-02-10T12:50:01 total_conferences_created=36 total_failed_conferences=0 total_conferences_completed=36 largest_conference=0 total_conference_seconds=80332 total_bytes_received=6327942131 total_bytes_sent=3956576980 total_participants=124 conferences=0 participants=0 videochannels=0 endpoints_sending_audio=0 2021-02-10T12:55:01 total_conferences_created=36 total_failed_conferences=0 total_conferences_completed=36 largest_conference=0 total_conference_seconds=80332 total_bytes_received=6327942131 total_bytes_sent=3956576980 total_participants=124 conferences=0 participants=0 videochannels=0 endpoints_sending_audio=0 2021-02-10T13:00:01 total_conferences_created=37 total_failed_conferences=0 total_conferences_completed=37 largest_conference=0 total_conference_seconds=80409 total_bytes_received=6327942159 total_bytes_sent=3956576980 total_participants=126 conferences=0 participants=0 videochannels=0 endpoints_sending_audio=0 2021-02-10T13:05:01 total_conferences_created=37 total_failed_conferences=0 total_conferences_completed=37 largest_conference=0 total_conference_seconds=80409 total_bytes_received=6327942159 total_bytes_sent=3956576980 total_participants=126 conferences=0 participants=0 videochannels=0 endpoints_sending_audio=0 2021-02-10T13:20:05 total_conferences_created=0 total_failed_conferences=0 total_conferences_completed=0 largest_conference=0 total_conference_seconds=0 total_bytes_received=0 total_bytes_sent=0 total_participants=0 conferences=0 participants=0 videochannels=0 endpoints_sending_audio=0 2021-02-10T13:25:01 total_conferences_created=0 total_failed_conferences=0 total_conferences_completed=0 largest_conference=0 total_conference_seconds=0 total_bytes_received=0 total_bytes_sent=0 total_participants=0 conferences=0 participants=0 videochannels=0 endpoints_sending_audio=0
Pour être intégrées dans le rapport d'activité général, ces logs doivent être consolidées.
La consolidation consiste à sommer toutes les valeurs d'un mois donné en paramètre.
Mais il convient d'éliminer les lignes redondantes.
Demande : écrire un script prend en paramètre une année et un mois, et en retour affiche les compteurs consolidés, un compteur par ligne.
Fichiers
Mis à jour par Frédéric Couchet il y a presque 4 ans
Colibri est un des modules de Jitsi, pour les stats.
Mis à jour par Frédéric Couchet il y a presque 4 ans
- Assigné à
Lilian Csupprimé
Pour être sûr, si par exemple le script s'intitule logs-colibri pour avoir les logs de décembre 2020 on ferait :
logs-colibri -a 2020 -m 12
La sortie serait un truc du genre :
total_conferences_created=120 total_failed_conferences=2 total_conferences_completed=118 total_conference_seconds=99426123 total_bytes_received=122812224954646 total_bytes_sent=1457181117747643743 total_participants=410
On n'affiche pas largest_conference, conferences, participants, videochannels, endpoints_sending_audio.
Mis à jour par Lilian C il y a presque 4 ans
- Fichier probeapi-cron.log.gz probeapi-cron.log.gz ajouté
Mis à jour par Christian P. Momon il y a presque 4 ans
- Statut changé de Nouveau à En cours de traitement
Je confirme l'exemple et le fait que certains compteurs sont inutiles et donc à ne pas afficher en sortie. Bien vu.
Suggestions de petites sophistications :- pour le compteur total_conference_seconds, ajouter en plus entre parenthèse la traduction en heures ;
- pour les compteurs bytes, ajouter entre parenthèse la traduction en Mo.
Mis à jour par Lilian C il y a presque 4 ans
J'ai commencé à travailler dessus, sauf qu'à un moment mon script butte sur une
json read error
dans le fichier généré par le script probe_api.sh à la ligne correspondant à 2021-02-18T21:30:15
Mis à jour par Christian P. Momon il y a presque 4 ans
Oui, il peut arriver que le script probe_api.sh tombe en erreur et génère des messages imprévus :
2021-02-18T21:30:15json read error: line 2 column 0: '[' or '{' expected near end of file total_conferences_created=json read error: line 2 column 0: '[' or '{' expected near end of file total_failed_conferences=json read error: line 2 column 0: '[' or '{' expected near end of file total_conferences_completed=json read error: line 2 column 0: '[' or '{' expected near end of file largest_conference=json read error: line 2 column 0: '[' or '{' expected near end of file total_conference_seconds=json read error: line 2 column 0: '[' or '{' expected near end of file total_bytes_received=json read error: line 2 column 0: '[' or '{' expected near end of file total_bytes_sent=json read error: line 2 column 0: '[' or '{' expected near end of file total_participants=json read error: line 2 column 0: '[' or '{' expected near end of file conferences=json read error: line 2 column 0: '[' or '{' expected near end of file participants=json read error: line 2 column 0: '[' or '{' expected near end of file videochannels=json read error: line 2 column 0: '[' or '{' expected near end of file endpoints_sending_audio=
Comme cela n'est pas censé arriver ou alors exceptionnellement, on peut partir du principe qu'il est de la responsabilité d'un opérateur humain de nettoyer le fichier de log manuellement afin d'avoir toujours un fichier de log nominal et exploitable.
Donc considérer que le script d'analyse doit s'arrêter avec un message d'erreur s'il détecte l'un des cas suivant :- une ligne commençant par autre chose qu'un chiffre ;
- une ligne contenant la chaîne de caractères « json read error ».
:-)
Mis à jour par davidd09 . il y a environ 2 ans
J'ai repris l'idée de ce script en repartant "de zéro".
J'ai écrit deux appli en python (plus facile pour traiter le JSON)
/srv/visio.chapril.org/tools/statistiques/getStats.py
qui récupère toutes les 5 minutes la totalité des données fournies par l'API REST de jitsi et le place dans une base sqlite dans
/srv/visio.chapril.org/statistiques/stats_sqlite.db
Une appli de consolidation
/srv/visio.chapril.org/tools/statistiques/parseStats.py <mois> [annee]
qui renvoie en retour une liste de données consolidées sur le mois passé en paramètre (année en option)
Ce qui donne :
=(^-^)=root@allo:/srv/visio.chapril.org/tools# /srv/visio.chapril.org/tools/statistiques/parseStats.py 12 total participants=159 conferences terminees total=43 conferences creees total=43 canaux video=1140 total octets reçus=27.1 Go canaux audio=754 total octets envoyés=20.7 Go conferences totalement echouees=0 duree totale conferences=29.9 h moyenne de conferences par jour=2 Moyenne participants par conference=4.1 duree moyenne des conferences=42.2 min
Mis à jour par davidd09 . il y a presque 2 ans
- Assigné à changé de Lilian C à davidd09 .
Mis à jour par davidd09 . il y a presque 2 ans
- Statut changé de En cours de traitement à Résolu
Mis à jour par Pierre-Louis Bonicoli il y a presque 2 ans
- Version cible changé de Backlog à Sprint 2023 février