%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/bitrixcloud.mobile.monitoring.list/ |
| Current File : /home/bitrix/www/bitrix/components/bitrix/bitrixcloud.mobile.monitoring.list/component.php |
<?if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true)die();
if (!$USER->CanDoOperation("bitrixcloud_monitoring"))
{
ShowError(GetMessage("BCLMMSL_ACCESS_DENIED"));
return;
}
if (!CModule::IncludeModule('bitrixcloud'))
{
ShowError(GetMessage("BCLMMSL_BC_NOT_INSTALLED"));
return;
}
if (!CModule::IncludeModule('mobileapp'))
{
ShowError(GetMessage("BCLMMSL_MA_NOT_INSTALLED"));
return;
}
$monitoring = CBitrixCloudMonitoring::getInstance();
$monitoringResults = $monitoring->getMonitoringResults();
$localDomains = $monitoring->getConfiguredDomains();
try
{
if (is_string($monitoringResults))
throw new CBitrixCloudException($monitoringResults);
}
catch (Exception $e)
{
ShowError($e->getMessage());
return;
}
CUtil::InitJSCore(array("mobile_monitoring"));
$arResult = array(
"CURRENT_PAGE" => $APPLICATION->GetCurPage()
);
$intervalLang = array(
"sale" => array(
7 => GetMessage("BCLMMSL_MONITORING_MESS_ALERT1_WEEK"),
30 => GetMessage("BCLMMSL_MONITORING_MESS_ALERT1_MONTH"),
90 => GetMessage("BCLMMSL_MONITORING_MESS_ALERT1_QUARTER"),
365 => GetMessage("BCLMMSL_MONITORING_MESS_ALERT1_YEAR"),
)
);
if ($monitoringResults->getStatus() === CBitrixCloudMonitoringResult::RED_LAMP)
{
$arResult["HAVE_PROBLEM"] = true;
$sum = 0;
$sumHtml = "";
$uptimeRate = 1;
$alertIntervalText = "";
$uptime = $monitoring->getWorstUptime("test_http_response_time");
if ($uptime !== "")
{
$uptime = explode("/", $uptime);
if ($uptime[0] > 0 && $uptime[1] > 0)
$uptimeRate = $uptime[0]/$uptime[1];
}
if ($uptimeRate < 1 && CModule::IncludeModule('sale'))
{
$base = CCurrency::GetBaseCurrency();
$r = CSaleOrder::GetList(array(), array(
">=DATE_INSERT" => ConvertTimeStamp(time() - $monitoring->getInterval()*24*3400, "SHORT"),
), array("LID", "CURRENCY", "SUM" => "PRICE"));
while ($a = $r->fetch())
$sum += CCurrencyRates::ConvertCurrency($a["PRICE"], $a["CURRENCY"], $base);
$sum *= (1 - $uptimeRate);
if ($sum < 0.0)
$sumHtml = number_format((1 - $uptimeRate)*100, 2, '.', ' ')."%";
else
$sumHtml = CurrencyFormat($sum, $base);
}
else
{
$sumHtml = number_format((1 - $uptimeRate)*100, 2, '.', ' ')."%";
}
$arResult["LOST_SUMM"] = $sumHtml;
$arResult["COUNT_INTERVAL"] = $intervalLang["sale"][$monitoring->getInterval()];
}
else
$arResult["HAVE_PROBLEM"] = false;
foreach($monitoringResults as $domainName => $tmp)
{
$arData = array();
$domainResults = $monitoringResults[$domainName];
$bProblem = false;
$test_http_response_time = $domainResults["test_http_response_time"];
if ($test_http_response_time)
{
if ($test_http_response_time->getStatus() === CBitrixCloudMonitoringResult::RED_LAMP)
$arData["HTTP_RESPONSE_TIME"]["PROBLEM"] = $bProblem = true;
$result = explode("/", $test_http_response_time->getUptime());
if ($result[0] > 0 && $result[1] > 0)
$resultText = round($result[0]/$result[1]*100, 2)."%";
else
$resultText = GetMessage("BCLMMSL_MONITORING_NO_DATA");
$arData["HTTP_RESPONSE_TIME"]["DATA"] = $resultText;
if ($result[1] > 0)
{
$failTime = ($result[1] - $result[0]);
if ($failTime > 0)
{
$resultText = FormatDate(array(
"s" => "sdiff",
"i" => "idiff",
"H" => "Hdiff",
), time() - $failTime);
$arData["FAILED_PERIOD"]["PROBLEM"] = true;
}
else
$resultText = GetMessage("MAIN_NO");
$arData["FAILED_PERIOD"]["DATA"] = $resultText;
$resultText = FormatDate(array(
"s" => "sdiff",
"i" => "idiff",
"H" => "Hdiff",
"-" => "ddiff",
), time() - $result[1]);
$arData["MONITORING_PERIOD"]["DATA"] = $resultText;
}
}
$test_domain_registration = $domainResults["test_domain_registration"];
if ($test_domain_registration)
{
if ($test_domain_registration->getStatus() === CBitrixCloudMonitoringResult::RED_LAMP)
$arData["DOMAIN_REGISTRATION"]["PROBLEM"] = $bProblem = true;
$result = $test_domain_registration->getResult();
if ($result === "n/a")
$resultText = GetMessage("BCLMMSL_MONITORING_NO_DATA_AVAILABLE");
elseif ($result === "-" || $result < 1)
$resultText = GetMessage("BCLMMSL_MONITORING_NO_DATA");
else
$resultText = FormatDate("ddiff", time(), $result)." (".FormatDate("SHORT", $result).")";
$arData["DOMAIN_REGISTRATION"]["DATA"] = $resultText;
}
$test_lic = $domainResults["test_lic"];
if ($test_lic)
{
if ($test_lic->getStatus() === CBitrixCloudMonitoringResult::RED_LAMP)
$arData["LICENSE"]["PROBLEM"] = $bProblem = true;
$result = $test_lic->getResult();
if ($result === "-" || $result < 1)
$resultText = GetMessage("BCLMMSL_MONITORING_NO_DATA");
else
$resultText = FormatDate("ddiff", time(), $result)." (".FormatDate("SHORT", $result).")";
$arData["LICENSE"]["DATA"] = $resultText;
}
$test_ssl_cert_validity = $domainResults["test_ssl_cert_validity"];
if ($test_ssl_cert_validity)
{
if ($test_ssl_cert_validity->getStatus() === CBitrixCloudMonitoringResult::RED_LAMP)
$arData["MONITORING_SSL"]["PROBLEM"] = $bProblem = true;
$result = $test_ssl_cert_validity->getResult();
if ($result === "-" || $result < 1)
$resultText = GetMessage("BCLMMSL_MONITORING_NO_DATA");
else
$resultText = FormatDate("ddiff", time(), $result)." (".FormatDate("SHORT", $result).")";
$arData["MONITORING_SSL"]["DATA"] = $resultText;
}
if($bProblem)
$arData["PROBLEM"] = true;
if(isset($arParams["DETAIL_URL"]))
{
$arData['DETAIL_LINK'] = CHTTP::urlAddParams(
$arParams["DETAIL_URL"],
array("domain"=>urlencode($domainName))
);
}
$arResult["ITEMS"][$domainName] = $arData;
unset($localDomains[$domainName]);
}
if(count($arResult["ITEMS"]) <= 0 && isset($arParams["LIST_URL"]))
LocalRedirect($arParams["LIST_URL"]);
$arResult["DOMAINS_TO_ADD"] = $localDomains;
$this->IncludeComponentTemplate();
?>