HDI: Sledování činnosti aplikace 4D
Můžete určit druh činnosti, kterou chcete sledovat:
- 4D data: operace týkající se samotných 4D dat,
- síťová aktivita: získáte stejné informace jako v souboru 4DRequestsLog (*),
- provádění jazyka: získáte stejné informace jako v souboru 4DDebugLog (*).
(*) Příslušné soubory protokolů není třeba aktivovat, takže na disku nezabírají žádné místo.
Příkaz START MONITORING ACTIVITY (Spustit monitorování činnosti)
Na adrese START MONITORING ACTIVITY Příkaz přebírá jako parametry prahovou hodnotu trvání a typ operací, které se mají sledovat . K tomu lze použít následující nové konstanty pro monitorování:
- Activity operations: operace v datech 4D
- Activity network: operace síťové aktivity
- Activity language: operace provádění jazyka
Příkaz Get Monitored Activity (Získat monitorovanou činnost)
Když chcete získat všechny zaznamenané činnosti, stačí zavolat nový příkaz Get Monitored Activity() příkaz!
Vrátí kolekci objektů s příslušnými informacemi, které můžete libovolně použít (vygenerovat soubor, zobrazit rozhraní pro správce atd.).
Příkaz STOP MONITOROVANÉ AKTIVITĚ
Když chcete ukončit nahrávání činnosti aplikace 4D nebo vyprázdnit paměť, stačí zavolat příkaz STOP MONITORING ACTIVITY příkaz.
konkrétní PŘÍKLAD
Ve většině případů bude vaše potřeba následující:
Každých 10 minut chci zkontrolovat, zda některé operace na mém serveru 4D trvaly déle než 10 sekund. Pokud ano, chci odeslat e-mail správci (nebo provést jinou akci).
Následující kód slouží právě k tomuto účelu.
Metoda ON při spuštění serveru
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; "Sledování operací")
monitorovací proces (který má být spuštěn na serveru)
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
při metodě vypnutí serveru
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