Volet | ||
---|---|---|
| ||
Mise en oeuvre des statistiques dans esup-portailAuteur : Vincent MATHIEU (Université Nancy 2) |
Sommaire | ||||||
---|---|---|---|---|---|---|
|
Généralités
Cette page décrit comment sont activées les informations statistiques dans le moteur esup-portail.
Consulter préalablement le document décrivant globalement l'ensemble des mécanismes de stats d'esup-portail.
La mise en oeuvre de statistiques esup-portail s'appuie sur le moteur uportal. En fait, aucune modification de source d'origine n'est faite, il suffit d'indiquer à uportal qu'on désire traiter les infos statistiques d'une manière personnalisée.
C'est fait dans le fichier properties/beanRefFactory.xml , en décommentant l'entrée correspondant aus traitements statistiques :
Bloc de code |
---|
<value>properties/statsContext.xml</value> |
Ceci permet d'activer l'utilisation du fichier properties/statsContext.xml .
Il est prévu, dans la distribution native uPortal d'activer ou non les traces de certains évènements ; l'activation de ces évènements à l'aide de propriétés du fichier statsContext.xml permet de les tracer ensuite à l'aide de l'outil spécifique esup-portail.
Le package org.esupportail.portal.services.stats a été développé afin de fournir des indicateurs pertinents à l'environnement esup-portail (et compatibles avec les demandes de notre ministère).
Le développement est en fait très léger : il se contente d'intercepter les différentes 'portes' prévues à cet effet dans uportal, et de formater la sortie pour qu'elles répondent à notre demande.
Les demandes fonctionnelles d'indicateurs sont principalement de deux ordres (qui se traduisent par trois réponses techniques) :
- Des indicateurs globaux de fonctionnement. Ceci concerne les statistiques liées aux ouvertures / fermetures de session.
- Des indicateurs d'accès aux services.
- Soit directement fourni par un 'canal' esup-portail.
- Soit lié à l'accès à un service externe au portail, mais accédé par lui-même.
Ce document décrit les dispositifs techniques mis en oeuvre pour exporter les informations de session, les informations d'accès aux services internes esup-portail (les canaux) et les informations d'appel à des services externes.
Cette description est informative, la distribution esup-portail se charge de mettre en oeuvre les différents paramètres lors de son déploiement, via les propriétés esup.stats.* du fichier esup.properties .
Fonctionnement global
La classe org.esupportail.portal.services.stats.StatsRecorder.java récupére les informations statistiques d'uportal validées dans le fichier statsContext.xml , les formatte et les redirige vers le 'Logger' uportal.
Pour les différents types d'indicateurs, il est nécessaire de pouvoir déterminer la catégorie de l'utilisateur (étudiant, enseignant, ...).
Ceci est fait à l'aide d'un attribut uPortal lié à la personne.
Cet attribut est paramétré dans le fichier portal.properties : org.esupportail.portal.services.stats.attributeType .
Dans le package esup-portail, il suffit de valuer dans esup.properties la propriété esup.stats.attributeType ( eduPersonPrimaryAffiliation par défaut).
Indicateurs globaux
Ils s'appuient sur les informations d'ouverture et de fermeture de sessions.
Il suffit juste d'activer dans statsContext.xml les propriétés recordSessionCreated et recordSessionDestroyed , ce qui est fait par défaut dans le package esup-portail.
Voici un extrait de logs concernant les informations de sessions :
Bloc de code |
---|
2004-10-31 11:57:21,000 esup1 SSTART student 17 vmath999 20 2004-10-31 11:57:52,812 esup1 SSTART UNKNOWN 7 null 21 2004-10-31 11:58:10,859 esup1 SSTOP UNKNOWN 7 null 21 2004-10-31 11:59:26,046 esup1 SSTART employee 18 vmathieu 22 2004-10-31 11:59:27,156 esup1 SSTOP student 17 vmath999 20 2004-10-31 11:59:28,375 esup1 SSTOP employee 18 vmathieu 22 |
Dans cet exemple, les logs marquées UNKNOWN concernent un login avec le compte admin, qui n'est pas déclaré dans LDAP (et n'a donc pas d'attribut eduPersonPrimaryAffiliation ).
Les différents champs sont séparés par une tabulation. La valeur de ces champ est la suivante :
- date au format iso8601
- identifiant logique de l'instance d'uPortal
- le code de l'évenement : SSTART pour un début de session, SSTOP pour une fin
- Le type de population
C'est la valeur de l'attribut attribute Type ( eduPersonPrimaryAffiliation par défaut), ou UNKNOWN si l'attribut n'est pas valué pour la personne
- l'uid uPortal
- le login
- un identifiant de session : c'est une valeur numérique, qui s'incrémente, et qui permet s'associer une fin de session au début de la session correspondante.
Indicateurs de service interne
Ce sont des indicateurs traçant les actions liées à des canaux esup-portail.
Il est activé dans statsContext.xml la propriété recordChannelTargeted .
Cette propriété indique à uportal de faire appel à la classe de gestion des statistiques à chaque action dans un canal.
Il est possible de limiter la production de logs à certains canaux spécifiques ; ceci est fait à l'aide de la propriété org.esupportail.portal.services.stats.channelFnames dans le fichier portal.properties .
Cette propriété contient la liste des 'fnames' des canaux à surveiller ; les 'fnames' sont séparés par le caractère virgule (,).
Exemple : ...channelFnames=esup-webdav,pers-esup-annu,esup-mailto, ... .
Dans la distribution esup-portail, valuer la propriété esup.stats.fnames .
Les événements comptabilisés sont le nombre d'actions (de clics) et le nombre d'accès à un service.
L'accès à un service est pris en compte lors d'une premiere action dans un canal, ou lors d'une action dans ce canal alors que l'action précédente n'était pas dans celui-ci.
Afin de limiter l'écriture de logs, ces informations statistiques ne sont pas éditées au fur et à mesure des évènements, mais comptabilisées et écrites lors de la fermeture de session de l'utilisateur.
Deux informations sont produites pour chaque canal lors de la fin de session d'un utilisateur : le nombre d'actions (clic de souris, validation de formulaire, ...) global dans ce canal, et le nombre de fois ou un accès au service a eu lieu.
La fin de session d'un utilisateur donne donc lieu à enregistrement de plusieurs informations liées aux canaux auquel il a pu accéder.
Voici un extrait de logs qui peuvent être enregistrés lors de la fin de session d'un utilisateur :
Bloc de code |
---|
2004-11-10 15:53:59,437 esup1 SSTOP employee 20 user0003 6 2004-11-10 15:53:59,438 esup1 CTARG employee 20 user0003 pers-esup-annu 2 10 2004-11-10 15:53:59,438 esup1 CTARG employee 20 user0003 esup-webdav 1 25 |
Le format est similaire aux logs précédentes. Le code d'évènement est CTARG (Channel TARGetetd). On retrouve le fname du canal concerné, le nombre d'accès au canal et le nombre d'actions dans le canal pour la session de l'utilisateur.
Indicateurs d'accès aux services externes
Il s'agit ici de tracer l'accès à des services externes au portail, comme le webmail, le robot de listes sympa, ...
Pour celà, il faut paramétrer le canal faisant appel au service externe afin que cet appel se fasse via la servlet /ExternalURLStats s'exécutant dans le contexte uportal.
Par exemple, pour le canal webmail, remplacer dans le fichier de configuration CImap.xml la chaine
urlWebmail="http://webmail.univ.fr/imp/mailbox.php?mailbox=%m"
par
urlWebmail="/ExternalURLStats?fname=webmail&service=http://webmail.univ.fr/imp/mailbox.php?mailbox=%m"
Voici un extrait du fichier de statistiques, lorsqu'un utilisateur accède au webmail depuis le canal imap :
Bloc de code |
---|
2004-11-10 15:50:49,100 esup1 CCALL_EXT employee 20 user0003 webmail 1 |
Le code d'évenement est CCALL_EXT (Channel CALL EXTernal).
Le format est identique à celui des services internes : on obtient le fname de l'application externe (ici webmail), et le nombre d'accès ; ce nombre est toujours égal à 1, l'enregistrement étant fait au fil de l'eau et non en fin de session.