Project

General

Profile

Demande #5258

Ajouter l'analyse de log colibri au rapport d'activité mensuel visio.chapril.org

Added by Christian P. Momon 9 months ago. Updated 9 months ago.

Status:
En cours de traitement
Priority:
Normale
Assignee:
Target version:
Start date:
03/04/2021
Due date:
% Done:

0%

Estimated time:

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.


Files

probeapi-cron.log.gz (192 KB) probeapi-cron.log.gz Exemple de fichier produit par le script probe_api.sh Lilian C, 03/07/2021 11:49 AM

History

#1

Updated by Frédéric Couchet 9 months ago

Colibri est un des modules de Jitsi, pour les stats.

#2

Updated by Lilian C 9 months ago

  • Assignee set to Lilian C
#3

Updated by Lilian C 9 months ago

  • File probeapi-cron.log added
#4

Updated by Frédéric Couchet 9 months ago

  • Assignee deleted (Lilian C)

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.

#5

Updated by Frédéric Couchet 9 months ago

  • Assignee set to Lilian C
#6

Updated by Lilian C 9 months ago

  • File deleted (probeapi-cron.log)
#8

Updated by Christian P. Momon 9 months ago

  • Status changed from Nouveau to 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.
#9

Updated by Lilian C 9 months ago

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

#10

Updated by Christian P. Momon 9 months ago

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 ».

:-)

Also available in: Atom PDF