Skip to content

Commit

Permalink
improve monitor support
Browse files Browse the repository at this point in the history
  • Loading branch information
wenshao committed Aug 14, 2013
1 parent a1e7e8e commit f58d1d2
Show file tree
Hide file tree
Showing 5 changed files with 199 additions and 0 deletions.
19 changes: 19 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -526,5 +526,24 @@
<version>2.0.2</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.javasimon</groupId>
<artifactId>javasimon-spring</artifactId>
<version>3.3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.javasimon</groupId>
<artifactId>javasimon-jdbc4</artifactId>
<version>3.3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.javasimon</groupId>
<artifactId>javasimon-javaee</artifactId>
<version>3.3.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.alibaba.druid.support.monitor;

import java.util.Date;

public class MonitorContext {

private String appName;
private Date collectTime;

public String getAppName() {
return appName;
}

public void setAppName(String appName) {
this.appName = appName;
}

public Date getCollectTime() {
return collectTime;
}

public void setCollectTime(Date collectTime) {
this.collectTime = collectTime;
}

}
110 changes: 110 additions & 0 deletions src/main/java/com/alibaba/druid/support/monitor/MonitorService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
package com.alibaba.druid.support.monitor;

import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

import com.alibaba.druid.support.monitor.dao.MonitorDao;

public class MonitorService {

private final static long DEFAULT_TIME_BETWEEN_COLLECT = 60 * 5;

private ScheduledExecutorService scheduler;
private int schedulerThreadSize = 1;

private long timeBeetweenSqlCollect = DEFAULT_TIME_BETWEEN_COLLECT;
private long timeBeetweenSpringCollect = DEFAULT_TIME_BETWEEN_COLLECT;
private long timeBeetweenWebUriCollect = DEFAULT_TIME_BETWEEN_COLLECT;
private TimeUnit timeUnit = TimeUnit.SECONDS;

private MonitorDao dao;

public void start() {
if (scheduler == null) {
scheduler = new ScheduledThreadPoolExecutor(schedulerThreadSize);
}

scheduler.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
collectSql();
}
}, timeBeetweenSqlCollect, timeBeetweenSqlCollect, timeUnit);

scheduler.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
collectSpringMethod();
}
}, timeBeetweenSpringCollect, timeBeetweenSpringCollect, timeUnit);

scheduler.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
collectWebURI();
}
}, timeBeetweenWebUriCollect, timeBeetweenWebUriCollect, timeUnit);
}

public ScheduledExecutorService getScheduler() {
return scheduler;
}

public void setScheduler(ScheduledExecutorService scheduler) {
this.scheduler = scheduler;
}

private void collectSql() {

}

private void collectSpringMethod() {

}

private void collectWebURI() {

}

public MonitorDao getDao() {
return dao;
}

public void setDao(MonitorDao dao) {
this.dao = dao;
}

public long getTimeBeetweenSqlCollect() {
return timeBeetweenSqlCollect;
}

public void setTimeBeetweenSqlCollect(long timeBeetweenSqlCollect) {
this.timeBeetweenSqlCollect = timeBeetweenSqlCollect;
}

public long getTimeBeetweenSpringCollect() {
return timeBeetweenSpringCollect;
}

public void setTimeBeetweenSpringCollect(long timeBeetweenSpringCollect) {
this.timeBeetweenSpringCollect = timeBeetweenSpringCollect;
}

public long getTimeBeetweenWebUriCollect() {
return timeBeetweenWebUriCollect;
}

public void setTimeBeetweenWebUriCollect(long timeBeetweenWebUriCollect) {
this.timeBeetweenWebUriCollect = timeBeetweenWebUriCollect;
}

public TimeUnit getTimeUnit() {
return timeUnit;
}

public void setTimeUnit(TimeUnit timeUnit) {
this.timeUnit = timeUnit;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.alibaba.druid.support.monitor.dao;

import java.util.List;

import com.alibaba.druid.stat.JdbcSqlStatValue;
import com.alibaba.druid.support.http.stat.WebURIStatValue;
import com.alibaba.druid.support.monitor.MonitorContext;
import com.alibaba.druid.support.spring.stat.SpringMethodStatValue;

public interface MonitorDao {

void saveSql(MonitorContext ctx, List<JdbcSqlStatValue> sqlList);

void saveSpringMethod(MonitorContext ctx, List<SpringMethodStatValue> methodList);

void saveWebURI(MonitorContext ctx, List<WebURIStatValue> uriList);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.alibaba.druid.support.monitor.dao;

import java.util.List;

import com.alibaba.druid.stat.JdbcSqlStatValue;
import com.alibaba.druid.support.http.stat.WebURIStatValue;
import com.alibaba.druid.support.monitor.MonitorContext;
import com.alibaba.druid.support.spring.stat.SpringMethodStatValue;

public class MonitorDaoJdbcImpl implements MonitorDao {

@Override
public void saveSql(MonitorContext ctx, List<JdbcSqlStatValue> sqlList) {

}

@Override
public void saveSpringMethod(MonitorContext ctx, List<SpringMethodStatValue> methodList) {

}

@Override
public void saveWebURI(MonitorContext ctx, List<WebURIStatValue> uriList) {

}

}

0 comments on commit f58d1d2

Please sign in to comment.