mirror of
https://github.com/wahyd4/pinpoint.git
synced 2026-08-21 02:35:53 +10:00
[강운덕] [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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user