Bloc Utilisateurs en ligne

Re: Bloc Utilisateurs en ligne

par Pierre Bettens,
Nombre de réponses : 4
bonjour Gérald,

je venais poser la question… mais avant, je regarde si personne ne l'a posée avant moi et bim !

j'utilise telegraf-influxdb-grafana et je voulais que telegraf puisse obtenir le nombre de personnes connectées « facilement ». j'ai essayé en utilisant l'API de moodle mais sans succès (https://docs.moodle.org/38/en/Using_web_services). je trouve qu'il faut donner trop de droits pour obtenir cette simple informations… et je n'ai d'ailleurs pas trouvé comment faire. je me demandais alors s'il fallait que j'aille chercher l'info directement dans la bd.

vous confirmez que l'info « nombre de personnes connectées au temps t » n'est pas disponible et qu'il faut faire une requête sql pour obtenir le nombre pour t1-t2 ?

bien à vous
En réponse à Pierre Bettens

Re: Bloc Utilisateurs en ligne

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Bonjour,

Pour moi, cette information n'existe pas directement dans la base.

Il y a soit la table mdl_user que je l'utilise,
soit la table mdl_logstore_standard_log qui contient plus de détails sur les actions des utilisateurs.
Mais il faut sortir les infos par une requête.

C'est que je fait avec le cron tout les 1/4 d'heures
Et je remplis une table, dans une base à part, qui contient comme champs principaux : id / timestamp (fin du 1/4 h) / nb utilisateurs

A partir de là, je créé mes graphiques.

Et je pense qu'ils sont pas trop mauvais vu les courbes :

  • Au plus fort, on avait 3000 étudiants simultanément ( sur un total d'env 8000)
  • On voit bien la différence jours de semaine ouvrée / vacances / we
  • La forme même de la courbe est régulière : pic le matin, chute vers 12h30, nouveau pic, petite chute ver 15h30, nouveau pic et descente progressive ; et cela aussi bien le we que les jours ouvrés
Bruno
En réponse à Bruno Malaval

Re: Bloc Utilisateurs en ligne

par Gérald GENIAUT,
Bonsoir,

comme tu le dis Bruno, l'info n'existe pas, il faut la "calculer". Pour aider Pierre, voici ce que j'ai fais de mon côté.
Je me suis basé sur ta requête Bruno, via un script je génère un fichier texte avec le nb d'utilisateurs connectés. J'ai installer ce script ds un cron qui se lance toutes les 15minutes. Ensuite j'ai utilisé collectd et le plugin curl qui va lire la valeur dans le fichier et génère le rdd associé qui est envoyé à graphite. De là, via grafana je génère un graph à partir des données. C'est pas génial et pour le moment, ça marche pas, car j'arrive pas à bien configurer le plugin de collectd, mais je pense que je suis pas loin ^^

J'espère que ds une prochaine version de Moodle ces données seront accessibles directement via l'API, ce sera quand même mieux que les scripts dans des crons...

A++

Gérald
En réponse à Gérald GENIAUT

Re: Bloc Utilisateurs en ligne

par Pierre Bettens,
voilà, j'ai une solution avec telegraf/InfluxDB/Grafana qui me convient et qui est assez simple.
merci pour l'idée.

- http://namok.be/blog/?post/2020/06/07/monitoring-moodle-script-telegraf-et-dashboard-pour-grafana
- https://grafana.com/grafana/dashboards/12418
Moyenne des évaluations Utile (1)
En réponse à Pierre Bettens

Re: Bloc Utilisateurs en ligne

par Gérald GENIAUT,
Hello,

j'ai obtenu ce que je voulais, à savoir grapher l'équivalent de "Utilisateurs en Lignes"

Ma configuration collectd pour ceux que ça peut interesser :

Activation du module dbi : LoadPlugin dbi

puis : 

<Plugin dbi>
    <Query "num_of_moodleuser">
 Statement "SELECT COUNT(*) AS value FROM moodle.mdl_user WHERE deleted=0 and lastaccess > (UNIX_TIMESTAMP() - 300) and lastaccess < UNIX_TIMESTAMP();"


MinVersion 50000

Type "gauge"
InstancePrefix "Nb Users"
ValuesFrom "value"
Driver "mysql"
DriverOption "host" "localhost"
DriverOption "username" "moodleuser"
DriverOption "password" "moodlepassword"
DriverOption "dbname" "moodle"
SelectDB "moodle"
Query "num_of_moodleuser"

J'ai donc les utilisateurs "connectés" les 5 dernières minutes.

Merci à Bruno pour sa requête !

@bientôt

Gérald
Moyenne des évaluations Utile (3)