Use Stats algorithm

Cet article documente sur ce que fait effectivement le bloc Use Stats.

Le bloc Use Stats est un compilateur de “temps d'usage”. Il essaie de déterminer au mieux le temps qu'à passé l'utilisateur dans les différents contextes de Moodle.

Pour se faire, il analyse les traces des utilisateurs, et calcule en premier lieu un délai différentiel par rapport à la dernière trace connue du même utilisateur. C'est la fonction de “tracking” des traces standard qui fait ce calcul au fil de l'eau en “suivant” la table de trace standard aussi près que possible.

Les problèmes à résoudre

Les deux problèmes principaux à résoudre dans l'analyse et la compilation des temps passés sont :

Le problème des déconnexions ou rupture de sessions

Le problème du choix d'agrégation des temps

Les ruptures de session

La rupture de session est loin d'être un événement “explicite”, marqué par une action duement enegistrée dans les traces d'usage. L'observation de la pratique montre en effet que très peu d'utilisateurs actionnent une déconnexion explicite de Moodle lorsqu'ils ont terminé leur session d'usage. Le plus souvent, le navigateur est refermé sur la dernière fenêtre utilisée, ou l'ordinateur est arrêté par la commande système, lorsque d'autres événements comme une mise en veille forcée ne sont pas déclenchés.

Pour cette raison, il est nécessaire de mettre en place un dispositif “heuristique” qui va “deviner” dans quelle condition on doit considérer qu'un utilisateur a quitté la session de travail, par le seul examen des données tangibles dont le bloc dispose : les traces.

Approche par keep_alive

Une nouvelle approche de la résolution de l'intégrité des ruptures de session a été implémentée sous forme d'un ajout Javascript à toutes les pages de Moodle. Cet ajout émet une requête automatique (toutes les 10 minutes par défaut) entrainant la création d'un événement de trace renseigné du contexte de la page d'où elle est émise. Ce dispositif doit être intégré dans le thème (par exemple, dans la partie qui spécialise un pied de page spécifique) sous forme de l'appel suivant :

include_once $CFG->dirroot.'/blocks/use_stats/lib.php';
echo block_use_stats_setup_theme_notification();

dans la partie “footer” des “layouts” du thème.

Une alternative est indiquée dans la partie “installation” de cette documentation.

A l'heure actuelle, l'approche par “keep_alive” ne gère pas les situations d'usage avec de nombreuses navigations parallèles du même utilisateur.

User guide - technical guide