HDI: Monitoree la actividad de su aplicación 4D
Puede especificar el tipo de actividad que desea monitorizar
- Actividad delos datos 4D: operaciones que implican los datos 4D en sí mismos,
- Actividad dered: obtendrá la misma información que en el archivo 4DRequestsLog (*),
- Ejecución del lenguaje: obtendrá la misma información que en el archivo 4DDebugLog (*).
(*) No es necesario activar los archivos de registro correspondientes, por lo que no se utiliza espacio en el disco.
Comando START MONITORING ACTIVITY
El comando START MONITORING ACTIVITY toma como parámetros el umbral de duración y el tipo de operaciones a monitorizar . Para ello, se pueden utilizar las siguientes nuevas constantes para monitorizar:
- Activity operations: operaciones en los datos de 4D
- Activity network: operaciones de la actividad de red
- Activity language: operaciones de la ejecución del lenguaje
Comando de obtención de la actividad monitorizada
Cuando quiera obtener toda la actividad registrada, sólo tiene que llamar al nuevo Get Monitored Activity() ¡comando!
Devuelve una colección de objetos con la información pertinente que puede utilizar como desee (generar un archivo, mostrar una interfaz para el administrador, etc.).
Comando STOP MONITORING ACTIVITY
Cuando quiera dejar de grabar la actividad de su aplicación 4D o vaciar la memoria, sólo tiene que llamar al STOP MONITORING ACTIVITY comando.
ejemplo concreto
En la mayoría de los casos, su necesidad será
Cada 10 minutos, quiero comprobar si algunas operaciones han durado más de 10 segundos en mi 4D Server. Si es así, quiero enviar un correo electrónico al administrador (o tomar otra acción).
El siguiente es un código para hacer precisamente eso.
Método de inicio del servidor 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; "Monitor operations")
proceso de monitorización (a ejecutar en el servidor)
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
en el método de cierre del servidor
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