mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
添加监控
git-svn-id: http://code.alibabatech.com/svn/druid/trunk@904 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
@@ -81,8 +81,11 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
|
||||
private long notEmptyWaitCount = 0L;
|
||||
private long notEmptySignalCount = 0L;
|
||||
private long notEmptyWaitNanos = 0L;
|
||||
|
||||
private int activePeak = 0;
|
||||
private long activePeakTime = 0;
|
||||
private int poolingPeak = 0;
|
||||
private long poolingPeakTime = 0;
|
||||
|
||||
// store
|
||||
private ConnectionHolder[] connections;
|
||||
@@ -130,6 +133,8 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
|
||||
notEmptyWaitNanos = 0;
|
||||
|
||||
activePeak = 0;
|
||||
activePeakTime = 0;
|
||||
poolingPeak = 0;
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
@@ -418,6 +423,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
|
||||
activeCount++;
|
||||
if (activeCount > activePeak) {
|
||||
activePeak = activeCount;
|
||||
activePeakTime = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
poolalbeConnection = new PoolableConnection(holder);
|
||||
@@ -709,11 +715,19 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public int getPoolingPeak() {
|
||||
return poolingPeak;
|
||||
}
|
||||
|
||||
public Date getPoolingPeakTime() {
|
||||
if (poolingPeakTime <= 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Date(poolingPeakTime);
|
||||
}
|
||||
|
||||
public long getRecycleCount() {
|
||||
return recycleCount;
|
||||
}
|
||||
@@ -808,9 +822,10 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
|
||||
lock.lock();
|
||||
try {
|
||||
connections[poolingCount++] = new ConnectionHolder(DruidDataSource.this, connection);
|
||||
|
||||
|
||||
if (poolingCount > poolingPeak) {
|
||||
poolingPeak = poolingCount;
|
||||
poolingPeakTime = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
errorCount = 0; // reset errorCount
|
||||
@@ -1058,6 +1073,14 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
|
||||
return activePeak;
|
||||
}
|
||||
|
||||
public Date getActivePeakTime() {
|
||||
if (activePeakTime <= 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Date(activePeakTime);
|
||||
}
|
||||
|
||||
public String dump() {
|
||||
lock.lock();
|
||||
try {
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package com.alibaba.druid.pool;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* @author wenshao<szujobs@hotmail.com>
|
||||
@@ -62,4 +64,8 @@ public interface DruidDataSourceMBean extends DruidAbstractDataSourceMBean {
|
||||
* @return
|
||||
*/
|
||||
int getPoolingPeak();
|
||||
|
||||
Date getActivePeakTime();
|
||||
|
||||
Date getPoolingPeakTime();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user