mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
StatViewServlet add datasource stat property
This commit is contained in:
@@ -149,7 +149,6 @@ public class StatViewServlet extends HttpServlet {
|
||||
content.append("<td class='td_lable'>Fields</td>");
|
||||
content.append("<td>" + visitor.getColumns() + "</td>");
|
||||
content.append("</tr>");
|
||||
|
||||
content.append("<tr>");
|
||||
content.append("<td class='td_lable'>Coditions</td>");
|
||||
content.append("<td>" + visitor.getConditions() + "</td>");
|
||||
@@ -159,18 +158,22 @@ public class StatViewServlet extends HttpServlet {
|
||||
content.append("<td class='td_lable'>Relationships</td>");
|
||||
content.append("<td>" + visitor.getRelationships() + "</td>");
|
||||
content.append("</tr>");
|
||||
|
||||
content.append("<tr>");
|
||||
content.append("<td class='td_lable'>OrderByColumns</td>");
|
||||
content.append("<td>" + visitor.getOrderByColumns() + "</td>");
|
||||
content.append("</tr>");
|
||||
|
||||
content.append("</table>");
|
||||
|
||||
content.append("<br>");
|
||||
content.append("<p>API:</p>");
|
||||
content.append("<p>");
|
||||
content.append("SQLStatementParser parser = new SQLStatementParser(sqlStat.getSql());</br>");
|
||||
content.append("List<SQLStatement> statementList = parser.parseStatementList();</br>");
|
||||
content.append("List<SQLStatement> statementList = SQLUtils.parseStatements(sqlStat.getSql(), sqlStat.getDbType())</br>");
|
||||
content.append("SQLStatement statemen = statementList.get(0);</br>");
|
||||
content.append("SchemaStatVisitor visitor = new SchemaStatVisitor();</br>");
|
||||
content.append("SchemaStatVisitor visitor = new SchemaStatVisitor();</br>");
|
||||
content.append("SchemaStatVisitor visitor = SQLUtils.createSchemaStatVisitor(statementList, sqlStat.getDbType());</br>");
|
||||
content.append("statemen.accept(visitor);</br>");
|
||||
content.append("visitor.getTables() / visitor.getColumns() / visitor.getConditions() / visitor.getRelationships()</br>");
|
||||
content.append("visitor.getTables() / visitor.getColumns() / visitor.getOrderByColumns() / visitor.getConditions() / visitor.getRelationships()</br>");
|
||||
content.append("</p>");
|
||||
content.append("<br>");
|
||||
}
|
||||
@@ -293,6 +296,19 @@ public class StatViewServlet extends HttpServlet {
|
||||
|
||||
json.put("URL", dataSource.getUrl());
|
||||
json.put("UserName", dataSource.getUsername());
|
||||
json.put("FilterClassNames", dataSource.getFilterClassNames());
|
||||
|
||||
json.put("WaitThreadCount", dataSource.getWaitThreadCount());
|
||||
json.put("NotEmptyWaitCount", dataSource.getNotEmptyWaitCount());
|
||||
json.put("NotEmptyWaitMillis", dataSource.getNotEmptyWaitMillis());
|
||||
|
||||
json.put("PoolingCount", dataSource.getPoolingCount());
|
||||
json.put("PoolingPeak", dataSource.getPoolingPeak());
|
||||
json.put("PoolingPeakTime", dataSource.getPoolingPeakTime());
|
||||
|
||||
json.put("ActiveCount", dataSource.getActiveCount());
|
||||
json.put("ActivePeak", dataSource.getActivePeak());
|
||||
json.put("ActivePeakTime", dataSource.getActivePeakTime());
|
||||
|
||||
json.put("InitialSize", dataSource.getInitialSize());
|
||||
json.put("MinIdle", dataSource.getMinIdle());
|
||||
@@ -312,6 +328,9 @@ public class StatViewServlet extends HttpServlet {
|
||||
json.put("PSCacheAccessCount", dataSource.getCachedPreparedStatementAccessCount());
|
||||
json.put("PSCacheHitCount", dataSource.getCachedPreparedStatementHitCount());
|
||||
json.put("PSCacheMissCount", dataSource.getCachedPreparedStatementMissCount());
|
||||
|
||||
json.put("StartTransactionCount", dataSource.getStartTransactionCount());
|
||||
json.put("TransactionHistogramValues", dataSource.getTransactionHistogramValues());
|
||||
return json;
|
||||
}
|
||||
|
||||
|
||||
@@ -74,6 +74,8 @@ function ajaxResponseForBasicInfo() {
|
||||
}
|
||||
function changeInnerHtml(id, divHtml) {
|
||||
var divObj = document.getElementById(id);
|
||||
if(!divHtml)
|
||||
divHtml='';
|
||||
if (divObj) {
|
||||
divObj.innerHTML = divHtml;
|
||||
}
|
||||
@@ -84,17 +86,38 @@ function fillDataSourceInfo(datasource) {
|
||||
changeInnerHtml("DS-Info-URL" + datasource.Identity, datasource.URL);
|
||||
changeInnerHtml("DS-Info-DbType" + datasource.Identity, datasource.DbType);
|
||||
changeInnerHtml("DS-Info-DriverClassName" + datasource.Identity, datasource.DriverClassName);
|
||||
changeInnerHtml("DS-Info-FilterClassNames" + datasource.Identity, datasource.FilterClassNames);
|
||||
|
||||
changeInnerHtml("DS-Info-TestOnBorrow" + datasource.Identity, datasource.TestOnBorrow);
|
||||
changeInnerHtml("DS-Info-TestWhileIdle" + datasource.Identity, datasource.TestWhileIdle);
|
||||
|
||||
changeInnerHtml("DS-Info-InitialSize" + datasource.Identity, datasource.InitialSize);
|
||||
changeInnerHtml("DS-Info-MinIdle" + datasource.Identity, datasource.MinIdle);
|
||||
changeInnerHtml("DS-Info-MaxActive" + datasource.Identity, datasource.MaxActive);
|
||||
|
||||
changeInnerHtml("DS-Info-NotEmptyWaitCount" + datasource.Identity, datasource.NotEmptyWaitCount);
|
||||
changeInnerHtml("DS-Info-NotEmptyWaitMillis" + datasource.Identity, datasource.NotEmptyWaitMillis);
|
||||
changeInnerHtml("DS-Info-WaitThreadCount" + datasource.Identity, datasource.WaitThreadCount);
|
||||
|
||||
changeInnerHtml("DS-Info-StartTransactionCount" + datasource.Identity, datasource.StartTransactionCount);
|
||||
changeInnerHtml("DS-Info-TransactionHistogramValues" + datasource.Identity, datasource.TransactionHistogramValues);
|
||||
|
||||
changeInnerHtml("DS-Info-PoolingCount" + datasource.Identity, datasource.PoolingCount);
|
||||
changeInnerHtml("DS-Info-PoolingPeak" + datasource.Identity, datasource.PoolingPeak);
|
||||
changeInnerHtml("DS-Info-PoolingPeakTime" + datasource.Identity, datasource.PoolingPeakTime);
|
||||
|
||||
changeInnerHtml("DS-Info-ActiveCount" + datasource.Identity, datasource.ActiveCount);
|
||||
changeInnerHtml("DS-Info-ActivePeak" + datasource.Identity, datasource.ActivePeak);
|
||||
changeInnerHtml("DS-Info-ActivePeakTime" + datasource.Identity, datasource.ActivePeakTime);
|
||||
|
||||
changeInnerHtml("DS-Info-LogicConnectCount" + datasource.Identity, datasource.LogicConnectCount);
|
||||
changeInnerHtml("DS-Info-LogicCloseCount" + datasource.Identity, datasource.LogicCloseCount);
|
||||
changeInnerHtml("DS-Info-LogicConnectErrorCount" + datasource.Identity, datasource.LogicConnectErrorCount);
|
||||
|
||||
changeInnerHtml("DS-Info-PhysicalConnectCount" + datasource.Identity, datasource.PhysicalConnectCount);
|
||||
changeInnerHtml("DS-Info-PhysicalCloseCount" + datasource.Identity, datasource.PhysicalCloseCount);
|
||||
changeInnerHtml("DS-Info-PhysicalConnectErrorCount" + datasource.Identity, datasource.PhysicalConnectErrorCount);
|
||||
|
||||
changeInnerHtml("DS-Info-PSCacheAccessCount" + datasource.Identity, datasource.PSCacheAccessCount);
|
||||
changeInnerHtml("DS-Info-PSCacheHitCount" + datasource.Identity, datasource.PSCacheHitCount);
|
||||
changeInnerHtml("DS-Info-PSCacheMissCount" + datasource.Identity, datasource.PSCacheMissCount);
|
||||
@@ -113,21 +136,43 @@ function ajaxResponseForDataSourceInfo() {
|
||||
listHtml += '<div id="dataSourceStat' + datasourceId + '">';
|
||||
listHtml += '<h2>Basic Info For <span id="DS-Info-Title' + datasourceId + '"></span><a href="datasource-' + datasourceId + '.json" target="_blank">[View JSON API]</a></h2>';
|
||||
listHtml += '<table cellpadding="5" cellspacing="1" width="99%">';
|
||||
|
||||
listHtml += '<tr><td class="td_lable" width="230">UserName</td><td id="DS-Info-UserName' + datasourceId + '"> </td><td>用户名称</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">URL</td><td id="DS-Info-URL' + datasourceId + '"> </td><td>数据源的JdbcURL</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">DbType</td><td id="DS-Info-DbType' + datasourceId + '"> </td><td>数据库类型</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">DriverClassName</td><td id="DS-Info-DriverClassName' + datasourceId + '"> </td><td>Jdbc驱动的名称</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">FilterClassNames</td><td id="DS-Info-DriverClassName' + datasourceId + '"> </td><td>启用的filter的名称</td></tr>';
|
||||
|
||||
listHtml += '<tr><td class="td_lable">TestOnBorrow</td><td id="DS-Info-TestOnBorrow' + datasourceId + '"> </td><td>借出连接时是否做测试</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">TestWhileIdle</td><td id="DS-Info-TestWhileIdle' + datasourceId + '"> </td><td>归还连接时是否做测试</td></tr>';
|
||||
|
||||
listHtml += '<tr><td class="td_lable">InitialSize</td><td id="DS-Info-InitialSize' + datasourceId + '"> </td><td>初始连接池大小</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">MinIdle</td><td id="DS-Info-MinIdle' + datasourceId + '"> </td><td>连接池最小连接数</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">MaxActive</td><td id="DS-Info-MaxActive' + datasourceId + '"> </td><td>连接池最大连接数</td></tr>';
|
||||
|
||||
listHtml += '<tr><td class="td_lable">NotEmptyWaitCount</td><td id="DS-Info-NotEmptyWaitCount' + datasourceId + '"> </td><td>等待获取连接的次数</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">NotEmptyWaitMillis</td><td id="DS-Info-NotEmptyWaitMillis' + datasourceId + '"> </td><td>获取连接等待的时间总</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">WaitThreadCount</td><td id="DS-Info-WaitThreadCount' + datasourceId + '"> </td><td>当前正在等待获取连接的线程数量</td></tr>';
|
||||
|
||||
listHtml += '<tr><td class="td_lable">StartTransactionCount</td><td id="DS-Info-StartTransactionCount' + datasourceId + '"> </td><td>启动事务次数</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">TransactionHistogramValues</td><td id="DS-Info-TransactionHistogramValues' + datasourceId + '"> </td><td>事务的持续时间直方图</td></tr>';
|
||||
|
||||
listHtml += '<tr><td class="td_lable">PoolingCount</td><td id="DS-Info-PoolingCount' + datasourceId + '"> </td><td>连接池可用连接数</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">PoolingPeak</td><td id="DS-Info-PoolingPeak' + datasourceId + '"> </td><td>连接池可用连接数峰值</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">PoolingPeakTime</td><td id="DS-Info-PoolingPeakTime' + datasourceId + '"> </td><td>连接池可用连接数峰值时间</td></tr>';
|
||||
|
||||
listHtml += '<tr><td class="td_lable">ActiveCount</td><td id="DS-Info-ActiveCount' + datasourceId + '"> </td><td>当前活动连接数</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">ActivePeak</td><td id="DS-Info-ActivePeak' + datasourceId + '"> </td><td>连接数峰值</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">ActivePeakTime</td><td id="DS-Info-ActivePeakTime' + datasourceId + '"> </td><td>连接数峰值时间</td></tr>';
|
||||
|
||||
listHtml += '<tr><td class="td_lable">LogicConnectCount</td><td id="DS-Info-LogicConnectCount' + datasourceId + '"> </td><td>申请连接的次数</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">LogicCloseCount</td><td id="DS-Info-LogicCloseCount' + datasourceId + '"> </td><td>关闭连接的次数</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">LogicConnectErrorCount</td><td id="DS-Info-LogicConnectErrorCount' + datasourceId + '"> </td><td>连接错误数</td></tr>';
|
||||
|
||||
listHtml += '<tr><td class="td_lable">PhysicalConnectCount</td><td id="DS-Info-PhysicalConnectCount' + datasourceId + '"> </td><td>创建物理连接次数</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">PhysicalCloseCount</td><td id="DS-Info-PhysicalCloseCount' + datasourceId + '"> </td><td>物理连接关闭次数</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">PhysicalConnectErrorCount</td><td id="DS-Info-PhysicalConnectErrorCount' + datasourceId + '"> </td><td>建立物理连接错误数</td></tr>';
|
||||
|
||||
listHtml += '<tr><td class="td_lable">PSCacheAccessCount</td><td id="DS-Info-PSCacheAccessCount' + datasourceId + '"> </td><td>PerpareStatement缓存次数</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">PSCacheHitCount</td><td id="DS-Info-PSCacheHitCount' + datasourceId + '"> </td><td>PerpareStatement缓存命中次数</td></tr>';
|
||||
listHtml += '<tr><td class="td_lable">PSCacheMissCount</td><td id="DS-Info-PSCacheMissCount' + datasourceId + '"> </td><td>PerpareStatement缓存未命中次数</td></tr>';
|
||||
|
||||
Reference in New Issue
Block a user