Mise en oeuvre des statistiques dans esup-portail

Ce document décrit comment sont activées les informations statistiques dans le moteur esup-portail


Vincent  MATHIEU 
Université Nancy 2

Dates de modification
Revision 1.0 10 janvier 2006
1. Généralités
2. Fonctionnement global
3. Indicateurs globaux
4. Indicateurs de service interne
5. Indicateurs d'accès aux services externes

1. Généralités

Ce document 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 a 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 :

<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) :

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.

2. 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).

3. 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 :

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 :

4. 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 :

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.

5. 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 :

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.