N°2261 - Log KPI not available in lnk window

This commit is contained in:
Eric
2019-10-11 15:56:32 +02:00
parent d1eb674314
commit 7b36852d7a
3 changed files with 36 additions and 11 deletions

View File

@@ -291,6 +291,10 @@ EOF
{ {
DBSearch::RecordQueryTrace(); DBSearch::RecordQueryTrace();
} }
if (class_exists('ExecutionKPI'))
{
ExecutionKPI::ReportStats();
}
} }
/** /**

View File

@@ -880,6 +880,14 @@ class Config
'source_of_value' => '', 'source_of_value' => '',
'show_in_conf_sample' => false, 'show_in_conf_sample' => false,
), ),
'log_kpi_slow_queries' => array(
'type' => 'float',
'description' => 'Time in seconds to allow KPI logs (0 for all)',
'default' => 0,
'value' => 0,
'source_of_value' => '',
'show_in_conf_sample' => false,
),
'log_kpi_memory' => array( 'log_kpi_memory' => array(
'type' => 'integer', 'type' => 'integer',
'description' => 'Level of logging for troubleshooting memory limit issues', 'description' => 'Level of logging for troubleshooting memory limit issues',

View File

@@ -200,15 +200,12 @@ class ExecutionKPI
self::Report("<p><a href=\"#end-".md5($sExecId)."\">Next page stats</a></p>"); self::Report("<p><a href=\"#end-".md5($sExecId)."\">Next page stats</a></p>");
$fSlowQueries = MetaModel::GetConfig()->Get('log_kpi_slow_queries');
// Report operation details // Report operation details
foreach (self::$m_aStats as $sOperation => $aOpStats) foreach (self::$m_aStats as $sOperation => $aOpStats)
{ {
$sOperationHtml = '<a name="'.md5($sExecId.$sOperation).'">'.$sOperation.'</a>'; $bDisplayHeader = true;
self::Report("<h4>$sOperationHtml</h4>");
self::Report("<table border=\"1\" style=\"$sTableStyle\">");
self::Report("<thead>");
self::Report(" <th>Operation details (+ blame caller if log_kpi_duration = 2)</th><th>Count</th><th>Duration</th><th>Min</th><th>Max</th>");
self::Report("</thead>");
foreach ($aOpStats as $sArguments => $aEvents) foreach ($aOpStats as $sArguments => $aEvents)
{ {
$sHtmlArguments = '<a name="'.md5($sExecId.$sArguments).'"><div style="white-space: pre-wrap;">'.$sArguments.'</div></a>'; $sHtmlArguments = '<a name="'.md5($sExecId.$sArguments).'"><div style="white-space: pre-wrap;">'.$sArguments.'</div></a>';
@@ -248,12 +245,28 @@ class ExecutionKPI
$sTotalInter = round($fTotalInter, 3); $sTotalInter = round($fTotalInter, 3);
$sMinInter = round($fMinInter, 3); $sMinInter = round($fMinInter, 3);
$sMaxInter = round($fMaxInter, 3); $sMaxInter = round($fMaxInter, 3);
self::Report("<tr>"); if (($fTotalInter >= $fSlowQueries))
self::Report(" <td>$sHtmlArguments</td><td>$iCountInter</td><td>$sTotalInter</td><td>$sMinInter</td><td>$sMaxInter</td>"); {
self::Report("</tr>"); if ($bDisplayHeader)
{
$sOperationHtml = '<a name="'.md5($sExecId.$sOperation).'">'.$sOperation.'</a>';
self::Report("<h4>$sOperationHtml</h4>");
self::Report("<table border=\"1\" style=\"$sTableStyle\">");
self::Report("<thead>");
self::Report(" <th>Operation details (+ blame caller if log_kpi_duration = 2)</th><th>Count</th><th>Duration</th><th>Min</th><th>Max</th>");
self::Report("</thead>");
$bDisplayHeader = false;
}
self::Report("<tr>");
self::Report(" <td>$sHtmlArguments</td><td>$iCountInter</td><td>$sTotalInter</td><td>$sMinInter</td><td>$sMaxInter</td>");
self::Report("</tr>");
}
}
if (!$bDisplayHeader)
{
self::Report("</table>");
self::Report("<p><a href=\"#".md5($sExecId)."\">Back to page stats</a></p>");
} }
self::Report("</table>");
self::Report("<p><a href=\"#".md5($sExecId)."\">Back to page stats</a></p>");
} }
self::Report('<a name="end-'.md5($sExecId).'">&nbsp;</a>'); self::Report('<a name="end-'.md5($sExecId).'">&nbsp;</a>');
} }