HDI : surveillez l’activité de votre application 4D
Vous pouvez spécifier le type d’activité que vous souhaitez surveiller :
- Activité des données 4D: opérations impliquant les données 4D elles-mêmes,
- Activité réseau: vous obtiendrez les mêmes informations que dans le fichier 4DRequestsLog (*),
- Exécution du langage: vous obtiendrez les mêmes informations que dans le fichier 4DDebugLog (*).
(*) Il n’est pas nécessaire d’activer les fichiers log correspondants, donc aucun espace sur le disque n’est utilisé.
Commande START MONITORING ACTIVITY
La commande START MONITORING ACTIVITY prend comme paramètres le seuil de durée et le type d’opérations à surveiller . Pour cela, les nouvelles constantes suivantes peuvent être utilisées pour surveiller :
- Activity operationsOpérations dans les données 4D
- Activity networkOpérations de l’activité réseau
- Activity languageOpérations de l’exécution du langage
Commande Get Monitored Activity
Lorsque vous voulez obtenir toute l’activité enregistrée, il suffit d’appeler la nouvelle Get Monitored Activity() commande !
Elle renvoie une collection d’objets avec les informations pertinentes que vous pouvez utiliser comme vous le souhaitez (générer un fichier, afficher une interface pour l’administrateur, etc.)
Commande STOP MONITORING ACTIVITY
Lorsque vous voulez arrêter l’enregistrement de l’activité de votre application 4D ou vider la mémoire, il suffit d’appeler la commande STOP MONITORING ACTIVITY commande.
EXEMPLE concret
Dans la plupart des cas, votre besoin sera le suivant :
Toutes les 10 minutes, je veux vérifier si certaines opérations ont duré plus de 10 secondes sur mon serveur 4D. Si oui, je veux envoyer un email à l’administrateur (ou prendre une autre action).
Voici du code pour faire cela.
Méthode de démarrage du serveur ON
C_LONGINT($monitorProcessId)
STOP MONITORING ACTIVITY
// Detect 4D data operations which lasted more than 10s
START MONITORING ACTIVITY (10 ;Activity operations)
//Run a monitoring process
$monitorProcessId :=New process("monitorOperations";0 ; "Surveiller les opérations")
processus de surveillance (à exécuter sur le serveur)
C_COLLECTION($activities)
While (Not(Process aborted))
// Inspect 4D data activity every 10 minutes
DELAY PROCESS (Current process;36000)
// Get the long operations and exclude backup operations
$activities :=Get Monitored Activity().query("Not(activityData.message IN :1)" ;New collection("@backup@"))
If ($activities.length#0)
// Send an email to the administrator with $activities details
// Empty the memory and restart the monitoring
STOP MONITORING ACTIVITY
START MONITORING ACTIVITY (10 ;Activity operations)
End if
End while
sur la méthode d’arrêt du serveur
C_COLLECTION($activities)
$activities :=Get Monitored Activity().query("Not(activityData.message IN :1)" ;New collection("@backup@"))
If ($activities.length#0)
// Send an email to the administrator with $activities details
End if