Monitorar a execução do cron do Moodle

Monitorar a execução do cron do Moodle

por Lino Vaz Moniz -
Número de respostas: 0

Uma estratégia de analise da performance do Moodle consiste em monitorar o tempo preciso que o cron do Moodle leva para ser executado e também quantas vezes está sendo executado. 

Uma forma rápida de monitorar isso, é hacker o código do Moodle  inserindo registro de log sobre o momento que cron é chamado e o momento que o cron é encerrado.   Para efetuar isso, siga os seguintes passos:

1) Abra o arquivo cronlib.php

Localize e abra o seguinte arquivo

MOODLE_INSTALL_DIR/lib/cronlib.php


2) Edite a função cron_run() 

Localize a função function cron_run()  essa função fica aproximadamente na linha 35 a 519

function cron_run() {
    global $DB, $CFG, $OUTPUT;
    .......
}

Adicione no inicio da função depois do código  global $DB, $CFG, $OUTPUT; ,o seguinte código:

$cromid=time();
 $cron_id="cron_id_".$cromid;
add_to_log(1, 'monitorcron', 'cron_start', $cron_id, '');
Esse código registra log assim que a função for chamada


No final da função que fica aproximadamente na linha 519, antes de fechar a função adicione esse código:

 $diffcron=time()-$cromid;
  add_to_log(1, 'monitorcron', 'cron_end',  $cron_id, $diffcron);

Esse trecho registra o encerramento do cron, usando a mesma chave do registro de log que iniciou o cron. 

Veja a função com com os códigos inseridos:

function cron_run() {
    global $DB, $CFG, $OUTPUT;
//código adicionado. registrar log de inicio 
$cromid=time();
 $cron_id="cron_id_".$cromid;
add_to_log(1, 'monitorcron', 'cron_start', $cron_id, '');

//código da lógica da função
 .......


//código adicionado. Registra log do fim da execução
$diffcron=time()-$cromid;
  add_to_log(1, 'monitorcron', 'cron_end',  $cron_id, $diffcron);
}

Salve as alterações feitas no arquivo


3) Consultor log com SQL

Para rastrear o log do cron, execute o seguinte comando SQL:


SELECT id, time,action, url AS cronid, info AS duration FROM mdl_log WHERE module='monitorcron'


Esse hacker pode não funcionar na verão 2.9 do Moodle uma vez que a função add_to_log foi descontinuado.