@model IList<SampleData>
@using Stardust.Data.Monitors
@using NewLife;
@using NewLife.Web;
@using XCode;
@using XCode.Configuration;
@using XCode.Membership;
@using NewLife.Cube;
@using System.Web;
@{
var page = ViewBag.Page as Pager;
}
<table class="table table-bordered table-hover table-striped table-condensed">
<thead>
<tr>
<th class="text-center">应用</th>
<th class="text-center" title="操作名。接口名或埋点名">操作名</th>
<th style="width:80%">时间轴</th>
<th class="text-center" title="数值。用户自定义标量">数值</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody>
@{
//var sd = Model.OrderByDescending(e => e.EndTime - e.StartTime).FirstOrDefault();
var min = Model.Min(e => e.StartTime);
var max = Model.Max(e => e.EndTime);
var length = max - min;
}
@foreach (var entity in Model)
{
var ti = entity.TraceItem ?? new TraceItem();
var msg = entity.Error ?? entity.Tag;
var ms = entity.EndTime - entity.StartTime;
var left = (Double)(entity.StartTime - min) / length;
if (left < 0) left = 0;
var w = (Double)ms / length;
if (w > 0.01) w -= 0.01;
var color = "lightgreen";
if (!entity.Success)
{
color = "palevioletred";
}
else if (ti.Kind.EqualIgnoreCase("db"))
{
color = "orange";
}
else if (ti.Kind.EqualIgnoreCase("net", "rpc", "mq", "redismq", "mqtt", "mns", "emq"))
{
color = "mediumpurple";
}
var color2 = "";
if (ti.Kind.EqualIgnoreCase("db"))
{
color2 = "orange";
}
else if (ti.Kind.EqualIgnoreCase("mq", "redismq", "mqtt", "mns", "emq"))
{
color2 = "mediumpurple";
}
else if (ti.Kind.EqualIgnoreCase("redis"))
{
color2 = "palevioletred";
}
var url1 = $"/Monitors/appDayStat?monitorId={entity.AppId}";
var url2 = $"/Monitors/traceDayStat?appid={entity.AppId}&itemId={entity.ItemId}";
@*var tabs = "";
for (var i = 0; i < entity.Level; i++)
{
tabs += " ";
}*@
var tabs = new String(' ', entity.Level);
<tr>
<td class="text-center"><a href="@url1" title="应用最近的监控图表">@entity.AppName</a></td>
<td title="@entity.Tag" style="max-width:400px;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;">
@Html.Raw(tabs)
<a href="@url2" style="color: @color2">@entity.Name</a>
</td>
<td title="@msg">
@if (left < 0.96)
{
<div style="float:left;width:@left.ToString("p")"> </div>
<div style="background-color: @color;float:left;width:@w.ToString("p")">@ms.ToString("n0")ms</div>
}
else
{
<div style="float:left;width:@((left-0.04).ToString("p"))"> </div>
<div style="float:left;width:4%">@ms.ToString("n0")ms</div>
<div style="background-color: @color;float:left;width:@w.ToString("p")"> </div>
}
</td>
<td class="text-right">@entity.Value.ToString("n0")</td>
<td class="text-center">
<a href="/monitors/sampledata/detail/@entity.Id">查看</a>
</td>
</tr>
}
</tbody>
</table>
|