use of com.navercorp.pinpoint.profiler.context.id.TraceRoot in project pinpoint by naver.
the class OrderedSpanRecorderTest method testMultipleAsyncSpanEvents.
@Test
public void testMultipleAsyncSpanEvents() {
// given
final long startTime1 = 100;
final long spanId = 1L;
TraceId traceId1 = new DefaultTraceId(agentId, startTime1, 0, -1L, spanId, (short) 0);
final TraceRoot traceRoot1 = new DefaultTraceRoot(traceId1, agentId, startTime1, 0);
final long startTime2 = startTime1 + 10L;
final long spanId2 = 2L;
final TraceId traceId2 = new DefaultTraceId(agentId, startTime2, 0, -1L, spanId2, (short) 0);
final TraceRoot traceRoot2 = new DefaultTraceRoot(traceId2, agentId, startTime2, 0);
Span span = createSpan(traceRoot1, startTime1);
SpanChunk event1 = wrapSpanChunk(traceRoot1, createSpanEvent(traceRoot1, 0, 0));
SpanChunk asyncEvent1_1_1 = wrapSpanChunk(traceRoot1, createAsyncSpanEvent(traceRoot1, 0, 0), new DefaultLocalAsyncId(1, (short) 1));
SpanChunk asyncEvent1_1_2 = wrapSpanChunk(traceRoot1, createAsyncSpanEvent(traceRoot1, 0, 1), new DefaultLocalAsyncId(1, (short) 1));
SpanChunk asyncEvent1_2_1 = wrapSpanChunk(traceRoot1, createAsyncSpanEvent(traceRoot1, 0, 0), new DefaultLocalAsyncId(1, (short) 2));
SpanChunk event2 = wrapSpanChunk(traceRoot2, createSpanEvent(traceRoot2, 0, 1));
SpanChunk asyncEvent2_1 = wrapSpanChunk(traceRoot2, createAsyncSpanEvent(traceRoot2, 0, 0), new DefaultLocalAsyncId(2, (short) 1));
SpanChunk asyncEvent2_2 = wrapSpanChunk(traceRoot2, createAsyncSpanEvent(traceRoot2, 0, 0), new DefaultLocalAsyncId(2, (short) 2));
final List<SpanType> expectedOrder = Arrays.asList(span, event1, event2, asyncEvent1_1_1, asyncEvent1_1_2, asyncEvent1_2_1, asyncEvent2_1, asyncEvent2_2);
// when
final List<SpanType> listToBeHandled = Arrays.asList(span, event1, asyncEvent1_1_1, asyncEvent1_1_2, asyncEvent1_2_1, event2, asyncEvent2_1, asyncEvent2_2);
Collections.shuffle(listToBeHandled);
for (SpanType base : listToBeHandled) {
this.recorder.handleSend(base);
}
// then
ByteArrayOutputStream baos = new ByteArrayOutputStream();
this.recorder.print(new PrintStream(baos));
this.logger.debug(baos.toString());
for (SpanType expectedBase : expectedOrder) {
SpanType actualBase = this.recorder.pop();
assertSame(expectedBase, actualBase);
}
assertNull(this.recorder.pop());
}
use of com.navercorp.pinpoint.profiler.context.id.TraceRoot in project pinpoint by naver.
the class SpanAsyncStateListener method finish.
@Override
public void finish() {
if (CLOSED_UPDATER.compareAndSet(this, OPEN, CLOSED)) {
if (span.isTimeRecording()) {
span.markAfterTime();
}
final TraceRoot traceRoot = span.getTraceRoot();
SpanChunkFactory spanChunkFactory = new DefaultSpanChunkFactory(traceRoot);
final Storage storage = storageFactory.createStorage(spanChunkFactory);
storage.store(this.span);
storage.close();
}
}
use of com.navercorp.pinpoint.profiler.context.id.TraceRoot in project pinpoint by naver.
the class SpanThriftMessageConverterTest method buildTSpanChunk.
@Test
public void buildTSpanChunk() {
final SpanChunk spanChunk = newSpanChunk();
TraceRoot traceRoot = spanChunk.getTraceRoot();
TSpanChunk tSpanChunk = messageConverter.buildTSpanChunk(spanChunk);
Assert.assertEquals(traceRoot.getTraceId().getSpanId(), tSpanChunk.getSpanId());
Assert.assertEquals(traceRoot.getShared().getEndPoint(), tSpanChunk.getEndPoint());
}
use of com.navercorp.pinpoint.profiler.context.id.TraceRoot in project pinpoint by naver.
the class SpanThriftMessageConverterTest method newSpan.
private Span newSpan() {
final TraceId traceId = new DefaultTraceId(AGENT_ID, AGENT_START_TIME, 1L);
final TraceRoot traceRoot = new DefaultTraceRoot(traceId, AGENT_ID, AGENT_START_TIME, 100L);
return new Span(traceRoot);
}
use of com.navercorp.pinpoint.profiler.context.id.TraceRoot in project pinpoint by naver.
the class DefaultTransactionIdEncoderTest method testNormalTransactionId.
@Test
public void testNormalTransactionId() {
TraceRoot traceRoot = getExternalTraceId();
TraceId traceId = traceRoot.getTraceId();
ByteBuffer encodeTxId = transactionIdEncoder.encodeTransactionId(traceId);
byte[] transactionId = Arrays.copyOf(encodeTxId.array(), encodeTxId.remaining());
TransactionId parsedTxId = TransactionIdUtils.parseTransactionId(transactionId, DEFAULT_AGENT_ID);
logger.debug("transactionId:{}", parsedTxId);
Assert.assertEquals(parsedTxId.getAgentId(), agentId2);
Assert.assertEquals(parsedTxId.getAgentStartTime(), agentStartTime2);
Assert.assertEquals(parsedTxId.getTransactionSequence(), transactionId2);
}
Aggregations