Project

General

Profile

Development #68316

Métrologie

Added by Benjamin Renard 5 months ago. Updated about 2 months ago.

Status:
Solution déployée
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
22 August 2022
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

Description

Je cherche à mettre en place de la métrologie sur l'activité d'Authentic. L'idée serait de pouvoir grapher par exemple le nombre d'utilisateurs connectés, le nombre de sessions actives, le nombre de demande connexions SSO traitées, le nombre d'utilisateurs enregistrés… Seriez-vous me dire si quelques choses existent déjà pour ce besoin ? À défaut, quel serait selon vous la bonne manière d'extraire ces métriques ?

Mon idée serait d'écrire (et partager) un agent pour telegraf et un dashboard pour Grafana. J'ajouterai certainement par la suite un plugin de check Icinga/Nagios pour alerter en cas de dépassant de certains seuils.

History

#1

Updated by Benjamin Dauvergne about 2 months ago

  • Status changed from Nouveau to Solution déployée

le nombre de demande connexions SSO traitées, le nombre d'utilisateurs enregistrés

Il y a des web-services qui servent des statistiques que tu pourrais réutiliser, ça n'est pas documenté mais tu peux regarder les tests1 pour voir comment ça s'utilise.

1 https://git.entrouvert.org/authentic.git/tree/tests/api/test_all.py#n2480

le nombre d'utilisateurs connectés, le nombre de sessions actives,

Il me semble que c'est quasi la même chose, mais on a rien pour ça, ça peut se faire simplement en faisant la requête suivante :

from django.contrib.sessions.models import Session
from django.utils.timezone import now

sessions_user_ids = [user_id for user_id in (session.get_decode().get('_auth_user_id') for session in Session.objects.filter(expire_date__gt=now())) if user_id]
sessions = len(sessions_user_ids)
user_connected = len(set(sessions_user_ids))

Also available in: Atom PDF