Supervision de Squash TM
Taille du segment de la mémoire de la JVM
La taille du segment de mémoire de la JVM, différent de la mémoire allouée à la JVM, est configurable dans le fichier startup via la propriété suivante :
Fichier startup.sh :
JAVA_ARGS="-Xms128m -Xmx1024m -server"
Fichier startup.bat :
set JAVA_ARGS=-Xms128m -Xmx1024m %SERVER_MODE%
Xms
: taille initiale et minimale
Xmx
: taille maximale
Il est recommandé de configurer la taille maximale du segment de mémoire (Xmx
) sur 2 Go pour un dimensionnement standard de Squash TM. La mémoire allouée avec ce paramètre ne doit pas excéder celle de la JVM.
En cas de forte volumétrie de données cette valeur peut être augmentée pour garantir les performances de l'application lors des traitements de masse (recherche, exports, génération de rapports).
Focus
S'assurer avant de modifier la taille du segment de la mémoire de la JVM, que la machine sur laquelle est installée l'application dispose d'une RAM suffisante.
Gestion des logs
Les logs de Squash TM sont téléchargeables depuis l'administration de l'application ou depuis le répertoire logs sur le serveur. Les logs du jour sont dans le fichier squash-tm.log et les logs des jours précédents sont suffixés par leur date (exemple : squash-tm.log.20210527).
Niveau de logs
La rotation des logs applicatifs de Squash TM se configure dans le fichier conf/log4j2.xml.
Dans Squash TM, il existe trois niveaux de logs utiles : "info", "debug", "trace". Le niveau "trace" est le plus précis des trois mais aussi le plus verbeux.
Pour mettre les logs de Squash TM au niveau "debug", il faut :
- Arrêter Squash TM
- Modifier dans le fichier log4j2.xml la valeur "info" par "debug" à la ligne :
<Root level="info">
- Redémarrer Squash TM
Après avoir effectué le test souhaité revenir au niveau "info" pour ne pas surcharger le serveur car les logs sont très volumineux au niveau "debug".
Loggers Squash TM
Le fichier log4j2.xml contient déjà un certain nombre de loggers. Il est d'ailleurs possible de modifier leur niveau de log individuellement en modifiant la valeur de la propriété level.
Voici une liste non exhaustive de loggers supplémentaires qu'il est possible d'ajouter à la suite de la dernière balise Logger du fichier :
Pour avoir des logs plus précis pour le bugtracker Jira Server :
<Logger name="org.squashtest.tm.plugin.bugtracker.jirarest" level="trace" additivity="false" >
<AppenderRef ref="Console"/>
<AppenderRef ref="Daily_log"/>
</Logger>
Pour augmenter le niveau de logs du plugin Git Connector :
<Logger name="org.squashtest.tm.plugin.scm.git.internal.GitClientImpl" level="trace" additivity="false" >
<AppenderRef ref="Console"/>
<AppenderRef ref="Daily_log"/>
</Logger>
Il est nécessaire de redémarrer Squash TM pour que les modifications réalisées sur le fichier soient prises en compte.
Logs Xsquash
Pour Xsquash Cloud, il est possible de télécharger les logs directement depuis l'administration Jira Cloud.
Pour Xsquash sur Jira Server, les logs du plugin sont confondus dans les logs de Jira.
Il est possible d'ajouter un logger en mode "error" pour le package "org.squashtest.plugin.jira.Xsquash" pour activer une visualisation plus précise des erreurs Xsquash dans les logs Jira.
Voici les étapes à suivre pour ajouter ce logger :
- Sur Jira Server, aller dans Administration > Système.
- Aller dans la partie "Connexion et création de profil".
- Dans "Loggers par défaut", cliquer sur " Configurer le niveau de journalisation pour un autre paquet".
- Renseigner le package "org.squashtest.plugin.jira.Xsquash" et un niveau de journalisation "error".
Surveillance (monitoring)
Serveurs
Comme pour toute autre application, les serveurs hébergeant Squash TM et sa base de données devraient être surveillés :
- espace disque : configurer une alerte lorsque l'espace disque atteint un certain seuil.
- CPU : configurer une alerte lorsque l'utilisation du CPU reste élevée pendant une période trop longue.
- RAM : idem.
- réseau (optionnellement s'il y a un risque que le réseau soit un goulot d'étranglement) : idem.
Squash TM
Squash TM est une application Spring Boot, donc votre application de surveillance peut utiliser les points de terminaison (endpoints) web Actuators pour l'interroger.
Par exemple :
- Pour utiliser le point de terminaison
actuator/health
:
ajoutez les lignes suivantes dans le fichier conf/squash.tm.cfg.properties :le point de terminaison peut alors être interrogé :management.endpoints.enabled-by-default = true management.endpoints.web.exposure.include = health
>>> curl -s -u "<login>:<password>" https://<host>:<port>/squash/actuator/health | jq { "status": "UP" }
- Pour utiliser également le point de terminaison
actuator/metrics
:
modifier la deuxième ligne ci-dessus dans le fichier conf/squash.tm.cfg.properties :le point de terminaison peut alors être interrogé :management.endpoints.web.exposure.include = health,metrics
(Utiliser>>> curl -s -u "<login>:<password>" https://<host>:<port>/squash/actuator/metrics/tomcat.sessions.active.current | jq { "name": "tomcat.sessions.active.current", "description": null, "baseUnit": "sessions", "measurements": [ { "statistic": "VALUE", "value": 4 } ], "availableTags": [] }
curl -s -u "<login>:<password>" https://<host>:<port>/squash/actuator/metrics
pour obtenir la liste des métriques disponibles.)
Base de données
De nombreux outils peuvent être utilisés pour surveiller la base de données PostgreSQL ou MariaDB (la documentation de PostgreSQL liste certains d'entre eux).