Files
HTCloud/HT.Cloud.Web/Areas/SystemSecurity/Views/ApplicationState/Index.cshtml
2023-11-06 21:26:55 +08:00

403 lines
14 KiB
Plaintext

@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Index.cshtml";
}
@inject Microsoft.AspNetCore.Hosting.IWebHostEnvironment env
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<style>
.layui-card {
border: 1px solid #f2f2f2;
border-radius: 5px;
}
.icon {
margin-right: 10px;
color: #1aa094;
}
.icon-cray {
color: #ffb800 !important;
}
.icon-blue {
color: #1e9fff !important;
}
.icon-tip {
color: #ff5722 !important;
}
.layuimini-qiuck-module {
text-align: center;
margin-top: 10px
}
.layuimini-qiuck-module a i {
display: inline-block;
width: 100%;
height: 60px;
line-height: 60px;
text-align: center;
border-radius: 2px;
font-size: 30px;
background-color: #F8F8F8;
color: #333;
transition: all .3s;
-webkit-transition: all .3s;
}
.layuimini-qiuck-module a cite {
position: relative;
top: 2px;
display: block;
color: #666;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
font-size: 14px;
}
.welcome-module {
width: 100%;
height: 210px;
}
.panel {
background-color: #fff;
border: 1px solid transparent;
border-radius: 3px;
-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);
box-shadow: 0 1px 1px rgba(0,0,0,.05)
}
.panel-body {
padding: 10px
}
.panel-title {
margin-top: 0;
margin-bottom: 0;
font-size: 12px;
color: inherit
}
.label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: 700;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
margin-top: .3em;
}
.label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: 700;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
margin-top: .3em;
}
.layui-red {
color: red
}
.main_btn > p {
height: 40px;
}
.layui-bg-number {
background-color: #F8F8F8;
}
.layuimini-notice:hover {
background: #f6f6f6;
}
.layuimini-notice {
padding: 7px 16px;
clear: both;
font-size: 12px !important;
cursor: pointer;
position: relative;
transition: background 0.2s ease-in-out;
}
.layuimini-notice-title, .layuimini-notice-label {
padding-right: 70px !important;
text-overflow: ellipsis !important;
overflow: hidden !important;
white-space: nowrap !important;
}
.layuimini-notice-title {
line-height: 28px;
font-size: 14px;
}
.layuimini-notice-extra {
position: absolute;
top: 50%;
margin-top: -8px;
right: 16px;
display: inline-block;
height: 16px;
color: #999;
}
</style>
<script>
layui.use(['layer', 'echarts', 'common'], function () {
var $ = layui.jquery,
layer = layui.layer,
common = layui.common,
echarts = layui.echarts;
common = layui.common;
common.iframeInterval(function () {
loadInfo();
}, 10000); //指定10秒刷新一次
$(function () {
loadInfo();
loadChart();
});
wcLoading.close();
function loadInfo() {
$.ajax({
url: "/SystemSecurity/ServerMonitoring/GetServerDataJson?v=" + new Date().Format("yyyy-MM-dd hh:mm:ss"),
dataType: "json",
success: function (data) {
$('#cpucout').html(data.CPU + "%");
$('#armcout').html(data.ARM + "%");
$('#TotalRAM').html(data.TotalRAM);
$('#OutIP').html(data.IP);
}
});
}
function loadChart() {
var myChart = echarts.init(document.getElementById('echarts-records'), 'walden');
var xData = [];
var armData = [];
var cpuData = [];
common.ajax({
url: "/SystemSecurity/ServerMonitoring/GetServerData",
dataType: "json",
async: false,
success: function (data) {
var length = data.length;
for (var i = 0; i < length; i++) {
if (data[i]['F_Date'] !== null) {
xData.push(new Date(data[i]['F_Date']).Format("yyyy-MM-dd"));
}
if (data[i]['F_ARM'] !== null) {
armData.push(data[i]['F_ARM']);
}
if (data[i]['F_CPU'] !== null) {
cpuData.push(data[i]['F_CPU']);
}
}
}
});
option = {
tooltip: {
trigger: 'axis'
},
legend: {
data: ['CPU使用率', 'ARM使用率']
},
xAxis: {
type: 'category',
boundaryGap: false,
data: xData
},
yAxis: {
type: 'value'
},
series: [
{
name: 'CPU使用率', type: 'line',
data: cpuData,
lineStyle: {
normal: {
width: 2
}
},
smooth: true,
symbol: 'circle',
symbolSize: 10,
showAllSymbol: true,
color: '#2499F8',
},
{
name: 'ARM使用率', type: 'line',
data: armData,
lineStyle: {
normal: {
width: 2
}
},
smooth: true,
symbol: 'circle',
symbolSize: 10,
showAllSymbol: true,
color: '#F90',
}
]
};
myChart.setOption(option);
// echarts 窗口缩放自适应
window.onresize = function () {
myChart.resize();
}
};
})
</script>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-row layui-col-space15">
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-warning icon"></i>状态信息</div>
<div class="layui-card-body">
<div class="welcome-module">
<div class="layui-row layui-col-space10">
<div class="layui-col-xs6">
<div class="panel layui-bg-number" style="height:200px">
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-blue">实时</span>
<h5>CPU使用率</h5>
</div>
<div class="panel-content">
<h1 class="no-margins" id="cpucout"></h1>
<small>当前记录</small>
</div>
</div>
</div>
</div>
<div class="layui-col-xs6">
<div class="panel layui-bg-number" style="height:200px">
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-cyan">实时</span>
<h5>ARM使用率</h5>
</div>
<div class="panel-content">
<h1 class="no-margins" id="armcout"></h1>
<small>当前记录</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-line-chart icon"></i>报表统计</div>
<div class="layui-card-body">
<div id="echarts-records" style="width: 100%;min-height:220px"></div>
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-fire icon"></i>服务器信息</div>
<div class="layui-card-body layui-text">
<table class="layui-table">
<colgroup>
<col width="100">
<col>
</colgroup>
<tbody>
<tr>
<td>服务器名称</td>
<td>
@Environment.MachineName
</td>
</tr>
<tr>
<td>总内存</td>
<td><span id="TotalRAM"></span></td>
</tr>
<tr>
<td>操作系统</td>
<td>@System.Runtime.InteropServices.RuntimeInformation.OSDescription</td>
</tr>
<tr>
<td>系统架构</td>
<td>@System.Runtime.InteropServices.RuntimeInformation.OSArchitecture</td>
</tr>
<tr>
<td>外网IP</td>
<td>
<span id="OutIP"></span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-fire icon"></i>.NET信息</div>
<div class="layui-card-body layui-text">
<table class="layui-table">
<colgroup>
<col width="100">
<col>
</colgroup>
<tbody>
<tr>
<td>环境变量</td>
<td>@Html.Raw(env.EnvironmentName)</td>
</tr>
<tr>
<td>ContentRootPath</td>
<td>
@Html.Raw(env.ContentRootPath)
</td>
</tr>
<tr>
<td>WebRootPath</td>
<td>@Html.Raw(env.WebRootPath)</td>
</tr>
<tr>
<td>.NET版本</td>
<td>
@Html.Raw(System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription)
</td>
</tr>
<tr>
<td>启动时间</td>
<td>
@System.Diagnostics.Process.GetCurrentProcess().StartTime.ToString("yyyy-MM-dd HH:mm:ss")
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>