Search in sources :

Example 26 with Span

use of com.navercorp.pinpoint.profiler.context.Span in project pinpoint by naver.

the class SpanStreamSendDataSerializerTest method createSpanEventList.

private List<SpanEvent> createSpanEventList(int size) throws InterruptedException {
    Span span = new Span();
    List<SpanEvent> spanEventList = new ArrayList<SpanEvent>(size);
    for (int i = 0; i < size; i++) {
        SpanEvent spanEvent = new SpanEvent(span);
        spanEvent.markStartTime();
        Thread.sleep(1);
        spanEvent.markAfterTime();
        spanEventList.add(spanEvent);
    }
    return spanEventList;
}
Also used : ArrayList(java.util.ArrayList) SpanEvent(com.navercorp.pinpoint.profiler.context.SpanEvent) TSpanEvent(com.navercorp.pinpoint.thrift.dto.TSpanEvent) TSpan(com.navercorp.pinpoint.thrift.dto.TSpan) Span(com.navercorp.pinpoint.profiler.context.Span)

Example 27 with Span

use of com.navercorp.pinpoint.profiler.context.Span in project pinpoint by naver.

the class SpanStreamSendDataSerializerTest method spanStreamSendDataSerializerTest2.

@Test
public void spanStreamSendDataSerializerTest2() throws InterruptedException, TException {
    int spanEventSize = 10;
    SpanStreamSendDataSerializer serializer = new SpanStreamSendDataSerializer();
    HeaderTBaseSerializerFactory factory = new HeaderTBaseSerializerFactory();
    Span span = createSpan(createSpanEventList(spanEventSize));
    PartitionedByteBufferLocator partitionedByteBufferLocator = serializer.serializeSpanStream(factory.createSerializer(), span);
    Assert.assertEquals(spanEventSize + 1, partitionedByteBufferLocator.getPartitionedCount());
    HeaderTBaseDeserializer deserializer = new HeaderTBaseDeserializerFactory().createDeserializer();
    for (int i = 0; i < partitionedByteBufferLocator.getPartitionedCount(); i++) {
        ByteBuffer byteBuffer = partitionedByteBufferLocator.getByteBuffer(i);
        byte[] readBuffer = new byte[byteBuffer.remaining()];
        byteBuffer.get(readBuffer);
        Object o = deserializer.deserialize(readBuffer);
        if (o == null) {
            Assert.fail();
        }
        if (i < spanEventSize) {
            Assert.assertTrue(o instanceof TSpanEvent);
        } else {
            Assert.assertTrue(o instanceof TSpan);
        }
    }
}
Also used : HeaderTBaseSerializerFactory(com.navercorp.pinpoint.thrift.io.HeaderTBaseSerializerFactory) TSpan(com.navercorp.pinpoint.thrift.dto.TSpan) TSpan(com.navercorp.pinpoint.thrift.dto.TSpan) Span(com.navercorp.pinpoint.profiler.context.Span) HeaderTBaseDeserializer(com.navercorp.pinpoint.thrift.io.HeaderTBaseDeserializer) HeaderTBaseDeserializerFactory(com.navercorp.pinpoint.thrift.io.HeaderTBaseDeserializerFactory) ByteBuffer(java.nio.ByteBuffer) TSpanEvent(com.navercorp.pinpoint.thrift.dto.TSpanEvent) Test(org.junit.Test)

Example 28 with Span

use of com.navercorp.pinpoint.profiler.context.Span 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());
}
Also used : PrintStream(java.io.PrintStream) SpanType(com.navercorp.pinpoint.profiler.context.SpanType) DefaultTraceId(com.navercorp.pinpoint.profiler.context.id.DefaultTraceId) DefaultTraceRoot(com.navercorp.pinpoint.profiler.context.id.DefaultTraceRoot) DefaultSpanChunk(com.navercorp.pinpoint.profiler.context.DefaultSpanChunk) SpanChunk(com.navercorp.pinpoint.profiler.context.SpanChunk) DefaultAsyncSpanChunk(com.navercorp.pinpoint.profiler.context.DefaultAsyncSpanChunk) TraceId(com.navercorp.pinpoint.bootstrap.context.TraceId) DefaultTraceId(com.navercorp.pinpoint.profiler.context.id.DefaultTraceId) DefaultLocalAsyncId(com.navercorp.pinpoint.profiler.context.DefaultLocalAsyncId) DefaultTraceRoot(com.navercorp.pinpoint.profiler.context.id.DefaultTraceRoot) TraceRoot(com.navercorp.pinpoint.profiler.context.id.TraceRoot) ByteArrayOutputStream(java.io.ByteArrayOutputStream) Span(com.navercorp.pinpoint.profiler.context.Span) Test(org.junit.Test)

Example 29 with Span

use of com.navercorp.pinpoint.profiler.context.Span in project pinpoint by naver.

the class BufferedStorageTest method testStore_flush.

@Test
public void testStore_flush() throws Exception {
    BufferedStorage bufferedStorage = newBufferedStorage(1);
    Span span = new Span(internalTraceId);
    SpanEvent spanEvent = new SpanEvent();
    bufferedStorage.store(spanEvent);
    bufferedStorage.store(spanEvent);
    Assert.assertEquals(2, countingDataSender.getSenderCounter());
    Assert.assertEquals(2, countingDataSender.getTotalCount());
    Assert.assertEquals(2, countingDataSender.getSpanChunkCounter());
    Assert.assertEquals(0, countingDataSender.getSpanCounter());
}
Also used : SpanEvent(com.navercorp.pinpoint.profiler.context.SpanEvent) Span(com.navercorp.pinpoint.profiler.context.Span) Test(org.junit.Test)

Example 30 with Span

use of com.navercorp.pinpoint.profiler.context.Span in project pinpoint by naver.

the class BufferedStorageTest method testStore_spanLastFlush.

@Test
public void testStore_spanLastFlush() throws Exception {
    BufferedStorage bufferedStorage = newBufferedStorage(10);
    Span span = new Span(internalTraceId);
    SpanEvent spanEvent = new SpanEvent();
    bufferedStorage.store(spanEvent);
    bufferedStorage.store(spanEvent);
    bufferedStorage.store(span);
    Assert.assertEquals(1, countingDataSender.getSenderCounter());
    Assert.assertEquals(1, countingDataSender.getTotalCount());
    Assert.assertEquals(1, countingDataSender.getSpanCounter());
    Assert.assertEquals(0, countingDataSender.getSpanChunkCounter());
}
Also used : SpanEvent(com.navercorp.pinpoint.profiler.context.SpanEvent) Span(com.navercorp.pinpoint.profiler.context.Span) Test(org.junit.Test)

Aggregations

Span (com.navercorp.pinpoint.profiler.context.Span)34 SpanEvent (com.navercorp.pinpoint.profiler.context.SpanEvent)18 Test (org.junit.Test)16 TSpanEvent (com.navercorp.pinpoint.thrift.dto.TSpanEvent)11 TSpan (com.navercorp.pinpoint.thrift.dto.TSpan)8 DefaultTraceId (com.navercorp.pinpoint.profiler.context.id.DefaultTraceId)7 ArrayList (java.util.ArrayList)7 SpanChunk (com.navercorp.pinpoint.profiler.context.SpanChunk)6 DefaultTraceRoot (com.navercorp.pinpoint.profiler.context.id.DefaultTraceRoot)6 TraceRoot (com.navercorp.pinpoint.profiler.context.id.TraceRoot)6 TraceId (com.navercorp.pinpoint.bootstrap.context.TraceId)5 PSpan (com.navercorp.pinpoint.grpc.trace.PSpan)5 SpanType (com.navercorp.pinpoint.profiler.context.SpanType)4 SpanRecorder (com.navercorp.pinpoint.bootstrap.context.SpanRecorder)3 DefaultAsyncSpanChunk (com.navercorp.pinpoint.profiler.context.DefaultAsyncSpanChunk)3 DefaultLocalAsyncId (com.navercorp.pinpoint.profiler.context.DefaultLocalAsyncId)3 DefaultSpanChunk (com.navercorp.pinpoint.profiler.context.DefaultSpanChunk)3 ByteArrayOutputStream (java.io.ByteArrayOutputStream)3 PrintStream (java.io.PrintStream)3 PSpanEvent (com.navercorp.pinpoint.grpc.trace.PSpanEvent)2