Search in sources :

Example 1 with TCmdActiveThreadLightDump

use of com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDump in project pinpoint by naver.

the class ActiveThreadLightDumpServiceTest method basicFunctionTest4.

@Test
public void basicFunctionTest4() throws Exception {
    List<WaitingJob> waitingJobList = createWaitingJobList(CREATE_SIZE);
    try {
        List<ActiveTraceInfo> activeTraceInfoList = createMockActiveTraceInfoList(CREATE_SIZE, DEFAULT_TIME_MILLIS, TIME_DIFF_INTERVAL, waitingJobList);
        List<ActiveTraceInfo> copied = shuffle(activeTraceInfoList);
        int targetThreadNameSize = 3;
        List<String> threadNameList = extractThreadNameList(copied.subList(0, targetThreadNameSize), targetThreadNameSize);
        int targetTraceIdSize = 3;
        List<Long> localTraceIdList = extractLocalTraceIdList(copied.subList(targetThreadNameSize, CREATE_SIZE), targetTraceIdSize);
        TCmdActiveThreadLightDump tCmdActiveThreadDump = createRequest(0, threadNameList, localTraceIdList);
        ActiveThreadLightDumpService service = createService(activeTraceInfoList);
        TCmdActiveThreadLightDumpRes response = (TCmdActiveThreadLightDumpRes) service.requestCommandService(tCmdActiveThreadDump);
        Assert.assertEquals(targetThreadNameSize + targetTraceIdSize, response.getThreadDumpsSize());
    } finally {
        clearResource(waitingJobList);
    }
}
Also used : TCmdActiveThreadLightDump(com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDump) TCmdActiveThreadLightDumpRes(com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDumpRes) ActiveTraceInfo(com.navercorp.pinpoint.profiler.context.active.ActiveTraceInfo) Test(org.junit.Test)

Example 2 with TCmdActiveThreadLightDump

use of com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDump in project pinpoint by naver.

the class AgentCommandController method getActiveThreadLightDump.

@RequestMapping(value = "/activeThreadLightDump", method = RequestMethod.GET)
public ModelAndView getActiveThreadLightDump(@RequestParam(value = "applicationName") String applicationName, @RequestParam(value = "agentId") String agentId, @RequestParam(value = "limit", required = false, defaultValue = "-1") int limit, @RequestParam(value = "threadName", required = false) String[] threadNameList, @RequestParam(value = "localTraceId", required = false) Long[] localTraceIdList) throws TException {
    if (!webProperties.isEnableActiveThreadDump()) {
        return createResponse(false, "Disable activeThreadDump option. 'config.enable.activeThreadDump=false'");
    }
    AgentInfo agentInfo = agentService.getAgentInfo(applicationName, agentId);
    if (agentInfo == null) {
        return createResponse(false, String.format("Can't find suitable Agent(%s/%s)", applicationName, agentId));
    }
    TCmdActiveThreadLightDump threadDump = new TCmdActiveThreadLightDump();
    if (limit > 0) {
        threadDump.setLimit(limit);
    }
    if (threadNameList != null) {
        threadDump.setThreadNameList(Arrays.asList(threadNameList));
    }
    if (localTraceIdList != null) {
        threadDump.setLocalTraceIdList(Arrays.asList(localTraceIdList));
    }
    try {
        PinpointRouteResponse pinpointRouteResponse = agentService.invoke(agentInfo, threadDump);
        if (isSuccessResponse(pinpointRouteResponse)) {
            TBase<?, ?> result = pinpointRouteResponse.getResponse();
            if (result instanceof TCmdActiveThreadLightDumpRes) {
                TCmdActiveThreadLightDumpRes activeThreadDumpResponse = (TCmdActiveThreadLightDumpRes) result;
                List<TActiveThreadLightDump> activeThreadDumps = activeThreadDumpResponse.getThreadDumps();
                AgentActiveThreadDumpFactory factory = new AgentActiveThreadDumpFactory();
                AgentActiveThreadDumpList activeThreadDumpList = factory.create2(activeThreadDumps);
                Map<String, Object> responseData = createResponseData(activeThreadDumpList, activeThreadDumpResponse.getType(), activeThreadDumpResponse.getSubType(), activeThreadDumpResponse.getVersion());
                return createResponse(true, responseData);
            }
        }
        return handleFailedResponse(pinpointRouteResponse);
    } catch (TException e) {
        return createResponse(false, e.getMessage());
    }
}
Also used : AgentActiveThreadDumpList(com.navercorp.pinpoint.web.vo.AgentActiveThreadDumpList) TException(org.apache.thrift.TException) TCmdActiveThreadLightDump(com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDump) AgentActiveThreadDumpFactory(com.navercorp.pinpoint.web.vo.AgentActiveThreadDumpFactory) TCmdActiveThreadLightDumpRes(com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDumpRes) AgentInfo(com.navercorp.pinpoint.web.vo.AgentInfo) PinpointRouteResponse(com.navercorp.pinpoint.web.cluster.PinpointRouteResponse) TActiveThreadLightDump(com.navercorp.pinpoint.thrift.dto.command.TActiveThreadLightDump) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 3 with TCmdActiveThreadLightDump

use of com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDump in project pinpoint by naver.

the class ActiveThreadLightDumpService method requestCommandService.

@Override
public TBase<?, ?> requestCommandService(TBase tBase) {
    TCmdActiveThreadLightDump request = (TCmdActiveThreadLightDump) tBase;
    List<TActiveThreadLightDump> activeThreadDumpList = getActiveThreadDumpList(request);
    TCmdActiveThreadLightDumpRes response = new TCmdActiveThreadLightDumpRes();
    response.setType("JAVA");
    response.setSubType(JvmUtils.getType().name());
    response.setVersion(JvmUtils.getVersion().name());
    response.setThreadDumps(activeThreadDumpList);
    return response;
}
Also used : TCmdActiveThreadLightDump(com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDump) TCmdActiveThreadLightDumpRes(com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDumpRes) TActiveThreadLightDump(com.navercorp.pinpoint.thrift.dto.command.TActiveThreadLightDump)

Example 4 with TCmdActiveThreadLightDump

use of com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDump in project pinpoint by naver.

the class ActiveThreadLightDumpServiceTest method basicFunctionTest5.

@Test
public void basicFunctionTest5() throws Exception {
    List<WaitingJob> waitingJobList = createWaitingJobList(CREATE_SIZE);
    try {
        List<ActiveTraceInfo> activeTraceInfoList = createMockActiveTraceInfoList(CREATE_SIZE, DEFAULT_TIME_MILLIS, TIME_DIFF_INTERVAL, waitingJobList);
        int limit = 3;
        List<Long> oldTimeList = getOldTimeList(limit);
        TCmdActiveThreadLightDump tCmdActiveThreadDump = createRequest(limit, null, null);
        ActiveThreadLightDumpService service = createService(activeTraceInfoList);
        TCmdActiveThreadLightDumpRes response = (TCmdActiveThreadLightDumpRes) service.requestCommandService(tCmdActiveThreadDump);
        Assert.assertEquals(limit, response.getThreadDumpsSize());
        for (TActiveThreadLightDump dump : response.getThreadDumps()) {
            Assert.assertTrue(oldTimeList.contains(dump.getStartTime()));
        }
    } finally {
        clearResource(waitingJobList);
    }
}
Also used : TCmdActiveThreadLightDump(com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDump) TCmdActiveThreadLightDumpRes(com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDumpRes) ActiveTraceInfo(com.navercorp.pinpoint.profiler.context.active.ActiveTraceInfo) TActiveThreadLightDump(com.navercorp.pinpoint.thrift.dto.command.TActiveThreadLightDump) Test(org.junit.Test)

Example 5 with TCmdActiveThreadLightDump

use of com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDump in project pinpoint by naver.

the class ActiveThreadLightDumpServiceTest method basicFunctionTest2.

@Test
public void basicFunctionTest2() throws Exception {
    List<WaitingJob> waitingJobList = createWaitingJobList(CREATE_SIZE);
    try {
        List<ActiveTraceInfo> activeTraceInfoList = createMockActiveTraceInfoList(CREATE_SIZE, DEFAULT_TIME_MILLIS, TIME_DIFF_INTERVAL, waitingJobList);
        TCmdActiveThreadLightDump tCmdActiveThreadDump = createRequest(0, null, Arrays.asList(1L));
        ActiveThreadLightDumpService service = createService(activeTraceInfoList);
        TCmdActiveThreadLightDumpRes response = (TCmdActiveThreadLightDumpRes) service.requestCommandService(tCmdActiveThreadDump);
        Assert.assertEquals(1, response.getThreadDumpsSize());
    } finally {
        clearResource(waitingJobList);
    }
}
Also used : TCmdActiveThreadLightDump(com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDump) TCmdActiveThreadLightDumpRes(com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDumpRes) ActiveTraceInfo(com.navercorp.pinpoint.profiler.context.active.ActiveTraceInfo) Test(org.junit.Test)

Aggregations

TCmdActiveThreadLightDump (com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDump)6 TCmdActiveThreadLightDumpRes (com.navercorp.pinpoint.thrift.dto.command.TCmdActiveThreadLightDumpRes)6 ActiveTraceInfo (com.navercorp.pinpoint.profiler.context.active.ActiveTraceInfo)4 Test (org.junit.Test)4 TActiveThreadLightDump (com.navercorp.pinpoint.thrift.dto.command.TActiveThreadLightDump)3 PinpointRouteResponse (com.navercorp.pinpoint.web.cluster.PinpointRouteResponse)1 AgentActiveThreadDumpFactory (com.navercorp.pinpoint.web.vo.AgentActiveThreadDumpFactory)1 AgentActiveThreadDumpList (com.navercorp.pinpoint.web.vo.AgentActiveThreadDumpList)1 AgentInfo (com.navercorp.pinpoint.web.vo.AgentInfo)1 TException (org.apache.thrift.TException)1 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)1