use of com.navercorp.pinpoint.common.server.bo.event.AgentEventBo in project pinpoint by naver.
the class AgentEventResultsExtractor method extractData.
@Override
public List<AgentEventBo> extractData(ResultScanner results) throws Exception {
List<AgentEventBo> agentEvents = new ArrayList<>();
int rowNum = 0;
for (Result result : results) {
List<AgentEventBo> intermediateEvents = agentEventMapper.mapRow(result, rowNum++);
if (!intermediateEvents.isEmpty()) {
agentEvents.addAll(intermediateEvents);
}
}
return agentEvents;
}
use of com.navercorp.pinpoint.common.server.bo.event.AgentEventBo in project pinpoint by naver.
the class AgentEventMapper method mapRow.
@Override
public List<AgentEventBo> mapRow(Result result, int rowNum) throws Exception {
if (result.isEmpty()) {
return Collections.emptyList();
}
List<AgentEventBo> agentEvents = new ArrayList<>();
for (Cell cell : result.rawCells()) {
final int code = CellUtils.qualifierToInt(cell);
final AgentEventType eventType = AgentEventType.getTypeByCode(code);
if (eventType == null) {
continue;
}
byte[] value = CellUtil.cloneValue(cell);
final Buffer buffer = new FixedBuffer(value);
final int version = buffer.readInt();
switch(version) {
case 0:
case 1:
final String agentId = buffer.readPrefixedString();
final long startTimestamp = buffer.readLong();
final long eventTimestamp = buffer.readLong();
final byte[] eventMessage = buffer.readPrefixedBytes();
final AgentEventBo agentEvent = new AgentEventBo(version, agentId, startTimestamp, eventTimestamp, eventType);
agentEvent.setEventBody(eventMessage);
agentEvents.add(agentEvent);
break;
default:
break;
}
}
return agentEvents;
}
use of com.navercorp.pinpoint.common.server.bo.event.AgentEventBo in project pinpoint by naver.
the class AgentEventHandlingFilterTest method handler_should_handle_serialization_of_request_events.
@Test
@SuppressWarnings({ "rawtypes", "unchecked" })
public void handler_should_handle_serialization_of_request_events() throws Exception {
// given
final AgentEventType expectedEventType = AgentEventType.USER_THREAD_DUMP;
final TCommandThreadDumpResponse expectedThreadDumpResponse = new TCommandThreadDumpResponse();
final byte[] expectedThreadDumpResponseBody = new byte[0];
final TCommandTransfer tCommandTransfer = new TCommandTransfer();
tCommandTransfer.setAgentId(TEST_AGENT_ID);
tCommandTransfer.setStartTime(TEST_START_TIMESTAMP);
final TCommandTransferResponse tCommandTransferResponse = new TCommandTransferResponse();
tCommandTransferResponse.setRouteResult(TRouteResult.OK);
tCommandTransferResponse.setPayload(expectedThreadDumpResponseBody);
final ResponseEvent responseEvent = new ResponseEvent(tCommandTransfer, null, 0, tCommandTransferResponse);
ArgumentCaptor<AgentEventBo> argCaptor = ArgumentCaptor.forClass(AgentEventBo.class);
HeaderTBaseDeserializer deserializer = mock(HeaderTBaseDeserializer.class);
when(this.deserializerFactory.createDeserializer()).thenReturn(deserializer);
Message<TBase<?, ?>> message = new DefaultMessage<>(new HeaderV1((short) 1000), HeaderEntity.EMPTY_HEADER_ENTITY, expectedThreadDumpResponse);
when(deserializer.deserialize(expectedThreadDumpResponseBody)).thenReturn(message);
// when
this.agentEventHandlingFilter.handleResponseEvent(responseEvent, TEST_EVENT_TIMESTAMP);
// then
verify(this.agentEventService, atLeast(1)).insert(argCaptor.capture());
AgentEventBo actualAgentEventBo = argCaptor.getValue();
assertEquals(TEST_AGENT_ID, actualAgentEventBo.getAgentId());
assertEquals(TEST_START_TIMESTAMP, actualAgentEventBo.getStartTimestamp());
assertEquals(TEST_EVENT_TIMESTAMP, actualAgentEventBo.getEventTimestamp());
assertEquals(expectedEventType, actualAgentEventBo.getEventType());
assertArrayEquals(expectedThreadDumpResponseBody, actualAgentEventBo.getEventBody());
}
use of com.navercorp.pinpoint.common.server.bo.event.AgentEventBo in project pinpoint by naver.
the class AgentEventHandlingFilterTest method handler_should_ignore_request_events_with_unsupported_message_types.
@Test
@SuppressWarnings({ "rawtypes", "unchecked" })
public void handler_should_ignore_request_events_with_unsupported_message_types() throws Exception {
// given
final TCommandEcho mismatchingResponse = new TCommandEcho();
final byte[] mismatchingResponseBody = new byte[0];
final TCommandTransfer tCommandTransfer = new TCommandTransfer();
tCommandTransfer.setAgentId(TEST_AGENT_ID);
tCommandTransfer.setStartTime(TEST_START_TIMESTAMP);
final TCommandTransferResponse tCommandTransferResponse = new TCommandTransferResponse();
tCommandTransferResponse.setRouteResult(TRouteResult.OK);
tCommandTransferResponse.setPayload(mismatchingResponseBody);
final ResponseEvent responseEvent = new ResponseEvent(tCommandTransfer, null, 0, tCommandTransferResponse);
ArgumentCaptor<AgentEventBo> argCaptor = ArgumentCaptor.forClass(AgentEventBo.class);
HeaderTBaseDeserializer deserializer = mock(HeaderTBaseDeserializer.class);
when(this.deserializerFactory.createDeserializer()).thenReturn(deserializer);
Message<TBase<?, ?>> message = new DefaultMessage<>(new HeaderV1((short) 1000), HeaderEntity.EMPTY_HEADER_ENTITY, mismatchingResponse);
when(deserializer.deserialize(mismatchingResponseBody)).thenReturn(message);
// when
this.agentEventHandlingFilter.handleResponseEvent(responseEvent, TEST_EVENT_TIMESTAMP);
// then
verify(this.agentEventDao, never()).insert(argCaptor.capture());
}
use of com.navercorp.pinpoint.common.server.bo.event.AgentEventBo in project pinpoint by naver.
the class AgentEventAsyncTaskService method handleEvent.
@Async("agentEventWorker")
public void handleEvent(final AgentProperty agentProperty, long eventTimestamp, AgentEventType eventType) {
Objects.requireNonNull(agentProperty, "agentProperty");
Objects.requireNonNull(eventType, "eventType");
final String agentId = agentProperty.getAgentId();
final long startTimestamp = agentProperty.getStartTime();
final AgentEventBo agentEventBo = newAgentEventBo(agentId, startTimestamp, eventTimestamp, eventType);
this.agentEventService.insert(agentEventBo);
}
Aggregations