| Current Path : /var/www/element/data/www/greenpr.ru/bitrix/modules/perfmon/admin/ |
| Current File : /var/www/element/data/www/greenpr.ru/bitrix/modules/perfmon/admin/perfmon_hit_grouped.php |
<?
define("ADMIN_MODULE_NAME", "perfmon");
define("PERFMON_STOP", true);
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/perfmon/include.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/perfmon/prolog.php");
IncludeModuleLangFile(__FILE__);
$RIGHT = $APPLICATION->GetGroupRight("perfmon");
if($RIGHT=="D")
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
$sTableID = "tbl_perfmon_hit_grouped";
$oSort = new CAdminSorting($sTableID, "SUM_PAGE_TIME", "desc");
$lAdmin = new CAdminList($sTableID, $oSort);
$FilterArr = Array(
// "find",
// "find_type",
// "find_name",
// "find_site_id",
"find_is_admin",
);
$lAdmin->InitFilter($FilterArr);
$arFilter = Array(
// "TAG" => ($find!="" && $find_type == "name"? $find: $find_name),
// "SITE_ID" => ($find_site_id=="NOT_REF"? "": $find_site_id),
"=IS_ADMIN" => $find_is_admin,
);
foreach($arFilter as $key=>$value)
if(!$value)
unset($arFilter[$key]);
$arHeaders = array(
array(
"id" => "IS_ADMIN",
"content" => GetMessage("PERFMON_HIT_IS_ADMIN"),
"sort" => "IS_ADMIN",
),
array(
"id" => "REQUEST_METHOD",
"content" => GetMessage("PERFMON_HIT_REQUEST_METHOD"),
"sort" => "REQUEST_METHOD",
),
array(
"id" => "SERVER_NAME",
"content" => GetMessage("PERFMON_HIT_SERVER_NAME"),
"sort" => "SERVER_NAME",
),
array(
"id" => "SERVER_PORT",
"content" => GetMessage("PERFMON_HIT_SERVER_PORT"),
"sort" => "SERVER_PORT",
),
array(
"id" => "SCRIPT_NAME",
"content" => GetMessage("PERFMON_HIT_PAGE"),
"sort" => "SCRIPT_NAME",
"default" => true,
),
array(
"id" => "PERCENT",
"content" => GetMessage("PERFMON_HIT_PERCENT"),
"sort" => "SUM_PAGE_TIME",
"align" => "right",
"default" => true,
),
array(
"id" => "REQUEST_URI",
"content" => GetMessage("PERFMON_HIT_REQUEST_URI"),
"sort" => "REQUEST_URI",
),
array(
"id" => "COUNT",
"content" => GetMessage("PERFMON_HIT_COUNT"),
"sort" => "COUNT",
"align" => "right",
"default" => true,
),
);
$arGrpFuncs = array("MAX", "MIN", "SUM", "AVG");
$arGrpCols = array(
"INCLUDED_FILES" => 0,
"MEMORY_PEAK_USAGE" => 0,
"PAGE_TIME" => 4,
"PROLOG_TIME" => 4,
"AGENTS_TIME" => 4,
"WORK_AREA_TIME" => 4,
"EPILOG_TIME" => 4,
"EVENTS_TIME" => 4,
"COMPONENTS" => 0,
"COMPONENTS_TIME" => 4,
"QUERIES" => 0,
"QUERIES_TIME" => 4,
);
$arDefColumns = array("SUM_PAGE_TIME", "AVG_PAGE_TIME", "AVG_COMPONENTS", "AVG_QUERIES");
foreach($arGrpCols as $col => $prec)
foreach($arGrpFuncs as $func)
$arHeaders [] = array(
"id" => $func."_".$col,
"content" => GetMessage("PERFMON_HIT_".$func."_".$col),
"sort" => $func."_".$col,
"align" => "right",
"default" => in_array($func."_".$col , $arDefColumns),
);
$lAdmin->AddHeaders($arHeaders);
$arSelectedFields = $lAdmin->GetVisibleHeaderColumns();
if(!is_array($arSelectedFields) || (count($arSelectedFields) < 1))
$arSelectedFields = array(
"SCRIPT_NAME",
"COUNT",
"MAX_INCLUDED_FILES",
"MAX_MEMORY_PEAK_USAGE",
"AVG_QUERIES",
);
$cData = new CPerfomanceHit;
$rsTotal = $cData->GetList(array("COUNT" => "ASC"), $arFilter, true, false, array("COUNT", "SUM_PAGE_TIME"));
$arTotal = $rsTotal->Fetch();
$rsData = $cData->GetList(array($by => $order), $arFilter, true, false, $arSelectedFields);
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("PERFMON_HIT_PAGE2")));
$max_display_url = COption::GetOptionInt("perfmon", "max_display_url");
while($arRes = $rsData->NavNext(true, "f_")):
$row =& $lAdmin->AddRow($f_NAME, $arRes);
$row->AddViewField("SCRIPT_NAME", '<a href="perfmon_hit_list.php?lang='.LANGUAGE_ID.'&set_filter=Y&find_script_name='.$f_SCRIPT_NAME.'">'.$f_SCRIPT_NAME.'</a>');
$page_time = doubleval($arTotal["SUM_PAGE_TIME"]);
if($page_time > 0)
$row->AddViewField("PERCENT", str_replace(" ", " ", number_format(($arRes["SUM_PAGE_TIME"]/$page_time)*100, 2, ".", " "))."%");
else
$row->AddViewField("PERCENT", " ");
$row->AddViewField("COUNT", str_replace(" ", " ", number_format($f_COUNT, 0, ".", " ")));
foreach($arGrpFuncs as $func)
foreach($arGrpCols as $col => $prec)
if(strlen($arRes[$func."_".$col]))
$row->AddViewField($func."_".$col, str_replace(" ", " ", number_format($arRes[$func."_".$col], $prec, ".", " ")));
endwhile;
$lAdmin->AddFooter(
array(
array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsData->SelectedRowsCount()),
array("title"=>GetMessage("PERFMON_HIT_TOTAL_HITS").":", "value"=>$arTotal["COUNT"]),
)
);
$aContext = array(
);
$lAdmin->AddAdminContextMenu($aContext);
$lAdmin->CheckListMode();
$APPLICATION->SetTitle(GetMessage("PERFMON_HIT_TITLE2"));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
$oFilter = new CAdminFilter(
$sTableID."_filter",
array(
//"find_is_admin" => GetMessage("PERFMON_HIT_IS_ADMIN"),
)
);
?>
<form name="find_form" method="get" action="<?echo $APPLICATION->GetCurPage();?>">
<?$oFilter->Begin();?>
<tr>
<td><?echo GetMessage("PERFMON_HIT_IS_ADMIN")?>:</td>
<td><?
$arr = array("reference"=>array(GetMessage("MAIN_YES"), GetMessage("MAIN_NO")), "reference_id"=>array("Y","N"));
echo SelectBoxFromArray("find_is_admin", $arr, htmlspecialchars($find_is_admin), GetMessage("MAIN_ALL"));
?></td>
</tr>
<?
$oFilter->Buttons(array("table_id"=>$sTableID, "url"=>$APPLICATION->GetCurPage(), "form"=>"find_form"));
$oFilter->End();
?>
</form>
<?
$lAdmin->DisplayList();
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");?>