cross.jsp
7.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="a" uri="/WEB-INF/app.tld"%>
<%@ taglib prefix="w" uri="http://www.unidal.org/web/core"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="res" uri="http://www.unidal.org/webres"%>
<jsp:useBean id="ctx" type="com.dianping.cat.report.page.cross.Context" scope="request" />
<jsp:useBean id="payload" type="com.dianping.cat.report.page.cross.Payload" scope="request" />
<jsp:useBean id="model" type="com.dianping.cat.report.page.cross.Model" scope="request" />
<a:report title="Cross Report"
navUrlPrefix="ip=${model.ipAddress}&domain=${model.domain}">
<jsp:attribute name="subtitle">${w:format(model.report.startTime,'yyyy-MM-dd HH:mm:ss')} to ${w:format(model.report.endTime,'yyyy-MM-dd HH:mm:ss')}</jsp:attribute>
<jsp:body>
<%@ include file="crossQuery.jsp" %>
<table class="machines">
<tr class="left">
<th> [ <c:choose>
<c:when test="${model.ipAddress eq 'All'}">
<a href="?domain=${model.domain}&date=${model.date}" class="current">All</a>
</c:when>
<c:otherwise>
<a href="?domain=${model.domain}&date=${model.date}">All</a>
</c:otherwise>
</c:choose> ] <c:forEach var="ip" items="${model.ips}">
[
<c:choose>
<c:when test="${model.ipAddress eq ip}">
<a href="?domain=${model.domain}&ip=${ip}&date=${model.date}" class="current">${ip}</a>
</c:when>
<c:otherwise>
<a href="?domain=${model.domain}&ip=${ip}&date=${model.date}">${ip}</a>
</c:otherwise>
</c:choose>
]
</c:forEach>
</th>
</tr>
</table>
<script type="text/javascript" src="/cat/js/appendHostname.js"></script>
<script type="text/javascript">
$(document).ready(function() {
appendHostname(${model.ipToHostnameStr});
});
</script>
<table class="table table-striped table-condensed ">
<c:if test="${!empty model.projectInfo.callProjectsInfo}">
<tr><td colspan="7" style="text-align:center"><strong>调用其他Pigeon服务</strong></td></tr>
<tr>
<th class="left">Type</th>
<th class="left"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&serviceSort=${model.serviceSort}&callSort=name">RemoteProject</a></th>
<th class="right"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&serviceSort=${model.serviceSort}&callSort=total">Total</a></th>
<th class="right"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&serviceSort=${model.serviceSort}&callSort=failure">Failure</a></th>
<th class="right"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&serviceSort=${model.serviceSort}&callSort=failurePercent">Failure%</a></th>
<th class="right"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&serviceSort=${model.serviceSort}&callSort=avg">Avg(ms)</a></th>
<th class="right">QPS</th>
</tr>
<c:forEach var="callInfo" items="${model.projectInfo.callProjectsInfo}" varStatus="status">
<tr class=" right">
<td class="left">${callInfo.type}</td>
<td class="left"><a href="?op=host&domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&project=${callInfo.projectName }">${callInfo.projectName}</a></td>
<td>${w:format(callInfo.totalCount,'#,###,###,###,##0')}</td>
<td>${w:format(callInfo.failureCount,'#,###,###,###,##0')}</td>
<td>${w:format(callInfo.failurePercent,'0.0000%')}</td>
<td>${w:format(callInfo.avg,'0.00')}</td>
<td>${w:format(callInfo.tps,'0.00')}</td>
</tr>
</c:forEach>
</c:if>
<c:if test="${!empty model.projectInfo.serviceProjectsInfo}">
<tr><td colspan="7" style="text-align:center"><strong>提供Pigeon服务 [ 服务器端数据 ]</strong></td>
<c:if test="${!empty model.projectInfo.callerProjectsInfo}">
<td></td>
<td colspan="7" style="text-align:center"><strong>提供Pigeon服务 [ 客户端数据 ]</strong></td>
</c:if>
</tr>
<tr>
<th class="left">Type</th>
<th class="left"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&callSort=${model.callSort}&serviceSort=name">RemoteProject</a></th>
<th class="right"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&callSort=${model.callSort}&serviceSort=total">Total</a></th>
<th class="right"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&callSort=${model.callSort}&serviceSort=failure">Failure</a></th>
<th class="right"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&callSort=${model.callSort}&serviceSort=failurePercent">Failure%</a></th>
<th class="right"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&callSort=${model.callSort}&serviceSort=avg">Avg(ms)</a></th>
<th class="right">QPS</th>
<c:if test="${!empty model.projectInfo.callerProjectsInfo}">
<th></th>
<th class="left">Type</th>
<th class="left"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&callSort=${model.callSort}&serviceSort=name">RemoteProject</a></th>
<th class="right"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&callSort=${model.callSort}&serviceSort=total">Total</a></th>
<th class="right"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&callSort=${model.callSort}&serviceSort=failure">Failure</a></th>
<th class="right"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&callSort=${model.callSort}&serviceSort=failurePercent">Failure%</a></th>
<th class="right"><a href="?domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&callSort=${model.callSort}&serviceSort=avg">Avg(ms)</a></th>
<th class="right">QPS</th>
</c:if>
</tr>
<c:forEach var="serviceInfo" items="${model.projectInfo.serviceProjectsInfo}" varStatus="status">
<tr class=" right">
<td class="left">${serviceInfo.type}</td>
<td class="left"><a href="?op=host&domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&project=${serviceInfo.projectName}">${serviceInfo.projectName}</a></td>
<td>${w:format(serviceInfo.totalCount,'#,###,###,###,##0')}</td>
<td>${w:format(serviceInfo.failureCount,'#,###,###,###,##0')}</td>
<td>${w:format(serviceInfo.failurePercent,'0.0000%')}</td>
<td>${w:format(serviceInfo.avg,'0.00')}</td>
<td>${w:format(serviceInfo.tps,'0.00')}</td>
<c:set var="projectName" value="${serviceInfo.projectName}"/>
<c:set var="callerInfo" value="${model.projectInfo.callerProjectsInfo}"/>
<c:if test="${!empty callerInfo}">
<td></td>
<td class="left">${callerInfo[projectName].type}</td>
<td class="left"><a href="?op=host&domain=${model.domain}&date=${model.date}&ip=${model.ipAddress}&project=${callerInfo[projectName].projectName }">${callerInfo[projectName].projectName}</a></td>
<td>${w:format(callerInfo[projectName].totalCount,'#,###,###,###,##0')}</td>
<td>${w:format(callerInfo[projectName].failureCount,'#,###,###,###,##0')}</td>
<td>${w:format(callerInfo[projectName].failurePercent,'0.0000%')}</td>
<td>${w:format(callerInfo[projectName].avg,'0.00')}</td>
<td>${w:format(callerInfo[projectName].tps,'0.00')}</td>
</c:if>
</tr>
</c:forEach>
</c:if>
</table>
</jsp:body>
</a:report>