diff --git a/src/main/java/com/alibaba/druid/support/http/StatViewServlet.java b/src/main/java/com/alibaba/druid/support/http/StatViewServlet.java
index 58092c3728..86f1771770 100644
--- a/src/main/java/com/alibaba/druid/support/http/StatViewServlet.java
+++ b/src/main/java/com/alibaba/druid/support/http/StatViewServlet.java
@@ -149,7 +149,6 @@ public class StatViewServlet extends HttpServlet {
content.append("
Fields | ");
content.append("" + visitor.getColumns() + " | ");
content.append("");
-
content.append("");
content.append("| Coditions | ");
content.append("" + visitor.getConditions() + " | ");
@@ -159,18 +158,22 @@ public class StatViewServlet extends HttpServlet {
content.append("Relationships | ");
content.append("" + visitor.getRelationships() + " | ");
content.append("
");
+
+ content.append("");
+ content.append("| OrderByColumns | ");
+ content.append("" + visitor.getOrderByColumns() + " | ");
+ content.append("
");
+
content.append("");
content.append("
");
content.append("API:
");
content.append("");
- content.append("SQLStatementParser parser = new SQLStatementParser(sqlStat.getSql());");
- content.append("List statementList = parser.parseStatementList();");
+ content.append("List statementList = SQLUtils.parseStatements(sqlStat.getSql(), sqlStat.getDbType())");
content.append("SQLStatement statemen = statementList.get(0);");
- content.append("SchemaStatVisitor visitor = new SchemaStatVisitor();");
- content.append("SchemaStatVisitor visitor = new SchemaStatVisitor();");
+ content.append("SchemaStatVisitor visitor = SQLUtils.createSchemaStatVisitor(statementList, sqlStat.getDbType());");
content.append("statemen.accept(visitor);");
- content.append("visitor.getTables() / visitor.getColumns() / visitor.getConditions() / visitor.getRelationships()");
+ content.append("visitor.getTables() / visitor.getColumns() / visitor.getOrderByColumns() / visitor.getConditions() / visitor.getRelationships()");
content.append("
");
content.append("
");
}
@@ -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;
}
diff --git a/src/main/resources/support/http/resources/js.js b/src/main/resources/support/http/resources/js.js
index 46fba90e4a..62a33f0da5 100644
--- a/src/main/resources/support/http/resources/js.js
+++ b/src/main/resources/support/http/resources/js.js
@@ -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 += '';
listHtml += '
';
listHtml += '
';
+
listHtml += '| UserName | | 用户名称 |
';
listHtml += '| URL | | 数据源的JdbcURL |
';
listHtml += '| DbType | | 数据库类型 |
';
listHtml += '| DriverClassName | | Jdbc驱动的名称 |
';
+ listHtml += '| FilterClassNames | | 启用的filter的名称 |
';
+
listHtml += '| TestOnBorrow | | 借出连接时是否做测试 |
';
listHtml += '| TestWhileIdle | | 归还连接时是否做测试 |
';
+
listHtml += '| InitialSize | | 初始连接池大小 |
';
listHtml += '| MinIdle | | 连接池最小连接数 |
';
listHtml += '| MaxActive | | 连接池最大连接数 |
';
+
+ listHtml += '| NotEmptyWaitCount | | 等待获取连接的次数 |
';
+ listHtml += '| NotEmptyWaitMillis | | 获取连接等待的时间总 |
';
+ listHtml += '| WaitThreadCount | | 当前正在等待获取连接的线程数量 |
';
+
+ listHtml += '| StartTransactionCount | | 启动事务次数 |
';
+ listHtml += '| TransactionHistogramValues | | 事务的持续时间直方图 |
';
+
+ listHtml += '| PoolingCount | | 连接池可用连接数 |
';
+ listHtml += '| PoolingPeak | | 连接池可用连接数峰值 |
';
+ listHtml += '| PoolingPeakTime | | 连接池可用连接数峰值时间 |
';
+
+ listHtml += '| ActiveCount | | 当前活动连接数 |
';
+ listHtml += '| ActivePeak | | 连接数峰值 |
';
+ listHtml += '| ActivePeakTime | | 连接数峰值时间 |
';
+
listHtml += '| LogicConnectCount | | 申请连接的次数 |
';
listHtml += '| LogicCloseCount | | 关闭连接的次数 |
';
listHtml += '| LogicConnectErrorCount | | 连接错误数 |
';
+
listHtml += '| PhysicalConnectCount | | 创建物理连接次数 |
';
listHtml += '| PhysicalCloseCount | | 物理连接关闭次数 |
';
listHtml += '| PhysicalConnectErrorCount | | 建立物理连接错误数 |
';
+
listHtml += '| PSCacheAccessCount | | PerpareStatement缓存次数 |
';
listHtml += '| PSCacheHitCount | | PerpareStatement缓存命中次数 |
';
listHtml += '| PSCacheMissCount | | PerpareStatement缓存未命中次数 |
';