This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
blocks:usestats:algorithm [2019/11/08 12:05] florence |
blocks:usestats:algorithm [2023/01/31 16:46] (current) |
||
---|---|---|---|
Line 2: | Line 2: | ||
- | ===== Block Use Stats (User Time tracking) ===== | + | ===== Block Use Stats (User Time tracking): algorithm===== |
- | ===== 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. | + | This article is about what the Use Stats block actually "does". |
- | ==== Les problèmes à résoudre ==== | + | The Use Stats block is a "usage time" compiler. It tries to determine at best the time spent by the user in the different contexts of Moodle. |
- | Les deux problèmes principaux à résoudre dans l'analyse et la compilation des temps passés sont : | + | To do so, it analyzes the user's traces, and first calculates a differential delay with respect to the last known trace of the same user. It is the "tracking" function of standard traces that makes this calculation over water by "following" the standard trace table as close as possible. |
- | * Le problème des déconnexions ou rupture de sessions | ||
- | * Le problème du choix d'agrégation des temps | ||
- | ==== Les ruptures de session ==== | + | ====The problems to solve==== |
- | 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. | + | The two main problems to solve in the analysis and compilation of past times are: |
- | 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. | + | * The problem of disconnections or break of sessions |
+ | * The problem of choosing time aggregation | ||
- | ==== Approche par keep_alive ==== | + | ==== Break of sessions ==== |
- | 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 : | + | The break in session is far from being an "explicit" event, marked by an action duement recorded in the traces of use. The observation of the practice shows that very few users activate an explicit disconnection of Moodle when they have finished their session of use. Most often, the browser is closed on the last window used, or the computer is stopped by the system command, when other events such as a forced sleep are not triggered. |
+ | |||
+ | For this reason, it is necessary to set up a "heuristic" device that will "guess" in which condition a user must be considered to have left the work session, by examining only the tangible data that the block has: traces. | ||
+ | |||
+ | ==== keep_alive approach==== | ||
+ | |||
+ | A new approach to resolving break in session integrity has been implemented as a Javascript add-on to all Moodle pages. This addition issues an automatic request (every 10 minutes by default) resulting in the creation of a trace event filled with the context of the page from which it is issued. This feature needs to be built into the theme (for example, in the section that specializes a specific footer) in the form of the following call: | ||
include_once $CFG->dirroot.'/blocks/use_stats/lib.php'; | include_once $CFG->dirroot.'/blocks/use_stats/lib.php'; | ||
echo block_use_stats_setup_theme_notification(); | 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. | + | In the footer part of the layouts of the theme. |
+ | |||
+ | |||
+ | An alternative is indicated in the installation guide of this 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. | + | At the moment, the "keep_alive" approach does not handle usage situations with many parallel browsers for the same user. |
+ | ---- | ||
- | ----- | ||
- | [[blocks:usestats|back to Component index]] - [[:Blocks:UseStats:UserGuide|User guide]] - [[blocks:usestats:technique|technical guide]] | + | [[:start|Back to home]] - [[:plugins|Back to plugin list order by type]] - [[:Blocks:UseStats|Back to the component index]] - [[:Blocks:UseStats:UserGuide|User guide]] - [[blocks:usestats:technique|Technical index]] |