List of usage examples for org.apache.thrift.transport AutoExpandingBufferWriteTransport AutoExpandingBufferWriteTransport
public AutoExpandingBufferWriteTransport(int initialCapacity, int frontReserve)
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); }