Example #1
0
<?php

$module_id = "perfmon";
$RIGHT = $APPLICATION->GetGroupRight($module_id);
if ($RIGHT >= "R") {
    IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/options.php");
    IncludeModuleLangFile(__FILE__);
    $arAllOptions = array(array("max_display_url", GetMessage("PERFMON_OPTIONS_MAX_DISPLAY_URL"), array("text", 6)), array("warning_log", GetMessage("PERFMON_OPTIONS_WARNING_LOG"), array("checkbox")), array("cache_log", GetMessage("PERFMON_OPTIONS_CACHE_LOG"), array("checkbox")), array("sql_log", GetMessage("PERFMON_OPTIONS_SQL_LOG"), array("checkbox")), array("sql_backtrace", GetMessage("PERFMON_OPTIONS_SQL_BACKTRACE"), array("checkbox")), array("slow_sql_log", GetMessage("PERFMON_OPTIONS_SLOW_SQL_LOG"), array("checkbox"), GetMessage("PERFMON_OPTIONS_SLOW_SQL_NOTE")), array("slow_sql_time", GetMessage("PERFMON_OPTIONS_SLOW_SQL_TIME"), array("text", 6)));
    $aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("MAIN_TAB_SET"), "ICON" => "perfmon_settings", "TITLE" => GetMessage("MAIN_TAB_TITLE_SET")), array("DIV" => "edit2", "TAB" => GetMessage("MAIN_TAB_RIGHTS"), "ICON" => "perfmon_settings", "TITLE" => GetMessage("MAIN_TAB_TITLE_RIGHTS")));
    $tabControl = new CAdminTabControl("tabControl", $aTabs);
    CModule::IncludeModule($module_id);
    if ($REQUEST_METHOD == "POST" && strlen($Update . $Apply . $RestoreDefaults) > 0 && $RIGHT == "W" && check_bitrix_sessid()) {
        require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/perfmon/prolog.php";
        if ($_REQUEST["clear_data"] === "y") {
            CPerfomanceComponent::Clear();
            CPerfomanceSQL::Clear();
            CPerfomanceHit::Clear();
            CPerfomanceError::Clear();
            CPerfomanceCache::Clear();
        }
        if (array_key_exists("ACTIVE", $_REQUEST)) {
            $ACTIVE = intval($_REQUEST["ACTIVE"]);
            CPerfomanceKeeper::SetActive($ACTIVE > 0, time() + $ACTIVE);
        }
        if (strlen($RestoreDefaults) > 0) {
            COption::RemoveOption("perfmon");
        } else {
            foreach ($arAllOptions as $arOption) {
                $name = $arOption[0];
                $val = $_REQUEST[$name];
                if ($arOption[2][0] == "checkbox" && $val != "Y") {
Example #2
0
foreach ($arFilter as $key => $value) {
    if (!$value) {
        unset($arFilter[$key]);
    }
}
$lAdmin->AddHeaders(array(array("id" => "ID", "content" => GetMessage("PERFMON_COMP_ID"), "sort" => "ID", "align" => "right"), array("id" => "HIT_ID", "content" => GetMessage("PERFMON_COMP_HIT_ID"), "sort" => "HIT_ID", "align" => "right"), array("id" => "NN", "content" => GetMessage("PERFMON_COMP_NN"), "sort" => "NN", "align" => "right", "default" => true), array("id" => "COMPONENT_NAME", "content" => GetMessage("PERFMON_COMP_COMPONENT_NAME"), "sort" => "COMPONENT_NAME", "default" => true), array("id" => "COMPONENT_TIME", "content" => GetMessage("PERFMON_COMP_COMPONENT_TIME"), "sort" => "COMPONENT_TIME", "align" => "right", "default" => true), array("id" => "QUERIES", "content" => GetMessage("PERFMON_COMP_QUERIES"), "sort" => "QUERIES", "align" => "right", "default" => true), array("id" => "QUERIES_TIME", "content" => GetMessage("PERFMON_COMP_QUERIES_TIME"), "sort" => "QUERIES_TIME", "align" => "right", "default" => true), array("id" => "CACHE_TYPE", "content" => GetMessage("PERFMON_COMP_CACHE_TYPE"), "sort" => "CACHE_TYPE", "align" => "right", "default" => true), array("id" => "CACHE_SIZE", "content" => GetMessage("PERFMON_COMP_CACHE_SIZE"), "sort" => "CACHE_SIZE", "align" => "right"), array("id" => "CACHE_COUNT", "content" => GetMessage("PERFMON_COMP_CACHE_COUNT"), "sort" => "CACHE_COUNT", "align" => "right"), array("id" => "CACHE_COUNT_R", "content" => GetMessage("PERFMON_COMP_CACHE_COUNT_R"), "sort" => "CACHE_COUNT_R", "align" => "right"), array("id" => "CACHE_COUNT_W", "content" => GetMessage("PERFMON_COMP_CACHE_COUNT_W"), "sort" => "CACHE_COUNT_W", "align" => "right"), array("id" => "CACHE_COUNT_C", "content" => GetMessage("PERFMON_COMP_CACHE_COUNT_C"), "sort" => "CACHE_COUNT_C", "align" => "right")));
$arSelectedFields = $lAdmin->GetVisibleHeaderColumns();
if (!is_array($arSelectedFields) || count($arSelectedFields) < 1) {
    $arSelectedFields = array("ID", "HIT_ID", "NN", "CACHE_TYPE", "COMPONENT_NAME", "COMPONENT_TIME", "QUERIES", "QUERIES_TIME");
}
$arSelectedFields[] = "ID";
$arNumCols = array("CACHE_SIZE" => 0, "COMPONENT_TIME" => 4, "QUERIES" => 0, "QUERIES_TIME" => 4, "CACHE_COUNT" => 0, "CACHE_COUNT_R" => 0, "CACHE_COUNT_W" => 0, "CACHE_COUNT_C" => 0);
if (isset($arFilter["CACHE_TYPE"]) && $arFilter["CACHE_TYPE"] == "N") {
    $arFilter["CACHE_TYPE"] = array(false, "N");
}
$cData = new CPerfomanceComponent();
$rsData = $cData->GetList(array($by => $order), $arFilter, false, false, $arSelectedFields);
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("PERFMON_COMP_PAGE")));
$max_display_url = COption::GetOptionInt("perfmon", "max_display_url");
while ($arRes = $rsData->NavNext(true, "f_")) {
    $row =& $lAdmin->AddRow($f_NAME, $arRes);
    foreach ($arNumCols as $column_name => $precision) {
        if ($_REQUEST["mode"] == "excel") {
            $row->AddViewField($column_name, number_format($arRes[$column_name], $precision, ".", ""));
        } else {
            $row->AddViewField($column_name, str_replace(" ", "&nbsp;", number_format($arRes[$column_name], $precision, ".", " ")));
        }
    }
    if ($f_QUERIES > 0) {
Example #3
0
$arNumCols = array(
	"CACHE_SIZE" => 0,
	"COMPONENT_TIME" => 4,
	"QUERIES" => 0,
	"QUERIES_TIME" => 4,
	"CACHE_COUNT" => 0,
	"CACHE_COUNT_R" => 0,
	"CACHE_COUNT_W" => 0,
	"CACHE_COUNT_C" => 0,
);

if (isset($arFilter["CACHE_TYPE"]) && $arFilter["CACHE_TYPE"] == "N")
	$arFilter["CACHE_TYPE"] = array(false, "N");

$cData = new CPerfomanceComponent;
$rsData = $cData->GetList(
	array($by => $order),
	$arFilter,
	false,
	array("nPageSize" => CAdminResult::GetNavSize($sTableID)),
	$arSelectedFields
);

$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("PERFMON_COMP_PAGE")));

$max_display_url = COption::GetOptionInt("perfmon", "max_display_url");
while ($arRes = $rsData->NavNext(true, "f_"))
{
                $rsHit = CPerfomanceComponent::GetList(array("COUNT" => "DESC"), array('=HIT_SCRIPT_NAME' => $ar["SCRIPT_NAME"], '=HIT_IS_ADMIN' => 'N', '=HIT_CACHE_TYPE' => 'Y', '>QUERIES' => 0), true, array(), array('COMPONENT_NAME', 'COUNT'));
                while ($arHit = $rsHit->Fetch()) {
                    if ($arHit["COUNT"] >= $ar["COUNT"]) {
                        $arComps[] = htmlspecialcharsbx($arHit["COMPONENT_NAME"]);
                    }
                }
            }
            if (count($arComps)) {
                $err_count++;
                $sHint .= '<tr><td nowrap><b>' . GetMessage("PERFMON_PANEL_DEV_WARN2") . ' ' . GetMessage("PERFMON_PANEL_DEV_WARN2_DESC") . '</b> <ul style="font-size:100%">';
                foreach ($arComps as $component_name) {
                    $sHint .= '<li><a href="perfmon_comp_list.php?lang=' . LANGUAGE_ID . '&amp;set_filter=Y&amp;find_hit_script_name=' . urlencode(htmlspecialcharsbx($ar["SCRIPT_NAME"])) . '&amp;find_component_name=' . urlencode($component_name) . '">' . $component_name . '</a></li>';
                }
                $sHint .= '</ul></td></tr>';
            }
            $rsHit = CPerfomanceComponent::GetList(array("COUNT" => "DESC"), array('=HIT_SCRIPT_NAME' => $ar["SCRIPT_NAME"], '=HIT_IS_ADMIN' => 'N', '=HIT_CACHE_TYPE' => 'Y', '>CACHE_SIZE' => 1024 * 1024), true, array(), array('COMPONENT_NAME', 'MAX_CACHE_SIZE'));
            $bFirst = true;
            while ($arHit = $rsHit->Fetch()) {
                if ($bFirst) {
                    $err_count++;
                    $sHint .= '<tr><td nowrap><b>' . GetMessage("PERFMON_PANEL_DEV_WARN3") . '</b> ' . GetMessage("PERFMON_PANEL_DEV_WARN3_DESC") . '<ul style="font-size:100%">';
                    $bFirst = false;
                }
                $sHint .= '<li>' . CFile::FormatSize($arHit["MAX_CACHE_SIZE"], 0) . ' <a href="perfmon_comp_list.php?lang=' . LANGUAGE_ID . '&amp;set_filter=Y&amp;find_hit_script_name=' . urlencode(htmlspecialcharsbx($ar["SCRIPT_NAME"])) . '&amp;find_component_name=' . urlencode(htmlspecialcharsbx($arHit["COMPONENT_NAME"])) . '">' . htmlspecialcharsbx($arHit["COMPONENT_NAME"]) . '</a></li>';
            }
            if (!$bFirst) {
                $sHint .= '</ul></td></tr>';
            }
            ?>
					<?php 
            if ($err_count) {