Bloc Utilisateurs en ligne

Re: Bloc Utilisateurs en ligne

par Bruno Malaval,
Nombre de réponses : 3
Avatar Moodleurs particulièrement utiles
Bonjour,

Je vois que nous avons un peu tous les mêmes préoccupations ..
J'ai fait qq chose dans ce style, mais vraiment en bricolage rapide au début du confinement

Je ne peux pas décrire complètement ici, mais globalement :

  • une petite base de données pour stocker les données
  • un script lancé tous les 1/4h par cron qui :
    - interroge les logs / compte le nombre d'utilisateur distincts ayant effectué 1 action durant le 1/4 passé
    - stocke les infos dans ma bdd
  • 1 script php qui va compiler les données et générer des graphes a partir de la libraire jpgraph de php
    Je conserve les images, à raison de 1 fichier / jour, le graphe évolue donc tous les 1/4 d'heures
  • 1 script php lancé 1 fois par jour qui complète une autre statistique : le nombre d'utilisateurs uniques / par jour
    ce graphique affiche les données sur les 30 derniers jours
En pièces jointes, un exemple des 2 types de graphes que je génére
En l'état, je n'ai pas de doc la-dessus, c'est fait vraiment "à l'arrache", mais pas de souci pour fournir plus.

Je suis passé par cette voie, du fait que je ne trouvait pas comment relier différents outils / plugins pour obtenir ce que je voulais
Il y a des plugins qui permettent de tracer des graphes, mais je n'ai pas trouver comment les alimenter automatiquement

J'en en tête d'améliorer tout cela, mais on prépare une grosse migration de la plateforme avec changement d'infra (1 serveur => 3 serveurs : web / db / fichiers ) + changement mariadb -> postgres
On s'occupe quoi ...

Mais je suis très intéressé par tout autre retour sur ce sujet

Bruno
Annexe connexions_jour_avril_2020.jpg
Annexe graph75.jpg
En réponse à Bruno Malaval

Re: Bloc Utilisateurs en ligne

par Gérald GENIAUT,
Bonjour Bruno,

je t'avoue que ta requête qui récupère le Nb de user distinct ayant effectué une action tous les 1/4h m’intéresse. Je pourrais l'adapter afin de générer un fichier texte qui serait ensuite exploitable par Nagios (monitoring qui aletre quand on arrive à trop de monde) et aussi par grafana pour générer un graph. Peut-etre réduire de 15min à 5, comme dans le bloc "utilisateurs en ligne".

Nous sommes dans la même réflexion aussi, les cours dématérialisés qui se profilent pour la rentrée vont nous pousser à modifier les config ^^ A l'UFC nous avons eu un piv à 950 connectés en simultanés et le serveur a commencé à bien ramer. Avec un pool de 24K étudiants, nous devons renforcer la plateforme et avoir des indicateurs fiables pour le monitoring et pour avoir des tableau de bord à presenter à la direction pour justifier les investissements...

Donc, je suis preneur de ta requête. Je cherche depuis ce matin à la faire mais... J'arrive à rien ^^

Merci

Gérald
En réponse à Gérald GENIAUT

Re: Bloc Utilisateurs en ligne

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Pas de souci


Mais petite correction, et c'est finalement plus simple, je me suis basé sur la table mdl_user et le champ lastaccess.

D'après ce que j'ai vu dans la doc :
lastlogin = timestamp de la dernière connexion réussie sur la plateforme
lastaccess = timestamp de la dernière action effectuée sur la plateforme

en bash cela donne :

timestamp_now=`date +"%s"`
timestamp_start=$(($timestamp_now - 900))
## "- 900" => 1/4 h avant

MYSQL_REQ="SELECT COUNT(*) FROM mdl_user WHERE deleted=0 AND lastaccess > "$timestamp_start" AND lastaccess < "$timestamp_now" ;"

Attention par contre aux fuseaux horaires. Les timestamp dans Moodle sont en GMT
Il faudra donc adapter en utilisant le bon fuseau horaire

Bruno
Moyenne des évaluations Utile (2)