Ce guide décrit l'installation de l'outil tool_moodleload sur le site Moodle à tester, la préparation du compte technique utilisé par le moteur MoodleLoad et le raccordement au front MoodleLoad.
Le composant est en maturité alpha. Ne l'installez pas sur un site de production : il expose des métriques système, autorise des tests de charge et crée un compte technique doté de droits étendus.
/proc lisible, pour les mesures CPU et mémoire. Sous Windows, seules certaines mesures sont disponibles (pas de charge moyenne).moodleload dans le répertoire admin/tool de votre installation Moodle (chemin final : admin/tool/moodleload).Les étapes 3 et 4 ne sont pas faites par le plugin : sans elles, le jeton du compte technique est refusé.
L'installation prépare automatiquement le compte utilisé par le moteur MoodleLoad. Elle est rejouée à la mise à jour sur les sites installés avant cette fonction, et elle peut être relancée sans risque.
| Élément | Détail |
|---|---|
| Service web | Moodle Load Monitor (nom abrégé moodleload_monitor), réservé à des utilisateurs autorisés, avec dépôt de fichiers activé et téléchargements désactivés. |
| Utilisateur | moodleload (« Moodle Load Test Engine »), authentification manuelle, mot de passe aléatoire inconnu, adresse fictive moodleload@moodleload.invalid, courriels désactivés. Un compte moodleload préexistant est conservé. |
| Autorisation | Le compte est ajouté aux utilisateurs autorisés du service. |
| Rôles | Rôle Gestionnaire au niveau système (le moteur gère cours, catégories et utilisateurs), et un petit rôle dédié Moodle Load web service (nom abrégé moodleloadws) qui porte uniquement webservice/rest:use. Sans lui, le jeton serait refusé pour un utilisateur qui n'est pas administrateur du site. |
| Jeton | Un jeton permanent sur le service, valable 3 mois. Il n'est affiché nulle part. |
| Catégorie de cours | Une catégorie de premier niveau Tests de charge (Load Tests), nommée selon la langue du site. Elle sert de destination par défaut aux cours de test restaurés. |
Le compte moodleload dispose de droits de gestion : ne lui attribuez pas d'autre rôle et surveillez son usage.
Le jeton est lu dans Administration du site / Serveur / Services web / Gérer les jetons, sur la ligne de l'utilisateur moodleload et du service Moodle Load Monitor. Il est à transmettre au front MoodleLoad, jamais à publier ni à envoyer par courriel non chiffré.
Le jeton n'est pas renouvelé automatiquement. Au bout de trois mois, créez-en un nouveau pour le même utilisateur et le même service, et mettez à jour le front.
| Capacité | Contexte | Défaut | Rôle |
|---|---|---|---|
tool/moodleload:readmetrics | Système | Gestionnaire | Lire les métriques de l'hôte (tableau de bord et web service tool_moodleload_get_metrics) |
tool/moodleload:setuptests | Système | Gestionnaire | Préparer le matériel de test (dépôt de fichiers, restauration de cours, création d'utilisateurs en masse) |
La vue d'état du moteur (view.php) est réservée aux administrateurs du site (moodle/site:config).
Chemin : Administration du site / Plugins / Outils d'administration / Réglages Moodle Load Monitor.
cache_ttl, 5 secondes par défaut) : durée pendant laquelle la mesure CPU est conservée dans le cache universel de Moodle. Une valeur plus courte donne des écarts plus précis mais lit /proc plus souvent.
MoodleLoad ne lance un test sur ce site qu'après une poignée de main signée avec le plugin (service web tool_moodleload_authorize_load). Ces réglages limitent l'exposition du site :
allowload) : décoché, MoodleLoad refuse tout nouveau test et arrête ceux en cours à leur prochain contrôle.maxload) : nombre maximal de sessions utilisateur simultanées. 0 pour aucune limite.allowedhours) : plages horaires, en heure du serveur, par exemple 20-6 ou 12-14,20-23. Une plage qui finit avant son début passe minuit. Vide pour toute heure.frontendurl) : URL de base sans barre oblique finale, par exemple https://load.example.com.token) : jeton fourni par MoodleLoad pour interroger l'état du moteur et des jobs. Il doit être généré pour le service Moodle Load Monitoring API du front : un jeton du service Moodle Load Collector API est refusé. Ne le confondez pas avec le jeton du compte moodleload de ce site.timeout, 10 secondes par défaut) : temps d'attente de la réponse du front.
À renseigner seulement si le front est lui-même protégé par une authentification HTTP (une préproduction derrière un .htpasswd, par exemple). Laissez l'utilisateur vide sinon.
Si le front est sur un réseau interne, autorisez son hôte et son port dans les réglages de sécurité de Moodle (curlsecurityblockedhosts et curlsecurityallowedport).
moodleload, appelez la fonction de mesure. La réponse contient l'horodatage, le CPU, la mémoire et la charge moyenne.GET /webservice/rest/server.php?wstoken=<JETON>&wsfunction=tool_moodleload_get_metrics&moodlewsrestformat=json
| Symptôme | Cause probable |
|---|---|
| Jeton refusé | Web services ou REST non activés ; jeton expiré (3 mois) ; utilisateur moodleload non autorisé sur le service. |
| Réponse CPU à −1 | Premier appel : rappelez après quelques secondes. |
| Pas de mesures mémoire / CPU | Hôte non Linux ou /proc illisible. |
| Vue d'état : HTTP 401 | Authentification HTTP du front : vérifiez utilisateur, mot de passe et méthode. |
| Vue d'état : hôte bloqué | Front sur réseau interne : ajustez curlsecurityblockedhosts et curlsecurityallowedport. |
| Vue d'état : jeton refusé par le front | Jeton généré pour le mauvais service du front (Collector au lieu de Monitoring API). |
| Fonctions de test absentes après une mise à jour | Visitez les notifications d'administration (la définition du service est mise à jour), puis purgez les caches. |
Après chaque mise à jour du dossier, passez par les notifications d'administration puis purgez les caches. Les mises à jour qui modifient la définition du service (ajout de fonctions, dépôt de fichiers) l'exigent.
À la désinstallation, le plugin retire les jetons, l'autorisation du service, les affectations de rôles, le rôle dédié, la catégorie Tests de charge si elle est vide, les fichiers de test déposés et le compte moodleload s'il l'a lui-même créé. Un compte préexistant n'est pas supprimé : seul ce que le plugin lui a ajouté est retiré.
Revenir à l'index du composant - Revenir à l'index des plugins - Revenir au catalogue