Example usage for org.apache.thrift.transport AutoExpandingBufferWriteTransport AutoExpandingBufferWriteTransport

List of usage examples for org.apache.thrift.transport AutoExpandingBufferWriteTransport AutoExpandingBufferWriteTransport

Introduction

In this page you can find the example usage for org.apache.thrift.transport AutoExpandingBufferWriteTransport AutoExpandingBufferWriteTransport.

Prototype

public AutoExpandingBufferWriteTransport(int initialCapacity, int frontReserve) 

Source Link

Document

Constructor.

Usage

From source file:com.uber.jaeger.senders.ThriftSender.java

License:Apache License

public ThriftSender(TProtocolFactory protocolFactory, int maxPacketSize) {
    this.protocolFactory = protocolFactory;

    if (maxPacketSize == 0) {
        maxPacketSize = ThriftUdpTransport.MAX_PACKET_SIZE;
    }/*www . j  av  a2 s .c o  m*/

    memoryTransport = new AutoExpandingBufferWriteTransport(maxPacketSize, 2);
    maxSpanBytes = maxPacketSize - EMIT_BATCH_OVERHEAD;
    spanBuffer = new ArrayList<com.uber.jaeger.thriftjava.Span>();
}

From source file:com.uber.jaeger.senders.UDPSender.java

License:Open Source License

public UDPSender(String host, int port, int maxPacketSize) {
    if (host == null || host.length() == 0) {
        host = defaultUDPSpanServerHost;
    }/*from w ww .j a  v a2s.c om*/

    if (port == 0) {
        port = defaultUDPSpanServerPort;
    }

    if (maxPacketSize == 0) {
        maxPacketSize = defaultUDPPacketSize;
    }

    memoryTransport = new AutoExpandingBufferWriteTransport(maxPacketSize, 2);

    udpTransport = TUDPTransport.NewTUDPClient(host, port);
    udpClient = new Agent.Client(new TCompactProtocol(udpTransport));
    maxSpanBytes = maxPacketSize - emitZipkinBatchOverhead;
    spanBuffer = new ArrayList<>();
}

From source file:com.uber.jaeger.senders.UDPSenderTest.java

License:Open Source License

@Test
public void testAppend() throws Exception {
    // find size of the initial span
    AutoExpandingBufferWriteTransport memoryTransport = new AutoExpandingBufferWriteTransport(maxPacketSize, 2);
    com.twitter.zipkin.thriftjava.Span span = ThriftSpanConverter
            .convertSpan((Span) tracer.buildSpan("raza").start());
    span.write(new TCompactProtocol(memoryTransport));
    int spanSize = memoryTransport.getPos();

    // create a sender thats a multiple of the span size (accounting for span overhead)
    // this allows us to test the boundary conditions of writing spans.
    int expectedNumSpans = 11;
    int maxPacketSize = (spanSize * expectedNumSpans) + sender.emitZipkinBatchOverhead;
    sender = new UDPSender(destHost, destPort, maxPacketSize);

    int maxPacketSizeLeft = maxPacketSize - sender.emitZipkinBatchOverhead;
    // add enough spans to be under buffer limit
    while (spanSize < maxPacketSizeLeft) {
        sender.append(span);/*from   w w  w .  j  ava 2s .c om*/
        maxPacketSizeLeft -= spanSize;
    }

    // add a span that overflows the limit to hit the last branch
    int result = sender.append(span);

    assertEquals(expectedNumSpans, result);
}

From source file:com.uber.jaeger.senders.UDPSenderTest.java

License:Open Source License

private int calculateZipkinBatchOverheadDifference(int numberOfSpans) throws Exception {
    AutoExpandingBufferWriteTransport memoryTransport = new AutoExpandingBufferWriteTransport(maxPacketSize, 2);
    Agent.Client memoryClient = new Agent.Client(new TCompactProtocol(memoryTransport));
    Span jaegerSpan = (Span) tracer.buildSpan("raza").start();
    com.twitter.zipkin.thriftjava.Span span = ThriftSpanConverter.convertSpan(jaegerSpan);
    List<com.twitter.zipkin.thriftjava.Span> spans = new ArrayList<>();
    for (int i = 0; i < numberOfSpans; i++) {
        spans.add(span);// www.j  av a 2  s.c om
    }

    memoryClient.emitZipkinBatch(spans);
    int emitZipkinBatchOverheadMultipleSpans = memoryTransport.getPos();

    memoryTransport.reset();
    for (int j = 0; j < numberOfSpans; j++) {
        span.write(new TCompactProtocol(memoryTransport));
    }
    int writeZipkinBatchOverheadMultipleSpans = memoryTransport.getPos();

    return emitZipkinBatchOverheadMultipleSpans - writeZipkinBatchOverheadMultipleSpans;
}

From source file:com.uber.jaeger.senders.zipkin.ZipkinSenderTest.java

License:Open Source License

@Test
public void testAppend() throws Exception {
    // find size of the initial span
    AutoExpandingBufferWriteTransport memoryTransport = new AutoExpandingBufferWriteTransport(messageMaxBytes,
            2);/*from  w  w w  .ja v  a  2s  .c o m*/
    com.twitter.zipkin.thriftjava.Span span = ThriftSpanConverter
            .convertSpan((Span) tracer.buildSpan("raza").start());

    int expectedNumSpans = 11;
    List<byte[]> spansToSend = new ArrayList(expectedNumSpans);
    for (int i = 0; i < expectedNumSpans; i++)
        spansToSend.add(new ThriftSpanEncoder().encode(sender.backFillHostOnAnnotations(span)));

    // create a sender thats a multiple of the span size (accounting for span overhead)
    // this allows us to test the boundary conditions of writing spans.
    int messageMaxBytes = sender.delegate.messageSizeInBytes(spansToSend);
    sender.close();
    sender = newSender(messageMaxBytes);

    // add enough spans to be under buffer limit
    for (int i = 0; i < expectedNumSpans - 1; i++) {
        assertEquals(0, sender.append(span));
    }

    // add a span that overflows the limit to hit the last branch
    int result = sender.append(span);
    assertEquals(expectedNumSpans, result);
}

From source file:io.jaegertracing.senders.zipkin.ZipkinSenderTest.java

License:Apache License

@Test
public void testAppend() throws Exception {
    // find size of the initial span
    AutoExpandingBufferWriteTransport memoryTransport = new AutoExpandingBufferWriteTransport(messageMaxBytes,
            2);//from  ww  w.  jav a  2 s  . c o  m
    Span jaegerSpan = (Span) tracer.buildSpan("raza").startManual();
    com.twitter.zipkin.thriftjava.Span span = ThriftSpanConverter.convertSpan(jaegerSpan);

    int expectedNumSpans = 11;
    List<byte[]> spansToSend = new ArrayList<>(expectedNumSpans);
    for (int i = 0; i < expectedNumSpans; i++) {
        spansToSend.add(new ThriftSpanEncoder().encode(sender.backFillHostOnAnnotations(span)));
    }

    // create a sender thats a multiple of the span size (accounting for span overhead)
    // this allows us to test the boundary conditions of writing spans.
    int messageMaxBytes = sender.delegate.messageSizeInBytes(spansToSend);
    sender.close();
    sender = newSender(messageMaxBytes);

    // add enough spans to be under buffer limit
    for (int i = 0; i < expectedNumSpans - 1; i++) {
        assertEquals(0, sender.append(jaegerSpan));
    }

    // add a span that overflows the limit to hit the last branch
    int result = sender.append(jaegerSpan);
    assertEquals(expectedNumSpans, result);
}

From source file:io.jaegertracing.thrift.internal.reporters.protocols.ThriftSenderBaseTest.java

License:Apache License

private int calculateBatchOverheadDifference(int numberOfSpans) throws Exception {
    AutoExpandingBufferWriteTransport memoryTransport = new AutoExpandingBufferWriteTransport(maxPacketSize, 2);
    Agent.Client memoryClient = new Agent.Client(new TCompactProtocol((memoryTransport)));
    Span span = new Span();
    span.setOperationName("raza");
    //0, 0, 0, 0, "raza", 0, 0, 0);
    List<Span> spans = new ArrayList<>();
    for (int i = 0; i < numberOfSpans; i++) {
        spans.add(span);//from   w w w  .  j ava 2 s . c  om
    }

    memoryClient.emitBatch(new Batch(new io.jaegertracing.thriftjava.Process(SERVICE_NAME), spans));
    int emitBatchOverheadMultipleSpans = memoryTransport.getPos();

    memoryTransport.reset();
    for (int j = 0; j < numberOfSpans; j++) {
        span.write(new TCompactProtocol(memoryTransport));
    }
    int writeBatchOverheadMultipleSpans = memoryTransport.getPos();

    return emitBatchOverheadMultipleSpans - writeBatchOverheadMultipleSpans;
}

From source file:io.jaegertracing.thrift.internal.senders.ThriftSenderBase.java

License:Apache License

/**
 * @param protocolType protocol type (compact or binary)
 * @param maxPacketSize if 0 it will use default value {@value ThriftUdpTransport#MAX_PACKET_SIZE}
 *//*  www .j  a  va 2 s . c  om*/
public ThriftSenderBase(ProtocolType protocolType, int maxPacketSize) {
    switch (protocolType) {
    case Binary:
        this.protocolFactory = new TBinaryProtocol.Factory();
        break;
    case Compact:
        this.protocolFactory = new TCompactProtocol.Factory();
        break;
    default:
        this.protocolFactory = null;
        log.error("Unknown thrift protocol type specified: " + protocolType);
        break;
    }

    if (maxPacketSize == 0) {
        maxPacketSize = ThriftUdpTransport.MAX_PACKET_SIZE;
    }

    maxSpanBytes = maxPacketSize - EMIT_BATCH_OVERHEAD;
    memoryTransport = new AutoExpandingBufferWriteTransport(maxPacketSize, 2);
    serializer = new TSerializer(protocolFactory);
}

From source file:org.apache.accumulo.core.util.ThriftMessageUtil.java

License:Apache License

public ThriftMessageUtil(int initialCapacity, double growthCoefficient) {
    // TODO does this make sense? better to push this down to the serialize method (accept the transport as an argument)?
    this.transport = new AutoExpandingBufferWriteTransport(initialCapacity, growthCoefficient);
    this.protocol = new TCompactProtocol(transport);
}