update page style

This commit is contained in:
melin
2012-08-25 12:00:46 +08:00
parent 2cad57ce5a
commit 4a748a317c
31 changed files with 1724 additions and 1098 deletions
@@ -3,19 +3,12 @@
<head>
<title>Druid ActiveConnection StackTrace</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<link href='css/bootstrap.min.css' rel="stylesheet" />
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
<script src="js/activeConnectionStackTrace.js" type="text/javascript" charset="utf8"></script>
<script >
function init(){
ajaxRequestForActiveConnectionStackTrace();
var time2=setInterval("ajaxRequestForActiveConnectionStackTrace();",2000);
buildMenu();
buildFooter();
}
</script>
</head>
<body onload="init()">
<body>
<div id="main">
<h2>ActiveConnection StackTrace for Datasource
<a href="activeConnectionStackTrace-{datasourceId}.json" target="_blank">[View JSON API]</a>
@@ -25,5 +18,44 @@
</table>
</div>
</div>
<script type="text/javascript">
$.namespace("druid.activeConnectionStackTrace");
druid.activeConnectionStackTrace = function () {
var datasourceId = druid.common.getUrlVar("datasourceId");
return {
init : function() {
druid.activeConnectionStackTrace.ajaxRequestForActiveConnectionStackTrace();
var time2=setInterval("druid.activeConnectionStackTrace.ajaxRequestForActiveConnectionStackTrace();",2000);
},
ajaxRequestForActiveConnectionStackTrace : function() {
$.ajax({
type: 'POST',
url: 'activeConnectionStackTrace-' + datasourceId + '.json',
success: function(data) {
var conntionStackTraceList = data.Content;
if (conntionStackTraceList == null)
return;
var activeConnectionStackTraceTable = document.getElementById("activeConnectionStackTraceTable");
while (activeConnectionStackTraceTable.rows.length > 0) {
activeConnectionStackTraceTable.deleteRow(0);
}
for ( var i = 0; i < conntionStackTraceList.length; i++) {
var conntionStackTrace = conntionStackTraceList[i];
var newRow = activeConnectionStackTraceTable.insertRow(-1);
newRow.insertCell(-1).innerHTML = conntionStackTrace;
}
},
dataType: "json"
});
}
}
}();
$(document).ready(function() {
druid.activeConnectionStackTrace.init();
});
</script>
</body>
</html>
@@ -1,49 +1,133 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Druid SqlStat</title>
<head>
<title>Druid Spring Stat</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<link href='css/bootstrap.min.css' rel="stylesheet" />
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
<script src="js/connectionInfo.js" type="text/javascript" charset="utf8"></script>
<script >
function init(){
ajaxRequestForConnectionInfo();
var time3=setInterval("ajaxRequestForConnectionInfo();",1000);
buildMenu();
buildFooter();
}
</script>
</head>
<body onload="init()">
<br />
<div id="main">
<h2>Pooling Connection Info List for Datasource {datasourceId}<a href="connectionInfo-{datasourceId}.json" target="_blank">[View JSON API]</a></h2>
<table cellspacing="1" cellpadding="5" id="connectionInfoTable" width="99%">
<thead>
<tr>
<th class="td_lable" width="50">ID</th>
<th class="td_lable" width="50">Use Count</th>
<th class="td_lable" width="150">Last ActiveTime</th>
<th class="td_lable" width="150">ConnectTime</th>
<th class="td_lable" width="50">Holdability</th>
<th class="td_lable" width="50">Transaction Isolation</th>
<th class="td_lable" width="50">AutoCommit</th>
<th class="td_lable" width="50">ReadoOnly</th>
<th class="td_lable">
Pscache<br />
<table cellspacing="1" cellpadding="5" width="100%">
</head>
<body>
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<div class="hero-unit" style="padding: 10px;">
<h3>
Pooling Connection Info List for Datasource-<span id="datasourceId"></span>
</h3>
<table id="dataTable" class="table table-bordered table-striped responsive-utilities">
<thead>
<tr>
<th class="td_lable">sql</th>
<th class="td_lable" width="50">default Row Pretch</th>
<th class="td_lable" width="50">row Prefetch</th>
<th class="td_lable" width="50">hit Count</th>
<th class="td_lable" width="50">ID</th>
<th class="td_lable" width="50">Use Count</th>
<th class="td_lable" width="150">Last ActiveTime</th>
<th class="td_lable" width="150">ConnectTime</th>
<th class="td_lable" width="50">Holdability</th>
<th class="td_lable" width="50">Transaction Isolation</th>
<th class="td_lable" width="50">AutoCommit</th>
<th class="td_lable" width="50">ReadoOnly</th>
<th class="td_lable">
Pscache<br />
<table cellspacing="1" cellpadding="5" width="100%">
<tr>
<th class="td_lable">sql</th>
<th class="td_lable" width="50">default Row Pretch</th>
<th class="td_lable" width="50">row Prefetch</th>
<th class="td_lable" width="50">hit Count</th>
</tr>
</table>
</th>
</tr>
</table>
</th>
</tr>
</thead>
</table>
</div>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$.namespace("druid.connectionInfo");
druid.connectionInfo = function () {
var datasourceId = druid.common.getUrlVar("datasourceId");
return {
init : function() {
$("#datasourceId").html(datasourceId);
druid.common.buildHead(1);
druid.connectionInfo.ajaxRequestForBasicInfo();
setInterval("druid.connectionInfo.ajaxRequestForBasicInfo();", 10000);
},
ajaxRequestForBasicInfo : function() {
$.ajax({
type: 'POST',
url: 'connectionInfo-' + datasourceId + '.json',
success: function(data) {
druid.connectionInfo.handleAjaxResult(data);
},
dataType: "json"
});
},
handleAjaxResult : function(data) {
var statList = data.Content;
if(statList == null) return;
var sqlStatTable = document.getElementById("dataTable");
while (sqlStatTable.rows.length > 1) {
sqlStatTable.deleteRow(1);
}
var html = "";
for ( var i = 0; i < statList.length; i++) {
var stat = statList[i];
var newRow = sqlStatTable.insertRow(-1);
html += "<tr>";
html += "<td>" + stat.id + "</td>";
html += "<td>" + stat.useCount + "</td>";
if (stat.lastActiveTime)
html += "<td>" + stat.lastActiveTime + "</td>";
else
html += "<td></td>";
html += "<td>" + stat.connectTime + "</td>";
html += "<td>" + stat.holdability + "</td>";
html += "<td>" + stat.transactionIsolation + "</td>";
html += "<td>" + stat.autoCommit + "</td>";
html += "<td>" + stat.readoOnly + "</td>";
if (stat.pscache)
html += "<td>" + druid.connectionInfo.getPsCacheInfo(stat.pscache) + "</td>";
else
html += "<td></td>";
html += "</tr>";
}
$("#dataTable tbody").html(html);
druid.common.stripes();
},
getPsCacheInfo : function(pscache) {
var result = '<table cellspacing="1" cellpadding="5" width="100%">';
for ( var i = 0; i < pscache.length; i++) {
var stmt = pscache[i];
result += '<tr>';
result += '<td>' + stmt.sql + "</td>";
result += '<td width="50">' + stmt.defaultRowPretch + "</td>";
result += '<td width="50">' + stmt.rowPrefetch + "</td>";
result += '<td width="50">' + stmt.hitCount + "</td>";
result += '</tr>';
}
result += "</table>";
return result;
}
}
}();
$(document).ready(function() {
druid.connectionInfo.init();
});
</script>
</body>
</html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -15,6 +15,7 @@ body{
.td_lable {
font-weight: bold;
width: 220px;
background-color: #D3EAEF;
}
.navbar .brand {
@@ -39,8 +40,14 @@ body{
.navbar-inner {
text-align:center;
background-color: #FAFAFA;
background-image: -moz-linear-gradient(center top , #FFFFFF, #F2F2F2);
background-color:#FAFAFA;
background-image:-moz-linear-gradient(center top , #FFFFFF, #F2F2F2);
background-image:-ms-linear-gradient(top,#FFFFFF,#F2F2F2);
background-image:-webkit-gradient(linear,0 0,0 100%,from(#FFFFFF),to(#F2F2F2));
background-image:-webkit-linear-gradient(top,#FFFFFF,#F2F2F2);
background-image:-o-linear-gradient(top,#FFFFFF,#F2F2F2);
background-image:linear-gradient(top,#FFFFFF,#F2F2F2);
filter:progid:dximagetransform.microsoft.gradient(startColorstr='#FFFFFF',endColorstr='#F2F2F2',GradientType=0)
}
.navbar .nav > .active > a, .navbar .nav > .active > a:hover, .navbar .nav > .active > a:focus {
background-color: #E5E5E5;
@@ -53,4 +60,8 @@ body{
background-color: transparent;
color: #333333;
text-decoration: none;
}
}
.striped {
background-color: #fff;
}
@@ -6,8 +6,8 @@
<link href='css/bootstrap.min.css' rel="stylesheet" />
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
<script src="js/datasource.js" type="text/javascript"></script>
</head>
<body>
<div class="container-fluid">
@@ -23,5 +23,109 @@
</div>
</div>
</div>
<script type="text/javascript">
$.namespace("druid.datasource");
druid.datasource = function () {
var keys = ["UserName", "URL", "DbType", "DriverClassName", "FilterClassNames", "TestOnBorrow", "TestWhileIdle", "TestOnReturn",
"InitialSize", "MinIdle", "MaxActive", "QueryTimeout", "TransactionQueryTimeout", "LoginTimeout", "ValidConnectionCheckerClassName",
"ExceptionSorterClassName", "DefaultAutoCommit", "DefaultReadOnly", "DefaultTransactionIsolation", "NotEmptyWaitCount",
"NotEmptyWaitMillis", "WaitThreadCount", "StartTransactionCount", "TransactionHistogram", "PoolingCount", "PoolingPeak",
"PoolingPeakTime", "ActiveCount", "ActivePeak", "ActivePeakTime", "LogicConnectCount", "LogicCloseCount", "LogicConnectErrorCount",
"PhysicalConnectCount", "PhysicalCloseCount", "PhysicalConnectErrorCount", "ExecuteCount", "ErrorCount", "CommitCount",
"RollbackCount", "PSCacheAccessCount", "PSCacheHitCount", "PSCacheMissCount", "ConnectionHoldTimeHistogram"]
var descs = ["Specify the username used when creating a new connection.",
"The JDBC driver connection URL", "database type", "The fully qualifed name of the JDBC driver class",
"All the fully qualifed name of the filter classes", " Test or not when borrow a connection", "Test or not when return a connection",
"Test or not when a connection is idle for a while","The size of datasource connections to create when initial a datasource",
"The minimum number of connections a pool should hold. ", "The maximum number of connections for a pool", "", "", "", "",
"", "", "", "", "Total times for wait to get a connection","Total millins for wait to get a connection", "The current waiting thread count",
"The count of start transaction", "The histogram values of transaction time, [0-10 ms, 10-100 ms, 100-1 s, 1-10 s, 10-100 s, >100 s]",
"The current usefull connection count", "The usefull connection peak count",
"The usefull connection peak time", "The current active connection count", "The current active connection peak count", "The active connection peak time",
"Total connect times from datasource", "Total close connect times from datasource", "Total connect error times",
"Create physical connnection count", "Close physical connnection count", "Total physical connect error times", "", "", "",
"", "PerpareStatement access count", "PerpareStatement hit count", "PerpareStatement miss count", "The histogram values of connection hold time, [0-1 ms, 1-10 ms, 10-100 ms, 100ms-1s, 1-10 s, 10-100 s, 100-1000 s, >1000 s]"]
return {
init : function() {
druid.common.buildHead(1);
this.ajaxRequestForBasicInfo();
},
ajaxRequestForBasicInfo : function() {
$.ajax({
type: 'POST',
url: "datasource.json",
success: function(data) {
var datasourceList = data.Content;
var tab = '<ul class="nav nav-tabs" id="datasourceTab">';
var content = '<div class="tab-content">';
for ( var i = 0; i < datasourceList.length; i++) {
var datasource = datasourceList[i];
content += druid.datasource.generateDataSourceTable(datasource, i);
tab += druid.datasource.generateDataSourceTab(datasource.Identity, i);
}
tab += '</ul>';
content += '</div>';
$(".hero-unit h3").after(tab + content);
$('#datasourceTab a').click(function (e) {
e.preventDefault();
$(this).tab('show');
})
},
dataType: "json"
});
},
generateDataSourceTab : function(datasourceId, index) {
if(index == 0)
return '<li class="active"><a href="#dstab' + datasourceId + '">DataSource-'+datasourceId+'</a></li>';
else
return '<li><a href="#dstab' + datasourceId + '">DataSource-'+datasourceId+'</a></li>';
},
generateDataSourceTable : function(datasource, index) {
var datasourceId = datasource.Identity;
if(index == 0)
var html = '<div class="tab-pane active" id="dstab' + datasourceId + '">';
else
var html = '<div class="tab-pane" id="dstab' + datasourceId + '">';
html += '<h4>Basic Info For DataSource-' + datasourceId + '<a href="datasource-' + datasourceId + '.json" target="_blank">View JSON API</a></h4>';
html += '<table class="table table-bordered" style="background-color: #fff">';
for(var i=0, len=keys.length; i<len; i++) {
var value = datasource[keys[i]];
if(value == null)
value = "";
if(i<19)
html += '<tr><td valign="top" class="td_lable">* ' + keys[i] + '</td><td>' + value + '</td><td>' + descs[i] + '</td></tr>'
else
html += '<tr><td valign="top" class="td_lable">' + keys[i] + '</td><td>' + value + '</td><td>' + descs[i] + '</td></tr>'
}
if (datasource.RemoveAbandoned == true)
html += '<tr><td valign="top" class="td_lable">ActiveConnection StackTrace</td><td><a href="activeConnectionStackTrace.html?datasourceId=' + datasource.Identity + '">View</a></td><td>StackTrace for active Connection. <a href="activeConnectionStackTrace-'
+ datasourceId + '.json" target="_blank">[View JSON API]</a></td></tr>'
else
html += '<tr><td valign="top" class="td_lable">ActiveConnection StackTrace</td><td>require set removeAbandoned=true</td><td>StackTrace for active Connection. <a href="activeConnectionStackTrace-'
+ datasourceId + '.json" target="_blank">[View JSON API]</a></td></tr>'
html += '<tr><td valign="top" class="td_lable">PollingConnection Info</td><td><a href="connectionInfo.html?datasourceId=' + datasourceId+
'">View</a></td><td>Info for polling connection. <a href="connectionInfo-' + datasourceId + '.json" target="_blank">[View JSON API]</a></td></tr>'
html += '</table></div>';
return html;
}
}
}();
$(document).ready(function() {
druid.datasource.init();
});
</script>
</body>
</html>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

@@ -7,7 +7,6 @@
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
<script src="js/basicStat.js" type="text/javascript"></script>
</head>
<body>
<div class="container-fluid">
@@ -18,7 +17,7 @@
Stat Index
<a href="basic.json" target="_blank">View JSON API</a>
</h3>
<table class="table table-bordered table-striped responsive-utilities">
<table id="dataTable" style="background-color: #fff" class="table table-bordered responsive-utilities">
<tr >
<td valign="top" width="100" class="td_lable">
Version
@@ -43,5 +42,42 @@
</div>
</div>
</div>
<script type="text/javascript">
$.namespace("druid.index");
druid.index = function () {
return {
init : function() {
druid.common.buildHead(0);
this.ajaxRequestForBasicInfo();
},
ajaxRequestForBasicInfo : function() {
$.ajax({
type: 'POST',
url: "basic.json",
success: function(data) {
$("#DruidVersion").text(data.Content.Version)
var driversList = data.Content.Drivers;
if (driversList) {
var driverHtml = '';
for ( var i = 0; i < driversList.length; i++) {
var driver = driversList[i];
driverHtml += driver + ' , ';
}
$("#DruidDrivers").text(driverHtml);
}
$("#ResetEnable").text(data.Content.ResetEnable)
$("#ResetCount").text(data.Content.ResetCount)
},
dataType: "json"
});
}
}
}();
$(document).ready(function() {
druid.index.init();
});
</script>
</body>
</html>
@@ -1,24 +0,0 @@
function ajaxRequestForActiveConnectionStackTrace() {
var datasourceId = getUrlVar("datasourceId");
var xmlHttpForActiveConnectionStackTrace=getRequestObject();
sendRequest(xmlHttpForActiveConnectionStackTrace,'activeConnectionStackTrace-' + datasourceId + '.json', function() {
ajaxResponseForActiveConnectionStackTrace(xmlHttpForActiveConnectionStackTrace, datasourceId);
});
}
function ajaxResponseForActiveConnectionStackTrace(xmlHttpForActiveConnectionStackTrace, datasourceId) {
var conntionStackTraceList = getJSONResponseContent(xmlHttpForActiveConnectionStackTrace);
if (conntionStackTraceList == null)
return;
var activeConnectionStackTraceTable = document.getElementById("activeConnectionStackTraceTable");
while (activeConnectionStackTraceTable.rows.length > 0) {
activeConnectionStackTraceTable.deleteRow(0);
}
for ( var i = 0; i < conntionStackTraceList.length; i++) {
var conntionStackTrace = conntionStackTraceList[i];
var newRow = activeConnectionStackTraceTable.insertRow(-1);
newRow.insertCell(-1).innerHTML = conntionStackTrace;
}
}
@@ -1,35 +0,0 @@
$.namespace("druid.index");
druid.index = function () {
return {
init : function() {
druid.common.buildHead(0);
this.ajaxRequestForBasicInfo();
},
ajaxRequestForBasicInfo : function() {
$.ajax({
type: 'POST',
url: "basic.json",
success: function(data) {
$("#DruidVersion").text(data.Content.Version)
var driversList = data.Content.Drivers;
if (driversList) {
var driverHtml = '';
for ( var i = 0; i < driversList.length; i++) {
var driver = driversList[i];
driverHtml += driver + ' , ';
}
$("#DruidDrivers").text(driverHtml);
}
$("#ResetEnable").text(data.Content.ResetEnable)
$("#ResetCount").text(data.Content.ResetCount)
},
dataType: "json"
});
}
}
}();
$(document).ready(function() {
druid.index.init();
});
File diff suppressed because one or more lines are too long
@@ -28,6 +28,7 @@ druid.common = function () {
' <li><a href="spring.html">Spring</a></li>'+
' <li><a href="api.html">JSON API</a></li>'+
' </ul>'+
' <a class="btn btn-primary" href="javascript:druid.common.ajaxRequestForReset();">Reset All</a>'+
' </div>'+
' </div>'+
' </div>'+
@@ -88,8 +89,8 @@ druid.common = function () {
var html = old_divObj.innerHTML;
if (statViewOrderBy_old.indexOf('[') > 0)
replaceToStr = '-';
html = html.replace('¡ü', replaceToStr);
html = html.replace('¡ý', replaceToStr);
html = html.replace('↑', replaceToStr);
html = html.replace('↓', replaceToStr);
old_divObj.innerHTML = html
}
if (divObj) {
@@ -137,7 +138,30 @@ druid.common = function () {
},
dataType: "json"
});
}
},
subSqlString : function(sql, len) {
if (sql.length <= len)
return sql;
return sql.substr(0, len) + '...';
},
stripes : function() {
$("#dataTable tbody tr").each(function () {
$(this).removeClass("striped");
});
$("#dataTable tbody tr:even").each(function () {
$(this).addClass("striped");
});
},
getUrlVar : function(name) {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars[name];
}
}
}();
@@ -1,129 +0,0 @@
var xmlHttpForConnectionInfo;
var sqlViewOrderBy = '';
var sqlViewOrderBy_old = '';
var sqlViewOrderType = 'asc';
// only one page for now
var sqlViewPage = 1;
var sqlViewPerPageCount = 1000000;
function resetSortMark() {
var divObj = document.getElementById('th-' + sqlViewOrderBy);
var old_divObj = document.getElementById('th-' + sqlViewOrderBy_old);
var replaceToStr = '';
if (old_divObj) {
var html = old_divObj.innerHTML;
if (sqlViewOrderBy_old.indexOf('[') > 0)
replaceToStr = '-';
html = html.replace('↑', replaceToStr);
html = html.replace('↓', replaceToStr);
old_divObj.innerHTML = html
}
if (divObj) {
var html = divObj.innerHTML;
if (sqlViewOrderBy.indexOf('[') > 0)
html = '';
if (sqlViewOrderType == 'asc') {
html += '&uarr;';
} else if (sqlViewOrderType == 'desc') {
html += '&darr;';
}
divObj.innerHTML = html;
}
ajaxRequestForConnectionInfo();
}
function setOrderBy(orderBy) {
if (sqlViewOrderBy != orderBy) {
sqlViewOrderBy_old = sqlViewOrderBy;
sqlViewOrderBy = orderBy;
sqlViewOrderType = 'desc';
resetSortMark();
return;
}
sqlViewOrderBy_old = sqlViewOrderBy;
if (sqlViewOrderType == 'asc')
sqlViewOrderType = 'desc'
else
sqlViewOrderType = 'asc';
resetSortMark();
}
function getSqlViewJsonUrl() {
var result = 'sql.json?';
if (sqlViewOrderBy != undefined)
result += 'orderBy=' + sqlViewOrderBy + '&';
if (sqlViewOrderType != undefined)
result += 'orderType=' + sqlViewOrderType + '&';
if (sqlViewPage != undefined)
result += 'page=' + sqlViewPage + '&';
if (sqlViewPerPageCount != undefined)
result += 'perPageCount=' + sqlViewPerPageCount + '&';
return result;
}
function ajaxRequestForConnectionInfo() {
var datasourceId = getUrlVar("datasourceId");
xmlHttpForConnectionInfo = getRequestObject();
sendRequest(xmlHttpForConnectionInfo, 'connectionInfo-' + datasourceId + '.json', ajaxResponseForConnectionInfo)
}
function getPsCacheInfo(pscache) {
var result = '<table cellspacing="1" cellpadding="5" width="100%">';
for ( var i = 0; i < pscache.length; i++) {
var stmt = pscache[i];
result += '<tr>';
result += '<td>' + stmt.sql + "</td>";
result += '<td width="50">' + stmt.defaultRowPretch + "</td>";
result += '<td width="50">' + stmt.rowPrefetch + "</td>";
result += '<td width="50">' + stmt.hitCount + "</td>";
result += '</tr>';
}
result += "</table>";
return result;
}
function ajaxResponseForConnectionInfo() {
var connectionInfoList = getJSONResponseContent(xmlHttpForConnectionInfo);
if (connectionInfoList == null)
return;
var connectionInfoTable = document.getElementById("connectionInfoTable");
while (connectionInfoTable.rows.length > 1) {
connectionInfoTable.deleteRow(1);
}
for ( var i = 0; i < connectionInfoList.length; i++) {
var connectionInfo = connectionInfoList[i];
var newRow = connectionInfoTable.insertRow(-1);
newRow.insertCell(-1).innerHTML = connectionInfo.id;
newRow.insertCell(-1).innerHTML = connectionInfo.useCount;
if (connectionInfo.lastActiveTime)
newRow.insertCell(-1).innerHTML = new Date(connectionInfo.lastActiveTime);
else
newRow.insertCell(-1).innerHTML = '';
newRow.insertCell(-1).innerHTML = new Date(connectionInfo.connectTime);
newRow.insertCell(-1).innerHTML = connectionInfo.holdability;
newRow.insertCell(-1).innerHTML = connectionInfo.transactionIsolation;
newRow.insertCell(-1).innerHTML = connectionInfo.autoCommit;
newRow.insertCell(-1).innerHTML = connectionInfo.readoOnly;
if (connectionInfo.pscache)
newRow.insertCell(-1).innerHTML = getPsCacheInfo(connectionInfo.pscache);
else
newRow.insertCell(-1).innerHTML = '';
}
}
@@ -1,77 +0,0 @@
$.namespace("druid.datasource");
druid.datasource = function () {
var keys = ["UserName", "URL", "DbType", "DriverClassName", "FilterClassNames", "TestOnBorrow", "TestWhileIdle", "TestOnReturn",
"InitialSize", "MinIdle", "MaxActive", "QueryTimeout", "TransactionQueryTimeout", "LoginTimeout", "ValidConnectionCheckerClassName",
"ExceptionSorterClassName", "DefaultAutoCommit", "DefaultReadOnly", "DefaultTransactionIsolation", "NotEmptyWaitCount",
"NotEmptyWaitMillis", "WaitThreadCount", "StartTransactionCount", "TransactionHistogram", "PoolingCount", "PoolingPeak",
"PoolingPeakTime", "ActiveCount", "ActivePeak", "ActivePeakTime", "LogicConnectCount", "LogicCloseCount", "LogicConnectErrorCount",
"PhysicalConnectCount", "PhysicalCloseCount", "PhysicalConnectErrorCount", "ExecuteCount", "ErrorCount", "CommitCount",
"RollbackCount", "PSCacheAccessCount", "PSCacheHitCount", "PSCacheMissCount", "ConnectionHoldTimeHistogram"]
var descs = ["Specify the username used when creating a new connection.",
"The JDBC driver connection URL", "database type", "The fully qualifed name of the JDBC driver class",
"All the fully qualifed name of the filter classes", " Test or not when borrow a connection", "Test or not when return a connection",
"Test or not when a connection is idle for a while","The size of datasource connections to create when initial a datasource",
"The minimum number of connections a pool should hold. ", "The maximum number of connections for a pool", "", "", "", "",
"", "", "", "", "Total times for wait to get a connection","Total millins for wait to get a connection", "The current waiting thread count",
"The count of start transaction", "The histogram values of transaction time, [0-10 ms, 10-100 ms, 100-1 s, 1-10 s, 10-100 s, >100 s]",
"The current usefull connection count", "The usefull connection peak count",
"The usefull connection peak time", "The current active connection count", "The current active connection peak count", "The active connection peak time",
"Total connect times from datasource", "Total close connect times from datasource", "Total connect error times",
"Create physical connnection count", "Close physical connnection count", "Total physical connect error times", "", "", "",
"", "PerpareStatement access count", "PerpareStatement hit count", "PerpareStatement miss count", "The histogram values of connection hold time, [0-1 ms, 1-10 ms, 10-100 ms, 100ms-1s, 1-10 s, 10-100 s, 100-1000 s, >1000 s]"]
return {
init : function() {
druid.common.buildHead(1);
this.ajaxRequestForBasicInfo();
},
ajaxRequestForBasicInfo : function() {
$.ajax({
type: 'POST',
url: "datasource.json",
success: function(data) {
var datasourceList = data.Content;
for ( var i = 0; i < datasourceList.length; i++) {
var datasource = datasourceList[i];
druid.datasource.generateDataSourceTable(datasource);
}
},
dataType: "json"
});
},
generateDataSourceTable : function(datasource) {
var datasourceId = datasource.Identity;
var html = '<h4>Basic Info For DataSource-' + datasourceId + '<a href="datasource-' + datasourceId + '.json" target="_blank">View JSON API</a></h4>';
html += '<table class="table table-bordered table-striped responsive-utilities">';
for(var i=0, len=keys.length; i<len; i++) {
var value = datasource[keys[i]];
if(value == null)
value = "";
if(i<19)
html += '<tr><td valign="top" class="td_lable">* ' + keys[i] + '</td><td>' + value + '</td><td>' + descs[i] + '</td></tr>'
else
html += '<tr><td valign="top" class="td_lable">' + keys[i] + '</td><td>' + value + '</td><td>' + descs[i] + '</td></tr>'
}
if (datasource.RemoveAbandoned == true)
html += '<tr><td valign="top" class="td_lable">ActiveConnection StackTrace</td><td><a href="activeConnectionStackTrace.html?datasourceId=' + datasource.Identity + '">View</a></td><td>StackTrace for active Connection. <a href="activeConnectionStackTrace-'
+ datasourceId + '.json" target="_blank">[View JSON API]</a></td></tr>'
else
html += '<tr><td valign="top" class="td_lable">ActiveConnection StackTrace</td><td>require set removeAbandoned=true</td><td>StackTrace for active Connection. <a href="activeConnectionStackTrace-'
+ datasourceId + '.json" target="_blank">[View JSON API]</a></td></tr>'
html += '<tr><td valign="top" class="td_lable">PollingConnection Info</td><td><a href="connectionInfo.html?datasourceId=' + datasourceId+
'">View</a></td><td>Info for polling connection. <a href="connectionInfo-' + datasourceId + '.json" target="_blank">[View JSON API]</a></td></tr>'
html += '</table>';
$(".hero-unit h3").after(html);
}
}
}();
$(document).ready(function() {
druid.datasource.init();
});
@@ -1,32 +0,0 @@
function ajaxRequestForSqlInfo() {
var clazz = getUrlVar("class");
var method = getUrlVar("method");
xmlHttpForConnectionInfo = getRequestObject();
sendRequest(xmlHttpForConnectionInfo, 'spring-detail.json?class=' + clazz + '&method=' + method, ajaxResponseForSqlInfo)
}
function ajaxResponseForSqlInfo() {
var stat = getJSONResponseContent(xmlHttpForConnectionInfo);
if (stat == null)
return;
changeInnerHtml("Class", stat.Class);
changeInnerHtml("Method", stat.Method);
changeInnerHtml("ExecuteCount", stat.ExecuteCount);
changeInnerHtml("ExecuteErrorCount", stat.ExecuteErrorCount);
changeInnerHtml("ExecuteTimeMillis", stat.ExecuteTimeMillis);
changeInnerHtml("RunningCount", stat.RunningCount);
changeInnerHtml("ConcurrentMax", stat.ConcurrentMax);
changeInnerHtml("JdbcExecuteCount", stat.JdbcExecuteCount);
changeInnerHtml("JdbcExecuteErrorCount", stat.JdbcExecuteErrorCount);
changeInnerHtml("JdbcExecuteTimeMillis", stat.JdbcExecuteTimeMillis);
changeInnerHtml("JdbcCommitCount", stat.JdbcCommitCount);
changeInnerHtml("JdbcRollbackCount", stat.JdbcRollbackCount);
changeInnerHtml("JdbcFetchRowCount", stat.JdbcFetchRowCount);
changeInnerHtml("JdbcUpdateCount", stat.JdbcUpdateCount);
changeInnerHtml("JdbcPoolConnectionOpenCount", stat.JdbcPoolConnectionOpenCount);
changeInnerHtml("JdbcPoolConnectionCloseCount", stat.JdbcPoolConnectionCloseCount);
changeInnerHtml("JdbcResultSetOpenCount", stat.JdbcResultSetOpenCount);
changeInnerHtml("JdbcResultSetCloseCount", stat.JdbcResultSetCloseCount);
}
@@ -1,45 +0,0 @@
$.namespace("druid.spring");
druid.spring = function () {
return {
init : function() {
druid.common.buildHead(5);
druid.common.ajaxuri = 'spring.json?';
druid.common.handleAjaxResult = druid.spring.handleAjaxResult;
this.ajaxRequestForBasicInfo();
setInterval("druid.common.ajaxRequestForBasicInfo();",5000);
},
handleAjaxResult : function(data) {
var statList = data.Content;
if(statList==null) return;
var sqlStatTable = document.getElementById("SpringStatTable");
while (sqlStatTable.rows.length > 1) {
sqlStatTable.deleteRow(1);
}
for ( var i = 0; i < statList.length; i++) {
var stat = statList[i];
var newRow = sqlStatTable.insertRow(-1);
newRow.insertCell(-1).innerHTML = i+1;
newRow.insertCell(-1).innerHTML = stat.Class;
newRow.insertCell(-1).innerHTML = '<a target="_blank" href="spring-detail.html?class=' + stat.Class + '&method=' + stat.Method + '">' + stat.Method + '</a>';
newRow.insertCell(-1).innerHTML = stat.ExecuteCount;
newRow.insertCell(-1).innerHTML = stat.ExecuteTimeMillis;
newRow.insertCell(-1).innerHTML = stat.RunningCount;
newRow.insertCell(-1).innerHTML = stat.ConcurrentMax;
newRow.insertCell(-1).innerHTML = stat.JdbcExecuteCount;
newRow.insertCell(-1).innerHTML = stat.JdbcExecuteTimeMillis;
newRow.insertCell(-1).innerHTML = stat.JdbcCommitCount;
newRow.insertCell(-1).innerHTML = stat.JdbcRollbackCount;
newRow.insertCell(-1).innerHTML = stat.JdbcFetchRowCount;
newRow.insertCell(-1).innerHTML = stat.JdbcUpdateCount;
}
}
}
}();
$(document).ready(function() {
druid.spring.init();
});
@@ -1,32 +0,0 @@
function ajaxRequestForSqlInfo() {
var sqlId = getUrlVar("sqlId");
xmlHttpForConnectionInfo = getRequestObject();
sendRequest(xmlHttpForConnectionInfo, 'sql-' + sqlId + '.json', ajaxResponseForSqlInfo)
}
function ajaxResponseForSqlInfo() {
var sqlInfo = getJSONResponseContent(xmlHttpForConnectionInfo);
if (sqlInfo == null)
return;
changeInnerHtml("fullSql",sqlInfo.SQL);
changeInnerHtml("formattedSql",sqlInfo.formattedSql);
changeInnerHtml("parsed.table",sqlInfo.parsedTable);
changeInnerHtml("parsed.fields",sqlInfo.parsedFields);
changeInnerHtml("parsed.conditions",sqlInfo.parsedConditions);
changeInnerHtml("parsed.relationships",sqlInfo.parsedRelationships);
changeInnerHtml("parsed.orderbycolumns",sqlInfo.parsedOrderbycolumns);
changeInnerHtml("MaxTimespanOccurTime",sqlInfo.MaxTimespanOccurTime);
changeInnerHtml("LastSlowParameters",sqlInfo.LastSlowParameters);
changeInnerHtml("MaxTimespan",sqlInfo.MaxTimespan);
changeInnerHtml("LastErrorMessage",sqlInfo.LastErrorMessage);
changeInnerHtml("LastErrorClass",sqlInfo.LastErrorClass);
changeInnerHtml("LastErrorTime",sqlInfo.LastErrorTime);
changeInnerHtml("LastErrorStackTrace",sqlInfo.LastErrorStackTrace);
changeInnerHtml("BatchSizeMax",sqlInfo.BatchSizeMax);
changeInnerHtml("BatchSizeTotal",sqlInfo.BatchSizeTotal);
}
@@ -1,66 +0,0 @@
$.namespace("druid.weburi");
druid.weburi = function () {
return {
init : function() {
druid.common.buildHead(2);
druid.common.ajaxuri = 'weburi.json?';
druid.common.handleAjaxResult = druid.weburi.handleAjaxResult;
druid.common.setOrderBy("SQL");
druid.common.ajaxRequestForBasicInfo();
setInterval("druid.common.ajaxRequestForBasicInfo();",5000);
},
handleAjaxResult : function(data) {
var sqlStatList = data.Content;
if(sqlStatList==null) return;
var sqlStatTable = document.getElementById("SqlStatTable");
while (sqlStatTable.rows.length > 1) {
sqlStatTable.deleteRow(1);
}
for ( var i = 0; i < sqlStatList.length; i++) {
var sqlStat = sqlStatList[i];
var newRow = sqlStatTable.insertRow(-1);
newRow.insertCell(-1).innerHTML = i+1;
newRow.insertCell(-1).innerHTML = '<a target="_blank" href="sql-detail.html?sqlId=' + sqlStat.ID + '">' + subSqlString(sqlStat.SQL, 25) + '</a>';
// if (sqlStat.File)
// newRow.insertCell(-1).innerHTML = sqlStat.File;
// else
// newRow.insertCell(-1).innerHTML = '';
// if (sqlStat.Name)
// newRow.insertCell(-1).innerHTML = sqlStat.Name;
// else
// newRow.insertCell(-1).innerHTML = '';
newRow.insertCell(-1).innerHTML = sqlStat.ExecuteCount;
newRow.insertCell(-1).innerHTML = sqlStat.TotalTime;
//显示执行的时间比配置的均值时间慢的SQL链接
var lastSlowHtml = sqlStat.MaxTimespan;
if (sqlStat.LastSlowParameters!=null && sqlStat.LastSlowParameters.length>0) {
lastSlowHtml ='<a target="_blank" style="color:red" href="sql-detail.html?sqlId=' + sqlStat.ID + '">'+sqlStat.MaxTimespan+'</a>';
}
newRow.insertCell(-1).innerHTML = lastSlowHtml;
newRow.insertCell(-1).innerHTML = sqlStat.InTransactionCount;
newRow.insertCell(-1).innerHTML = sqlStat.ErrorCount;
newRow.insertCell(-1).innerHTML = sqlStat.EffectedRowCount;
newRow.insertCell(-1).innerHTML = sqlStat.FetchRowCount;
newRow.insertCell(-1).innerHTML = sqlStat.RunningCount;
newRow.insertCell(-1).innerHTML = sqlStat.ConcurrentMax;
// hiHtml += '<a href="#' + sqlStat.Histogram + '">ExecHistogram</a> |';
// hiHtml += '<a href="#' + sqlStat.FetchRowCountHistogram +
// '">FetchRow</a> | ';
// hiHtml += '<a href="#' + sqlStat.EffectedRowCountHistogram +
// '">UpdateCount</a> | ';
// hiHtml += '<a href="#' + sqlStat.ExecuteAndResultHoldTimeHistogram +
// '">ExecAndRsHold</a>';
newRow.insertCell(-1).innerHTML = '[' + sqlStat.Histogram + ']';
newRow.insertCell(-1).innerHTML = '[' + sqlStat.ExecuteAndResultHoldTimeHistogram + ']';
newRow.insertCell(-1).innerHTML = '[' + sqlStat.FetchRowCountHistogram + ']';
newRow.insertCell(-1).innerHTML = '[' + sqlStat.EffectedRowCountHistogram + ']';
}
}
}
}();
$(document).ready(function() {
druid.weburi.init();
});
@@ -1,46 +0,0 @@
function ajaxRequestForSqlInfo() {
var sessionId = getUrlVar("sessionId");
xmlHttpForConnectionInfo = getRequestObject();
sendRequest(xmlHttpForConnectionInfo, 'websession-' + sessionId + '.json', ajaxResponseForSqlInfo)
}
function ajaxResponseForSqlInfo() {
var stat = getJSONResponseContent(xmlHttpForConnectionInfo);
if (stat == null)
return;
changeInnerHtml("SESSIONID", stat.SESSIONID);
if (stat.Principal) {
changeInnerHtml("Principal", stat.Principal);
}
changeInnerHtml("CreateTime", stat.CreateTime);
changeInnerHtml("LastAccessTime", stat.LastAccessTime);
changeInnerHtml("UserAgent", stat.UserAgent);
changeInnerHtml("RemoteAddress", stat.RemoteAddress);
changeInnerHtml("RequestCount", stat.RequestCount);
changeInnerHtml("RequestTimeMillisTotal", stat.RequestTimeMillisTotal);
changeInnerHtml("RunningCount", stat.RunningCount);
changeInnerHtml("ConcurrentMax", stat.ConcurrentMax);
changeInnerHtml("JdbcExecuteCount", stat.JdbcExecuteCount);
changeInnerHtml("JdbcExecuteTimeMillis", stat.JdbcExecuteTimeMillis);
changeInnerHtml("JdbcCommitCount", stat.JdbcCommitCount);
changeInnerHtml("JdbcRollbackCount", stat.JdbcRollbackCount);
changeInnerHtml("JdbcFetchRowCount", stat.JdbcFetchRowCount);
changeInnerHtml("JdbcUpdateCount", stat.JdbcUpdateCount);
{
var html = '[';
html += '<a title="count of < 1 ms">' + stat.RequestInterval[0] + '</a>';
html += ', <a title="count of 1 - 10 ms">' + stat.RequestInterval[1] + '</a>';
html += ', <a title="count of 10 - 100 ms">' + stat.RequestInterval[2] + '</a>';
html += ', <a title="count of 100 - 1000 ms">' + stat.RequestInterval[3] + '</a>';
html += ', <a title="count of 1 - 10 s">' + stat.RequestInterval[4] + '</a>';
html += ', <a title="count of 10 - 100 s">' + stat.RequestInterval[5] + '</a>';
html += ', <a title="count of 100 - 1000 s">' + stat.RequestInterval[6] + '</a>';
html += ', <a title="count of 1000 - 10000 s">' + stat.RequestInterval[7] + '</a>';
html += ', <a title="count of > 10000 s">' + stat.RequestInterval[8] + '</a>';
html += ']';
changeInnerHtml("RequestInterval", html);
}
}
@@ -1,52 +0,0 @@
$.namespace("druid.websession");
druid.websession = function () {
return {
init : function() {
druid.common.buildHead(4);
druid.common.ajaxuri = 'websession.json?';
druid.common.handleAjaxResult = druid.websession.handleAjaxResult;
druid.common.ajaxRequestForBasicInfo();
setInterval("druid.common.ajaxRequestForBasicInfo();",5000);
},
handleAjaxResult : function(data) {
var statList = data.Content;
if(statList == null) return;
var sqlStatTable = document.getElementById("WebSessionStatTable");
while (sqlStatTable.rows.length > 1) {
sqlStatTable.deleteRow(1);
}
for (var i = 0; i < statList.length; i++) {
var stat = statList[i];
var newRow = sqlStatTable.insertRow(-1);
newRow.insertCell(-1).innerHTML = i+1;
newRow.insertCell(-1).innerHTML = '<a target="_blank" href="websession-detail.html?sessionId=' + stat.SESSIONID + '">' + stat.SESSIONID + '</a>';
if (stat.Principal) {
newRow.insertCell(-1).innerHTML = stat.Principal;
} else {
newRow.insertCell(-1).innerHTML = '';
}
newRow.insertCell(-1).innerHTML = stat.CreateTime;
newRow.insertCell(-1).innerHTML = stat.LastAccessTime;
newRow.insertCell(-1).innerHTML = stat.RemoteAddress;
newRow.insertCell(-1).innerHTML = stat.RequestCount;
newRow.insertCell(-1).innerHTML = stat.RequestTimeMillisTotal;
newRow.insertCell(-1).innerHTML = stat.RunningCount;
newRow.insertCell(-1).innerHTML = stat.ConcurrentMax;
newRow.insertCell(-1).innerHTML = stat.JdbcExecuteCount;
newRow.insertCell(-1).innerHTML = stat.JdbcExecuteTimeMillis;
newRow.insertCell(-1).innerHTML = stat.JdbcCommitCount;
newRow.insertCell(-1).innerHTML = stat.JdbcRollbackCount;
newRow.insertCell(-1).innerHTML = stat.JdbcFetchRowCount;
newRow.insertCell(-1).innerHTML = stat.JdbcUpdateCount;
}
}
}
}();
$(document).ready(function() {
druid.websession.init();
});
@@ -1,32 +0,0 @@
function ajaxRequestForSqlInfo() {
var uri = getUrlVar("uri");
xmlHttpForConnectionInfo = getRequestObject();
sendRequest(xmlHttpForConnectionInfo, 'weburi-' + encodeURI(uri) + '.json', ajaxResponseForSqlInfo)
}
function ajaxResponseForSqlInfo() {
var stat = getJSONResponseContent(xmlHttpForConnectionInfo);
if (stat == null)
return;
changeInnerHtml("URI", stat.URI);
changeInnerHtml("RequestCount", stat.RequestCount);
changeInnerHtml("RequestTimeMillis", stat.RequestTimeMillis);
changeInnerHtml("LastAccessTime", stat.LastAccessTime);
changeInnerHtml("RunningCount", stat.RunningCount);
changeInnerHtml("ConcurrentMax", stat.ConcurrentMax);
changeInnerHtml("JdbcExecuteCount", stat.JdbcExecuteCount);
changeInnerHtml("JdbcExecuteErrorCount", stat.JdbcExecuteErrorCount);
changeInnerHtml("JdbcExecutePeak", stat.JdbcExecutePeak);
changeInnerHtml("JdbcExecuteTimeMillis", stat.JdbcExecuteTimeMillis);
changeInnerHtml("JdbcCommitCount", stat.JdbcCommitCount);
changeInnerHtml("JdbcRollbackCount", stat.JdbcRollbackCount);
changeInnerHtml("JdbcFetchRowCount", stat.JdbcFetchRowCount);
changeInnerHtml("JdbcFetchRowPeak", stat.JdbcFetchRowPeak);
changeInnerHtml("JdbcUpdateCount", stat.JdbcUpdateCount);
changeInnerHtml("JdbcUpdatePeak", stat.JdbcUpdatePeak);
changeInnerHtml("JdbcPoolConnectionOpenCount", stat.JdbcPoolConnectionOpenCount);
changeInnerHtml("JdbcPoolConnectionCloseCount", stat.JdbcPoolConnectionCloseCount);
changeInnerHtml("JdbcResultSetOpenCount", stat.JdbcResultSetOpenCount);
changeInnerHtml("JdbcResultSetCloseCount", stat.JdbcResultSetCloseCount);
}
@@ -1,53 +0,0 @@
$.namespace("druid.weburi");
druid.weburi = function () {
return {
init : function() {
druid.common.buildHead(3);
druid.common.ajaxuri = 'weburi.json?';
druid.common.handleAjaxResult = druid.weburi.handleAjaxResult;
druid.common.setOrderBy("URI");
druid.common.ajaxRequestForBasicInfo();
setInterval("druid.common.ajaxRequestForBasicInfo();",5000);
},
handleAjaxResult : function(data) {
var statList = data.Content;
if(statList == null) return;
var sqlStatTable = document.getElementById("WebSessionStatTable");
while (sqlStatTable.rows.length > 1) {
sqlStatTable.deleteRow(1);
}
for (var i = 0; i < statList.length; i++) {
var stat = statList[i];
var newRow = sqlStatTable.insertRow(-1);
newRow.insertCell(-1).innerHTML = i+1;
newRow.insertCell(-1).innerHTML = '<a target="_blank" href="websession-detail.html?sessionId=' + stat.SESSIONID + '">' + stat.SESSIONID + '</a>';
if (stat.Principal) {
newRow.insertCell(-1).innerHTML = stat.Principal;
} else {
newRow.insertCell(-1).innerHTML = '';
}
newRow.insertCell(-1).innerHTML = stat.CreateTime;
newRow.insertCell(-1).innerHTML = stat.LastAccessTime;
newRow.insertCell(-1).innerHTML = stat.RemoteAddress;
newRow.insertCell(-1).innerHTML = stat.RequestCount;
newRow.insertCell(-1).innerHTML = stat.RequestTimeMillisTotal;
newRow.insertCell(-1).innerHTML = stat.RunningCount;
newRow.insertCell(-1).innerHTML = stat.ConcurrentMax;
newRow.insertCell(-1).innerHTML = stat.JdbcExecuteCount;
newRow.insertCell(-1).innerHTML = stat.JdbcExecuteTimeMillis;
newRow.insertCell(-1).innerHTML = stat.JdbcCommitCount;
newRow.insertCell(-1).innerHTML = stat.JdbcRollbackCount;
newRow.insertCell(-1).innerHTML = stat.JdbcFetchRowCount;
newRow.insertCell(-1).innerHTML = stat.JdbcUpdateCount;
}
}
}
}();
$(document).ready(function() {
druid.weburi.init();
});
@@ -1,100 +1,151 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Druid Spring Stat</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
<script src="js/spring-detail.js" type="text/javascript" charset="utf8"></script>
<script >
function init(){
ajaxRequestForSqlInfo();
var time3=setInterval("ajaxRequestForSqlInfo();",5000);
buildMenu();
buildFooter();
}
</script>
</head>
<body onload="init();">
<div id="main">
<br/>
<h2> Spring View</h2>
<br/>
<table cellpadding='5' cellspacing='1' width='99%'>
<tr>
<td class='td_lable' width='130'> Class</td>
<td id="Class"></td>
</tr>
<tr>
<td class='td_lable'> Method</td>
<td id="Method"></td>
</tr>
<tr>
<td class='td_lable'> ExecuteCount</td>
<td id="ExecuteCount"></td>
</tr>
<tr>
<td class='td_lable'> ExecuteErrorCount</td>
<td id="ExecuteErrorCount"></td>
</tr>
<tr>
<td class='td_lable'> ExecuteTimeMillis</td>
<td id="ExecuteTimeMillis"></td>
</tr>
<tr>
<td class='td_lable'> RunningCount</td>
<td id="RunningCount"></td>
</tr>
<tr>
<td class='td_lable'> ConcurrentMax</td>
<td id="ConcurrentMax"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteCount</td>
<td id="JdbcExecuteCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteErrorCount</td>
<td id="JdbcExecuteErrorCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteTimeMillis</td>
<td id="JdbcExecuteTimeMillis"></td>
</tr>
<tr>
<td class='td_lable'> JdbcCommitCount</td>
<td id="JdbcCommitCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcRollbackCount</td>
<td id="JdbcRollbackCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcFetchRowCount</td>
<td id="JdbcFetchRowCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcUpdateCount</td>
<td id="JdbcUpdateCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcPoolConnectionOpenCount</td>
<td id="JdbcPoolConnectionOpenCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcPoolConnectionCloseCount</td>
<td id="JdbcPoolConnectionCloseCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcResultSetOpenCount</td>
<td id="JdbcResultSetOpenCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcResultSetCloseCount</td>
<td id="JdbcResultSetCloseCount"></td>
</tr>
</table>
<br />
</div>
</body>
</html>
<head>
<title>Druid Spring Stat</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<link href='css/bootstrap.min.css' rel="stylesheet" />
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
</head>
<body>
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<div class="hero-unit" style="padding: 10px;">
<h3>
Spring View
</h3>
<table id="dataTable" class="table table-bordered" style="background-color: #fff">
<tr>
<td class='td_lable' width='130'> Class</td>
<td id="Class"></td>
</tr>
<tr>
<td class='td_lable'> Method</td>
<td id="Method"></td>
</tr>
<tr>
<td class='td_lable'> ExecuteCount</td>
<td id="ExecuteCount"></td>
</tr>
<tr>
<td class='td_lable'> ExecuteErrorCount</td>
<td id="ExecuteErrorCount"></td>
</tr>
<tr>
<td class='td_lable'> ExecuteTimeMillis</td>
<td id="ExecuteTimeMillis"></td>
</tr>
<tr>
<td class='td_lable'> RunningCount</td>
<td id="RunningCount"></td>
</tr>
<tr>
<td class='td_lable'> ConcurrentMax</td>
<td id="ConcurrentMax"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteCount</td>
<td id="JdbcExecuteCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteErrorCount</td>
<td id="JdbcExecuteErrorCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteTimeMillis</td>
<td id="JdbcExecuteTimeMillis"></td>
</tr>
<tr>
<td class='td_lable'> JdbcCommitCount</td>
<td id="JdbcCommitCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcRollbackCount</td>
<td id="JdbcRollbackCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcFetchRowCount</td>
<td id="JdbcFetchRowCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcUpdateCount</td>
<td id="JdbcUpdateCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcPoolConnectionOpenCount</td>
<td id="JdbcPoolConnectionOpenCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcPoolConnectionCloseCount</td>
<td id="JdbcPoolConnectionCloseCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcResultSetOpenCount</td>
<td id="JdbcResultSetOpenCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcResultSetCloseCount</td>
<td id="JdbcResultSetCloseCount"></td>
</tr>
</table>
<div class="container">
<a class="btn btn-primary" href="javascript:window.close();">Close</a>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$.namespace("druid.springdetail");
druid.springdetail = function () {
var clazz = druid.common.getUrlVar("class");
var method = druid.common.getUrlVar("method");
return {
init : function() {
druid.common.buildHead(5);
this.ajaxRequestForBasicInfo();
},
ajaxRequestForBasicInfo : function() {
$.ajax({
type: 'POST',
url: 'spring-detail.json?class=' + clazz + '&method=' + method,
success: function(data) {
var stat = data.Content;
if (stat == null)
return;
$("#Class").text(stat.Class)
$("#Method").text(stat.Method)
$("#ExecuteCount").text(stat.ExecuteCount)
$("#ExecuteErrorCount").text(stat.ExecuteErrorCount)
$("#ExecuteTimeMillis").text(stat.ExecuteTimeMillis)
$("#RunningCount").text(stat.RunningCount)
$("#ConcurrentMax").text(stat.ConcurrentMax)
$("#JdbcExecuteCount").text(stat.JdbcExecuteCount)
$("#JdbcExecuteErrorCount").text(stat.JdbcExecuteErrorCount)
$("#JdbcExecuteTimeMillis").text(stat.JdbcExecuteTimeMillis)
$("#JdbcCommitCount").text(stat.JdbcCommitCount)
$("#JdbcRollbackCount").text(stat.JdbcRollbackCount)
$("#JdbcFetchRowCount").text(stat.JdbcFetchRowCount)
$("#JdbcUpdateCount").text(stat.JdbcUpdateCount)
$("#JdbcPoolConnectionOpenCount").text(stat.JdbcPoolConnectionOpenCount)
$("#JdbcPoolConnectionCloseCount").text(stat.JdbcPoolConnectionCloseCount)
$("#JdbcResultSetOpenCount").text(stat.JdbcResultSetOpenCount)
$("#JdbcResultSetCloseCount").text(stat.JdbcResultSetCloseCount)
},
dataType: "json"
});
}
}
}();
$(document).ready(function() {
druid.springdetail.init();
});
</script>
</body>
</html>
@@ -7,7 +7,6 @@
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
<script src="js/spring.js" type="text/javascript" charset="utf8"></script>
</head>
<body>
<div class="container-fluid">
@@ -17,7 +16,7 @@
<h3>
Spring Stat
</h3>
<table class="table table-bordered table-striped responsive-utilities">
<table id="dataTable" class="table table-bordered table-striped responsive-utilities">
<thead>
<tr>
<th class="td_lable">N--</th>
@@ -35,10 +34,62 @@
<th class="td_lable" width="80"><a id="th-JdbcUpdateCount" href="javascript:void(0)" onclick="druid.common.setOrderBy('JdbcUpdateCount');">Jdbc Update</a></th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$.namespace("druid.spring");
druid.spring = function () {
return {
init : function() {
druid.common.buildHead(5);
druid.common.ajaxuri = 'spring.json?';
druid.common.handleAjaxResult = druid.spring.handleAjaxResult;
druid.common.ajaxRequestForBasicInfo();
setInterval("druid.common.ajaxRequestForBasicInfo();",5000);
},
handleAjaxResult : function(data) {
var statList = data.Content;
if(statList==null) return;
var sqlStatTable = document.getElementById("dataTable");
while (sqlStatTable.rows.length > 1) {
sqlStatTable.deleteRow(1);
}
var html = "";
for ( var i = 0; i < statList.length; i++) {
var stat = statList[i];
var newRow = sqlStatTable.insertRow(-1);
html += "<tr>";
html += "<td>" + (i + 1) + "</td>";
html += "<td>" + stat.Class + "</td>";
html += "<td>" + '<a target="_blank" href="spring-detail.html?class=' + stat.Class + '&method=' + stat.Method + '">' + stat.Method + '</a>' + "</td>";
html += "<td>" + stat.ExecuteCount + "</td>";
html += "<td>" + stat.ExecuteTimeMillis + "</td>";
html += "<td>" + stat.RunningCount + "</td>";
html += "<td>" + stat.ConcurrentMax + "</td>";
html += "<td>" + stat.JdbcExecuteCount + "</td>";
html += "<td>" + stat.JdbcExecuteTimeMillis + "</td>";
html += "<td>" + stat.JdbcCommitCount + "</td>";
html += "<td>" + stat.JdbcRollbackCount + "</td>";
html += "<td>" + stat.JdbcFetchRowCount + "</td>";
html += "<td>" + stat.JdbcUpdateCount + "</td>";
html += "</tr>";
}
$("#dataTable tbody").html(html);
druid.common.stripes();
}
}
}();
$(document).ready(function() {
druid.spring.init();
});
</script>
</body>
</html>
@@ -1,105 +1,156 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
<script src="js/sql-detail.js" type="text/javascript" charset="utf8"></script>
<script >
function init(){
ajaxRequestForSqlInfo();
var time3=setInterval("ajaxRequestForSqlInfo();",5000);
buildMenu();
buildFooter();
}
</script>
</head>
<body onload="init();">
<br/>
<div id="main">
<br/>
<h2> FULL SQL</h2>
<h4 id="fullSql"></h4>
<h2> Format View:</h2>
<textarea style='width:99%;height:120px;;border:1px #A8C7CE solid;line-height:20px;font-size:12px;' id="formattedSql">
</textarea>
<br/>
<br/>
<h2> Parse View:</h2>
<table cellpadding='5' cellspacing='1' width='99%'>
<tr>
<td class='td_lable' width='130'> Tables</td>
<td id="parsed.table"></td>
</tr>
<tr>
<td class='td_lable'> Fields</td>
<td id="parsed.fields"></td>
</tr>
<tr> <td class='td_lable'> Coditions</td>
<td id="parsed.conditions"> </td>
</tr>
<tr>
<td class='td_lable'> Relationships</td>
<td id="parsed.relationships"></td>
</tr>
<tr>
<td class='td_lable'> OrderByColumns</td>
<td id="parsed.orderbycolumns"></td>
</tr>
</table>
<br />
<h2> LastSlow View:</h2>
<table cellpadding='5' cellspacing='1' width='99%'>
<tr>
<td class='td_lable' width='130'>MaxTimespan</td>
<td id="MaxTimespan"></td>
</tr>
<tr>
<td class='td_lable' width='130'>MaxTimespanOccurTime</td>
<td id="MaxTimespanOccurTime"></td>
</tr>
<tr>
<td class='td_lable' width='130'>LastSlowParameters</td>
<td id="LastSlowParameters"></td>
</tr>
</table>
<br/>
<h2> Last Error View:</h2>
<table cellpadding='5' cellspacing='1' width='99%'>
<tr>
<td class='td_lable' width='130'>LastErrorMessage</td>
<td id="LastErrorMessage"></td>
</tr>
<tr>
<td class='td_lable'>LastErrorClass</td>
<td id="LastErrorClass"></td>
</tr>
<tr>
<td class='td_lable'>LastErrorTime</td>
<td id="LastErrorTime"></td>
</tr>
<tr>
<td class='td_lable'>LastErrorStackTrace</td>
<td id="LastErrorStackTrace"></td>
</tr>
</table>
<br/>
<h2>Batch View:</h2>
<table cellpadding='5' cellspacing='1' width='99%'>
<tr>
<td class='td_lable' width='130'>BatchSizeMax</td>
<td id="BatchSizeMax"></td>
</tr>
<tr>
<td class='td_lable'>BatchSizeTotal</td>
<td id="BatchSizeTotal"></td>
</tr>
</table>
</div>
</body>
<head>
<title>Druid SQL Stat</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<link href='css/bootstrap.min.css' rel="stylesheet" />
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
</head>
<body>
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<div class="hero-unit" style="padding: 10px;">
<h3>
FULL SQL
</h3>
<h5 id="fullSql"></h5>
<h2> Format View:</h2>
<textarea style='width:99%;height:120px;;border:1px #A8C7CE solid;line-height:20px;font-size:12px;' id="formattedSql">
</textarea>
<br/>
<br/>
<h3> Parse View:</h3>
<table class="table table-bordered" style="background-color: #fff">
<tr>
<td class='td_lable' width='130'> Tables</td>
<td id="parsedtable"></td>
</tr>
<tr>
<td class='td_lable'> Fields</td>
<td id="parsedfields"></td>
</tr>
<tr>
<td class='td_lable'> Coditions</td>
<td id="parsedconditions"> </td>
</tr>
<tr>
<td class='td_lable'> Relationships</td>
<td id="parsedrelationships"></td>
</tr>
<tr>
<td class='td_lable'> OrderByColumns</td>
<td id="parsedorderbycolumns"></td>
</tr>
</table>
<br />
<h3> LastSlow View:</h3>
<table class="table table-bordered" style="background-color: #fff">
<tr>
<td class='td_lable' width='130'>MaxTimespan</td>
<td id="MaxTimespan"></td>
</tr>
<tr>
<td class='td_lable' width='130'>MaxTimespanOccurTime</td>
<td id="MaxTimespanOccurTime"></td>
</tr>
<tr>
<td class='td_lable' width='130'>LastSlowParameters</td>
<td id="LastSlowParameters"></td>
</tr>
</table>
<br/>
<h3> Last Error View:</h3>
<table class="table table-bordered" style="background-color: #fff">
<tr>
<td class='td_lable' width='130'>LastErrorMessage</td>
<td id="LastErrorMessage"></td>
</tr>
<tr>
<td class='td_lable'>LastErrorClass</td>
<td id="LastErrorClass"></td>
</tr>
<tr>
<td class='td_lable'>LastErrorTime</td>
<td id="LastErrorTime"></td>
</tr>
<tr>
<td class='td_lable'>LastErrorStackTrace</td>
<td id="LastErrorStackTrace"></td>
</tr>
</table>
<br/>
<h3>Batch View:</h3>
<table class="table table-bordered" style="background-color: #fff">
<tr>
<td class='td_lable' width='130'>BatchSizeMax</td>
<td id="BatchSizeMax"></td>
</tr>
<tr>
<td class='td_lable'>BatchSizeTotal</td>
<td id="BatchSizeTotal"></td>
</tr>
</table>
<div class="container">
<a class="btn btn-primary" href="javascript:window.close();">Close</a>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$.namespace("druid.sqlDetail");
druid.sqlDetail = function () {
var sqlId = druid.common.getUrlVar("sqlId");
return {
init : function() {
druid.common.buildHead(2);
this.ajaxRequestForBasicInfo();
},
ajaxRequestForBasicInfo : function() {
$.ajax({
type: 'POST',
url: 'sql-' + sqlId + '.json',
success: function(data) {
var sqlInfo = data.Content;
if (sqlInfo == null)
return;
$("#fullSql").text(sqlInfo.SQL)
$("#formattedSql").text(sqlInfo.formattedSql)
$("#parsedtable").text(sqlInfo.parsedTable)
$("#parsedfields").text(sqlInfo.parsedFields)
$("#parsedconditions").text(sqlInfo.parsedConditions)
$("#parsedrelationships").text(sqlInfo.parsedRelationships)
$("#parsedorderbycolumns").text(sqlInfo.parsedOrderbycolumns)
$("#MaxTimespanOccurTime").text(sqlInfo.MaxTimespanOccurTime)
$("#LastSlowParameters").text(sqlInfo.LastSlowParameters)
$("#MaxTimespan").text(sqlInfo.MaxTimespan)
$("#LastErrorMessage").text(sqlInfo.LastErrorMessage)
$("#LastErrorClass").text(sqlInfo.LastErrorClass)
$("#LastErrorTime").text(sqlInfo.LastErrorTime)
$("#LastErrorStackTrace").text(sqlInfo.LastErrorStackTrace)
$("#BatchSizeMax").text(sqlInfo.BatchSizeMax)
$("#BatchSizeTotal").text(sqlInfo.BatchSizeTotal)
},
dataType: "json"
});
}
}
}();
$(document).ready(function() {
druid.sqlDetail.init();
});
</script>
</body>
</html>
@@ -7,7 +7,6 @@
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
<script src="js/sql.js" type="text/javascript" charset="utf8"></script>
</head>
<body>
<div class="container-fluid">
@@ -17,7 +16,7 @@
<h3>
SQL Stat
</h3>
<table class="table table-bordered table-striped responsive-utilities">
<table id="dataTable" class="table table-bordered table-striped responsive-utilities">
<thead>
<tr>
<th class="td_lable">N--</th>
@@ -69,10 +68,70 @@
</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$.namespace("druid.weburi");
druid.weburi = function () {
return {
init : function() {
druid.common.buildHead(2);
druid.common.ajaxuri = 'sql.json?';
druid.common.handleAjaxResult = druid.weburi.handleAjaxResult;
druid.common.setOrderBy("SQL");
druid.common.ajaxRequestForBasicInfo();
setInterval("druid.common.ajaxRequestForBasicInfo();",5000);
},
handleAjaxResult : function(data) {
var sqlStatList = data.Content;
if(sqlStatList==null) return;
var sqlStatTable = document.getElementById("dataTable");
while (sqlStatTable.rows.length > 1) {
sqlStatTable.deleteRow(1);
}
var html = "";
for ( var i = 0; i < sqlStatList.length; i++) {
var stat = sqlStatList[i];
var newRow = sqlStatTable.insertRow(-1);
html += "<tr>";
html += "<td>" + (i + 1) + "</td>";
html += "<td>" + '<a target="_blank" href="sql-detail.html?sqlId=' + stat.ID + '">' + druid.common.subSqlString(stat.SQL, 25) + '</a>' + "</td>";
html += "<td>" + stat.ExecuteCount + "</td>";
html += "<td>" + stat.TotalTime + "</td>";
var lastSlowHtml = stat.MaxTimespan;
if (stat.LastSlowParameters!=null && stat.LastSlowParameters.length>0) {
lastSlowHtml ='<a target="_blank" style="color:red" href="sql-detail.html?sqlId=' + stat.ID + '">'+stat.MaxTimespan+'</a>';
}
html += "<td>" + lastSlowHtml + "</td>";
html += "<td>" + stat.InTransactionCount + "</td>";
html += "<td>" + stat.ErrorCount + "</td>";
html += "<td>" + stat.EffectedRowCount + "</td>";
html += "<td>" + stat.FetchRowCount + "</td>";
html += "<td>" + stat.RunningCount + "</td>";
html += "<td>" + stat.ConcurrentMax + "</td>";
html += "<td>" + '[' + stat.Histogram + ']' + "</td>";
html += "<td>" + '[' + stat.ExecuteAndResultHoldTimeHistogram + ']' + "</td>";
html += "<td>" + '[' + stat.FetchRowCountHistogram + ']' + "</td>";
html += "<td>" + '[' + stat.EffectedRowCountHistogram + ']' + "</td>";
html += "</tr>";
}
$("#dataTable tbody").html(html);
druid.common.stripes();
}
}
}();
$(document).ready(function() {
druid.weburi.init();
});
</script>
</body>
</html>
@@ -1,92 +1,152 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Druid Web Session Stat</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
<script src="js/websession-detail.js" type="text/javascript" charset="utf8"></script>
<script >
function init(){
ajaxRequestForSqlInfo();
var time3=setInterval("ajaxRequestForSqlInfo();",5000);
buildMenu();
buildFooter();
}
</script>
</head>
<body onload="init();">
<div id="main">
<br/>
<h2> Web Session View</h2>
<br/>
<table cellpadding='5' cellspacing='1' width='99%'>
<tr>
<td class='td_lable' width='130'> SESSIONID</td>
<td id="SESSIONID"></td>
</tr>
<tr>
<td class='td_lable'> UserAgent</td>
<td id="UserAgent"></td>
</tr>
<tr>
<td class='td_lable'> CreateTime</td>
<td id="CreateTime"></td>
</tr>
<tr>
<td class='td_lable'> LastAccessTime</td>
<td id="LastAccessTime"></td>
</tr>
<tr>
<td class='td_lable'> RemoteAddress</td>
<td id="RemoteAddress"></td>
</tr>
<tr>
<td class='td_lable'> RequestCount</td>
<td id="RequestCount"></td>
</tr>
<tr>
<td class='td_lable'> RequestTimeMillisTotal</td>
<td id="RequestTimeMillisTotal"></td>
</tr>
<tr>
<td class='td_lable'> RequestInterval</td>
<td id="RequestInterval"></td>
</tr>
<tr>
<td class='td_lable'> RunningCount</td>
<td id="RunningCount"></td>
</tr>
<tr>
<td class='td_lable'> ConcurrentMax</td>
<td id="ConcurrentMax"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteCount</td>
<td id="JdbcExecuteCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteTimeMillis</td>
<td id="JdbcExecuteTimeMillis"></td>
</tr>
<tr>
<td class='td_lable'> JdbcCommitCount</td>
<td id="JdbcCommitCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcRollbackCount</td>
<td id="JdbcRollbackCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcFetchRowCount</td>
<td id="JdbcFetchRowCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcUpdateCount</td>
<td id="JdbcUpdateCount"></td>
</tr>
</table>
<br />
</div>
</body>
<head>
<title>Druid Web Session Stat</title>
<link href='css/bootstrap.min.css' rel="stylesheet" />
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
</head>
<body>
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<div class="hero-unit" style="padding: 10px;">
<h3>
Web Session View
</h3>
<table id="dataTable" class="table table-bordered" style="background-color: #fff">
<tr>
<td class='td_lable' width='130'> SESSIONID</td>
<td id="SESSIONID"></td>
</tr>
<tr>
<td class='td_lable'> UserAgent</td>
<td id="UserAgent"></td>
</tr>
<tr>
<td class='td_lable'> CreateTime</td>
<td id="CreateTime"></td>
</tr>
<tr>
<td class='td_lable'> LastAccessTime</td>
<td id="LastAccessTime"></td>
</tr>
<tr>
<td class='td_lable'> RemoteAddress</td>
<td id="RemoteAddress"></td>
</tr>
<tr>
<td class='td_lable'> RequestCount</td>
<td id="RequestCount"></td>
</tr>
<tr>
<td class='td_lable'> RequestTimeMillisTotal</td>
<td id="RequestTimeMillisTotal"></td>
</tr>
<tr>
<td class='td_lable'> RequestInterval</td>
<td id="RequestInterval"></td>
</tr>
<tr>
<td class='td_lable'> RunningCount</td>
<td id="RunningCount"></td>
</tr>
<tr>
<td class='td_lable'> ConcurrentMax</td>
<td id="ConcurrentMax"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteCount</td>
<td id="JdbcExecuteCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteTimeMillis</td>
<td id="JdbcExecuteTimeMillis"></td>
</tr>
<tr>
<td class='td_lable'> JdbcCommitCount</td>
<td id="JdbcCommitCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcRollbackCount</td>
<td id="JdbcRollbackCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcFetchRowCount</td>
<td id="JdbcFetchRowCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcUpdateCount</td>
<td id="JdbcUpdateCount"></td>
</tr>
</table>
<div class="container">
<a class="btn btn-primary" href="javascript:window.close();">Close</a>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$.namespace("druid.index");
druid.index = function () {
var sessionId = druid.common.getUrlVar("sessionId");
return {
init : function() {
druid.common.buildHead(4);
this.ajaxRequestForBasicInfo();
},
ajaxRequestForBasicInfo : function() {
$.ajax({
type: 'POST',
url: 'websession-' + sessionId + '.json',
success: function(data) {
if (data.Content == null)
return;
$("#SESSIONID").text(data.Content.SESSIONID)
if (data.Content.Principal) {
$("#Principal").text(data.Content.Principal)
}
$("#CreateTime").text(data.Content.CreateTime)
$("#LastAccessTime").text(data.Content.LastAccessTime)
$("#UserAgent").text(data.Content.UserAgent)
$("#RemoteAddress").text(data.Content.RemoteAddress)
$("#RequestCount").text(data.Content.RequestCount)
$("#RequestTimeMillisTotal").text(data.Content.RequestTimeMillisTotal)
$("#RunningCount").text(data.Content.RunningCount)
$("#ConcurrentMax").text(data.Content.ConcurrentMax)
$("#JdbcExecuteCount").text(data.Content.JdbcExecuteCount)
$("#JdbcExecuteTimeMillis").text(data.Content.JdbcExecuteTimeMillis)
$("#JdbcCommitCount").text(data.Content.JdbcCommitCount)
$("#JdbcRollbackCount").text(data.Content.JdbcRollbackCount)
$("#JdbcFetchRowCount").text(data.Content.JdbcFetchRowCount)
$("#JdbcUpdateCount").text(data.Content.JdbcUpdateCount)
var html = '[';
html += '<a title="count of < 1 ms">' + data.Content.RequestInterval[0] + '</a>';
html += ', <a title="count of 1 - 10 ms">' + data.Content.RequestInterval[1] + '</a>';
html += ', <a title="count of 10 - 100 ms">' + data.Content.RequestInterval[2] + '</a>';
html += ', <a title="count of 100 - 1000 ms">' + data.Content.RequestInterval[3] + '</a>';
html += ', <a title="count of 1 - 10 s">' + data.Content.RequestInterval[4] + '</a>';
html += ', <a title="count of 10 - 100 s">' + data.Content.RequestInterval[5] + '</a>';
html += ', <a title="count of 100 - 1000 s">' + data.Content.RequestInterval[6] + '</a>';
html += ', <a title="count of 1000 - 10000 s">' + data.Content.RequestInterval[7] + '</a>';
html += ', <a title="count of > 10000 s">' + data.Content.RequestInterval[8] + '</a>';
html += ']';
$("#RequestInterval").html(html);
},
dataType: "json"
});
}
}
}();
$(document).ready(function() {
druid.index.init();
});
</script>
</body>
</html>
@@ -7,7 +7,6 @@
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
<script src="js/websession.js" type="text/javascript" charset="utf8"></script>
</head>
<body>
<div class="container-fluid">
@@ -17,7 +16,7 @@
<h3>
Web Session Stat
</h3>
<table class="table table-bordered table-striped responsive-utilities">
<table id="dataTable" class="table table-bordered table-striped responsive-utilities">
<thead>
<tr>
<th class="td_lable">N--</th>
@@ -37,11 +36,70 @@
<th class="td_lable" width="80"><a id="th-JdbcFetchRowCount" href="javascript:void(0)" onclick="druid.common.setOrderBy('JdbcFetchRowCount');">Jdbc FetchRow</a></th>
<th class="td_lable" width="80"><a id="th-JdbcUpdateCount" href="javascript:void(0)" onclick="druid.common.setOrderBy('JdbcUpdateCount');">Jdbc Update</a></th>
</tr>
</thead>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$.namespace("druid.websession");
druid.websession = function () {
return {
init : function() {
druid.common.buildHead(4);
druid.common.ajaxuri = 'websession.json?';
druid.common.handleAjaxResult = druid.websession.handleAjaxResult;
druid.common.ajaxRequestForBasicInfo();
setInterval("druid.common.ajaxRequestForBasicInfo();",5000);
},
handleAjaxResult : function(data) {
var statList = data.Content;
if(statList == null) return;
var sqlStatTable = document.getElementById("dataTable");
while (sqlStatTable.rows.length > 1) {
sqlStatTable.deleteRow(1);
}
var html = "";
for ( var i = 0; i < statList.length; i++) {
var stat = statList[i];
var newRow = sqlStatTable.insertRow(-1);
html += "<tr>";
html += "<td>" + (i + 1) + "</td>";
html += "<td>" + '<a target="_blank" href="websession-detail.html?sessionId=' + stat.SESSIONID + '">' + stat.SESSIONID + '</a>';
if (stat.Principal) {
html += "<td>" + stat.Principal + "</td>";
} else {
html += "<td></td>";
}
html += "<td>" + stat.CreateTime + "</td>";
html += "<td>" + stat.LastAccessTime + "</td>";
html += "<td>" + stat.RemoteAddress + "</td>";
html += "<td>" + stat.RequestCount + "</td>";
html += "<td>" + stat.RequestTimeMillisTotal + "</td>";
html += "<td>" + stat.RunningCount + "</td>";
html += "<td>" + stat.ConcurrentMax + "</td>";
html += "<td>" + stat.JdbcExecuteCount + "</td>";
html += "<td>" + stat.JdbcExecuteTimeMillis + "</td>";
html += "<td>" + stat.JdbcCommitCount + "</td>";
html += "<td>" + stat.JdbcRollbackCount + "</td>";
html += "<td>" + stat.JdbcFetchRowCount + "</td>";
html += "<td>" + stat.JdbcUpdateCount + "</td>";
html += "</tr>";
}
$("#dataTable tbody").html(html);
druid.common.stripes();
}
}
}();
$(document).ready(function() {
druid.websession.init();
});
</script>
</body>
</html>
@@ -1,108 +1,158 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Druid Web URI Stat</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
<script src="js/weburi-detail.js" type="text/javascript" charset="utf8"></script>
<script >
function init(){
ajaxRequestForSqlInfo();
var time3=setInterval("ajaxRequestForSqlInfo();",5000);
buildMenu();
buildFooter();
}
</script>
</head>
<body onload="init();">
<div id="main">
<br/>
<h2> Web URI View</h2>
<br/>
<table cellpadding='5' cellspacing='1' width='99%'>
<tr>
<td class='td_lable' width='130'> URI</td>
<td id="URI"></td>
</tr>
<tr>
<td class='td_lable'> RequestCount</td>
<td id="RequestCount"></td>
</tr>
<tr>
<td class='td_lable'> RequestTimeMillis</td>
<td id="RequestTimeMillis"></td>
</tr>
<tr>
<td class='td_lable'> LastAccessTime</td>
<td id="LastAccessTime"></td>
</tr>
<tr>
<td class='td_lable'> RunningCount</td>
<td id="RunningCount"></td>
</tr>
<tr>
<td class='td_lable'> ConcurrentMax</td>
<td id="ConcurrentMax"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteCount</td>
<td id="JdbcExecuteCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteErrorCount</td>
<td id="JdbcExecuteErrorCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecutePeak</td>
<td id="JdbcExecutePeak"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteTimeMillis</td>
<td id="JdbcExecuteTimeMillis"></td>
</tr>
<tr>
<td class='td_lable'> JdbcCommitCount</td>
<td id="JdbcCommitCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcRollbackCount</td>
<td id="JdbcRollbackCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcFetchRowCount</td>
<td id="JdbcFetchRowCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcFetchRowPeak</td>
<td id="JdbcFetchRowPeak"></td>
</tr>
<tr>
<td class='td_lable'> JdbcUpdateCount</td>
<td id="JdbcUpdateCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcUpdatePeak</td>
<td id="JdbcUpdatePeak"></td>
</tr>
<tr>
<td class='td_lable'> JdbcPoolConnectionOpenCount</td>
<td id="JdbcPoolConnectionOpenCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcPoolConnectionCloseCount</td>
<td id="JdbcPoolConnectionCloseCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcResultSetOpenCount</td>
<td id="JdbcResultSetOpenCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcResultSetCloseCount</td>
<td id="JdbcResultSetCloseCount"></td>
</tr>
</table>
<br />
</div>
</body>
<head>
<title>Druid Web URI Stat</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<link href='css/bootstrap.min.css' rel="stylesheet" />
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
</head>
<body>
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<div class="hero-unit" style="padding: 10px;">
<h3>
Web URI View
</h3>
<table id="dataTable" class="table table-bordered" style="background-color: #fff">
<tr>
<td class='td_lable' width='130'> URI</td>
<td id="URI"></td>
</tr>
<tr>
<td class='td_lable'> RequestCount</td>
<td id="RequestCount"></td>
</tr>
<tr>
<td class='td_lable'> RequestTimeMillis</td>
<td id="RequestTimeMillis"></td>
</tr>
<tr>
<td class='td_lable'> LastAccessTime</td>
<td id="LastAccessTime"></td>
</tr>
<tr>
<td class='td_lable'> RunningCount</td>
<td id="RunningCount"></td>
</tr>
<tr>
<td class='td_lable'> ConcurrentMax</td>
<td id="ConcurrentMax"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteCount</td>
<td id="JdbcExecuteCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteErrorCount</td>
<td id="JdbcExecuteErrorCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecutePeak</td>
<td id="JdbcExecutePeak"></td>
</tr>
<tr>
<td class='td_lable'> JdbcExecuteTimeMillis</td>
<td id="JdbcExecuteTimeMillis"></td>
</tr>
<tr>
<td class='td_lable'> JdbcCommitCount</td>
<td id="JdbcCommitCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcRollbackCount</td>
<td id="JdbcRollbackCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcFetchRowCount</td>
<td id="JdbcFetchRowCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcFetchRowPeak</td>
<td id="JdbcFetchRowPeak"></td>
</tr>
<tr>
<td class='td_lable'> JdbcUpdateCount</td>
<td id="JdbcUpdateCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcUpdatePeak</td>
<td id="JdbcUpdatePeak"></td>
</tr>
<tr>
<td class='td_lable'> JdbcPoolConnectionOpenCount</td>
<td id="JdbcPoolConnectionOpenCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcPoolConnectionCloseCount</td>
<td id="JdbcPoolConnectionCloseCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcResultSetOpenCount</td>
<td id="JdbcResultSetOpenCount"></td>
</tr>
<tr>
<td class='td_lable'> JdbcResultSetCloseCount</td>
<td id="JdbcResultSetCloseCount"></td>
</tr>
</table>
<div class="container">
<a class="btn btn-primary" href="javascript:window.close();">Close</a>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$.namespace("druid.weburi");
druid.weburi = function () {
var uri = druid.common.getUrlVar("uri");
return {
init : function() {
druid.common.buildHead(3);
this.ajaxRequestForBasicInfo();
},
ajaxRequestForBasicInfo : function() {
$.ajax({
type: 'POST',
url: 'weburi-' + encodeURI(uri) + '.json',
success: function(data) {
if (data.Content == null)
return;
$("#URI").text(data.Content.URI)
$("#RequestCount").text(data.Content.RequestCount)
$("#RequestTimeMillis").text(data.Content.RequestTimeMillis)
$("#LastAccessTime").text(data.Content.LastAccessTime)
$("#RunningCount").text(data.Content.RunningCount)
$("#ConcurrentMax").text(data.Content.ConcurrentMax)
$("#JdbcExecuteCount").text(data.Content.JdbcExecuteCount)
$("#JdbcExecuteErrorCount").text(data.Content.JdbcExecuteErrorCount)
$("#JdbcExecutePeak").text(data.Content.JdbcExecutePeak)
$("#JdbcExecuteTimeMillis").text(data.Content.JdbcExecuteTimeMillis)
$("#JdbcCommitCount").text(data.Content.JdbcCommitCount)
$("#JdbcRollbackCount").text(data.Content.JdbcRollbackCount)
$("#JdbcFetchRowCount").text(data.Content.JdbcFetchRowCount)
$("#JdbcFetchRowPeak").text(data.Content.JdbcFetchRowPeak)
$("#JdbcUpdateCount").text(data.Content.JdbcUpdateCount)
$("#JdbcUpdatePeak").text(data.Content.JdbcUpdatePeak)
$("#JdbcPoolConnectionOpenCount").text(data.Content.JdbcPoolConnectionOpenCount)
$("#JdbcPoolConnectionCloseCount").text(data.Content.JdbcPoolConnectionCloseCount)
$("#JdbcResultSetOpenCount").text(data.Content.JdbcResultSetOpenCount)
$("#JdbcResultSetCloseCount").text(data.Content.JdbcResultSetCloseCount)
},
dataType: "json"
});
}
}
}();
$(document).ready(function() {
druid.weburi.init();
});
</script>
</body>
</html>
@@ -7,7 +7,6 @@
<link href="css/style.css" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script src="js/common.js" type="text/javascript" charset="utf8"></script>
<script src="js/weburi.js" type="text/javascript" charset="utf8"></script>
</head>
<body>
<div class="container-fluid">
@@ -17,7 +16,7 @@
<h3>
Web URI Stat
</h3>
<table class="table table-bordered table-striped responsive-utilities">
<table id="dataTable" class="table table-bordered responsive-utilities">
<thead>
<tr>
<th class="td_lable">N--</th>
@@ -34,10 +33,62 @@
<th class="td_lable" width="50"><a id="th-JdbcUpdateCount" href="javascript:void(0)" onclick="druid.common.setOrderBy('JdbcUpdateCount');">Jdbc Update</a></th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$.namespace("druid.weburi");
druid.weburi = function () {
return {
init : function() {
druid.common.buildHead(3);
druid.common.ajaxuri = 'weburi.json?';
druid.common.handleAjaxResult = druid.weburi.handleAjaxResult;
druid.common.setOrderBy("URI");
druid.common.ajaxRequestForBasicInfo();
setInterval("druid.common.ajaxRequestForBasicInfo();",5000);
},
handleAjaxResult : function(data) {
var statList = data.Content;
if(statList == null) return;
var sqlStatTable = document.getElementById("dataTable");
while (sqlStatTable.rows.length > 1) {
sqlStatTable.deleteRow(1);
}
var html = "";
for ( var i = 0; i < statList.length; i++) {
var stat = statList[i];
var newRow = sqlStatTable.insertRow(-1);
html += "<tr>";
html += "<td>" + (i + 1) + "</td>";
html += "<td>" + '<a target="_blank" href="weburi-detail.html?uri='+ encodeURI(stat.URI) + '">' + druid.common.subSqlString(stat.URI, 64) + '</a>' + "</td>";
html += "<td>" + stat.RequestCount + "</td>";
html += "<td>" + stat.RequestTimeMillis + "</td>";
html += "<td>" + stat.RunningCount + "</td>";
html += "<td>" + stat.ConcurrentMax + "</td>";
html += "<td>" + stat.JdbcExecuteCount + "</td>";
html += "<td>" + stat.JdbcExecuteTimeMillis + "</td>";
html += "<td>" + stat.JdbcCommitCount + "</td>";
html += "<td>" + stat.JdbcRollbackCount + "</td>";
html += "<td>" + stat.JdbcFetchRowCount + "</td>";
html += "<td>" + stat.JdbcUpdateCount + "</td>";
html += "</tr>";
}
$("#dataTable tbody").html(html);
druid.common.stripes();
}
}
}();
$(document).ready(function() {
druid.weburi.init();
});
</script>
</body>
</html>