[강운덕] [LUCYSUS-1744] timebase sampling+ io flush 개선 로직을 설정 파일로 받을수 있게 수정, agent class의 life cycle을 profiler와 동일하게 변경. agent관련 데이터를 interceptor에 연관지을수 있도록 수정.

git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-tomcat-profiler/trunk@1039 84d0f5b1-2673-498c-a247-62c4ff18d310
This commit is contained in:
Woonduk Kang
2012-12-18 11:06:04 +00:00
parent e4d474c6aa
commit 80aa87d894
59 changed files with 1174 additions and 787 deletions
+10 -5
View File
@@ -3,6 +3,7 @@ package com.profiler;
import com.profiler.common.dto.thrift.JVMInfoThriftDTO;
import com.profiler.context.TraceContext;
import com.profiler.sender.DataSender;
import com.profiler.util.Assert;
import com.sun.management.OperatingSystemMXBean;
import java.io.IOException;
@@ -41,8 +42,11 @@ public class SystemMonitor {
});
private DataSender dataSender;
private TraceContext traceContext;
public SystemMonitor() {
public SystemMonitor(TraceContext traceContext) {
Assert.notNull(traceContext, "traceContext must not be null");
this.traceContext = traceContext;
}
public void setDataSender(DataSender dataSender) {
@@ -51,7 +55,7 @@ public class SystemMonitor {
public void start() {
logger.info("Starting system monitor.");
executor.scheduleAtFixedRate(new Worker(dataSender), 5, 5, TimeUnit.SECONDS);
executor.scheduleAtFixedRate(new Worker(dataSender, traceContext), 5, 5, TimeUnit.SECONDS);
}
public void stop() {
@@ -62,18 +66,19 @@ public class SystemMonitor {
private static class Worker implements Runnable {
private DataSender dataSender;
private TraceContext traceContext;
public Worker(DataSender dataSender) {
public Worker(DataSender dataSender, TraceContext traceContext) {
this.dataSender = dataSender;
this.traceContext = traceContext;
}
public void run() {
try {
JVMInfoThriftDTO jvmInfo = new JVMInfoThriftDTO();
jvmInfo.setAgentId(Agent.getInstance().getAgentId());
jvmInfo.setAgentId(traceContext.getAgentId());
jvmInfo.setDataTime(System.currentTimeMillis());
TraceContext traceContext = TraceContext.getTraceContext();
activeThread(traceContext, jvmInfo);
setGCState(jvmInfo);