Remove helper methods fromBytes from Trace/Span Id (#2727)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
This commit is contained in:
		
							parent
							
								
									d932baa919
								
							
						
					
					
						commit
						d6fea3a70a
					
				| 
						 | 
				
			
			@ -123,12 +123,6 @@ final class BigendianEncoding {
 | 
			
		|||
    return result;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static void bytesToBase16(byte[] bytes, char[] dest) {
 | 
			
		||||
    for (int i = 0; i < bytes.length; i++) {
 | 
			
		||||
      byteToBase16(bytes[i], dest, i * 2);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Encodes the specified byte, and returns the encoded {@code String}.
 | 
			
		||||
   *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,22 +59,6 @@ public final class SpanId {
 | 
			
		|||
        && BigendianEncoding.isValidBase16String(spanId);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Returns the lowercase hex (base16) representation of the {@code SpanId} converted from the
 | 
			
		||||
   * given bytes representation.
 | 
			
		||||
   *
 | 
			
		||||
   * @param spanIdBytes the bytes (8-byte array) representation of the {@code SpanId}.
 | 
			
		||||
   * @return the lowercase hex (base16) representation of the {@code SpanId}.
 | 
			
		||||
   * @throws NullPointerException if {@code spanIdBytes} is null.
 | 
			
		||||
   * @throws IndexOutOfBoundsException if {@code spanIdBytes} too short.
 | 
			
		||||
   */
 | 
			
		||||
  public static String fromBytes(byte[] spanIdBytes) {
 | 
			
		||||
    Objects.requireNonNull(spanIdBytes, "spanIdBytes");
 | 
			
		||||
    char[] result = getTemporaryBuffer();
 | 
			
		||||
    BigendianEncoding.bytesToBase16(spanIdBytes, result);
 | 
			
		||||
    return new String(result);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Returns the bytes (8-byte array) representation of the {@code SpanId} converted from the given
 | 
			
		||||
   * lowercase hex (base16) representation.
 | 
			
		||||
| 
						 | 
				
			
			@ -98,9 +82,6 @@ public final class SpanId {
 | 
			
		|||
   * rules applying to {@code SpanId}. Specifying 0 for the long value will effectively return
 | 
			
		||||
   * {@link #getInvalid()}.
 | 
			
		||||
   *
 | 
			
		||||
   * <p>This is equivalent to calling {@link #fromBytes(byte[])} with the specified value stored as
 | 
			
		||||
   * big-endian.
 | 
			
		||||
   *
 | 
			
		||||
   * @param id the higher part of the {@code TraceId}.
 | 
			
		||||
   * @return the lowercase hex (base16) representation of the {@code SpanId}.
 | 
			
		||||
   */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,22 +63,6 @@ public final class TraceId {
 | 
			
		|||
        && BigendianEncoding.isValidBase16String(traceId);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Returns the lowercase hex (base16) representation of the {@code TraceId} converted from the
 | 
			
		||||
   * given bytes representation.
 | 
			
		||||
   *
 | 
			
		||||
   * @param traceIdBytes the bytes (16-byte array) representation of the {@code TraceId}.
 | 
			
		||||
   * @return the lowercase hex (base16) representation of the {@code TraceId}.
 | 
			
		||||
   * @throws NullPointerException if {@code traceIdBytes} is null.
 | 
			
		||||
   * @throws IndexOutOfBoundsException if {@code traceIdBytes} too short.
 | 
			
		||||
   */
 | 
			
		||||
  public static String fromBytes(byte[] traceIdBytes) {
 | 
			
		||||
    Objects.requireNonNull(traceIdBytes, "traceIdBytes");
 | 
			
		||||
    char[] result = getTemporaryBuffer();
 | 
			
		||||
    BigendianEncoding.bytesToBase16(traceIdBytes, result);
 | 
			
		||||
    return new String(result);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Returns the bytes (16-byte array) representation of the {@code TraceId} converted from the
 | 
			
		||||
   * given lowercase hex (base16) representation.
 | 
			
		||||
| 
						 | 
				
			
			@ -102,9 +86,6 @@ public final class TraceId {
 | 
			
		|||
   * rules applying to {@code TraceId}. Specifying 0 for both values will effectively return {@link
 | 
			
		||||
   * #getInvalid()}.
 | 
			
		||||
   *
 | 
			
		||||
   * <p>This is equivalent to calling {@link #fromBytes(byte[])} with the specified values stored as
 | 
			
		||||
   * big-endian.
 | 
			
		||||
   *
 | 
			
		||||
   * @param traceIdLongHighPart the higher part of the long values representation of the {@code
 | 
			
		||||
   *     TraceId}.
 | 
			
		||||
   * @param traceIdLongLowPart the lower part of the long values representation of the {@code
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,7 +12,9 @@ import org.junit.jupiter.api.Test;
 | 
			
		|||
 | 
			
		||||
/** Unit tests for {@link SpanId}. */
 | 
			
		||||
class SpanIdTest {
 | 
			
		||||
  private static final String first = "0000000000000061";
 | 
			
		||||
  private static final byte[] firstBytes = new byte[] {0, 0, 0, 0, 0, 0, 0, 'a'};
 | 
			
		||||
  private static final String second = "ff00000000000041";
 | 
			
		||||
  private static final byte[] secondBytes = new byte[] {(byte) 0xFF, 0, 0, 0, 0, 0, 0, 'A'};
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
| 
						 | 
				
			
			@ -25,25 +27,18 @@ class SpanIdTest {
 | 
			
		|||
  @Test
 | 
			
		||||
  void isValid() {
 | 
			
		||||
    assertThat(SpanId.isValid(SpanId.getInvalid())).isFalse();
 | 
			
		||||
    assertThat(SpanId.isValid(SpanId.fromBytes(firstBytes))).isTrue();
 | 
			
		||||
    assertThat(SpanId.isValid(SpanId.fromBytes(secondBytes))).isTrue();
 | 
			
		||||
    assertThat(SpanId.isValid(first)).isTrue();
 | 
			
		||||
    assertThat(SpanId.isValid(second)).isTrue();
 | 
			
		||||
    assertThat(SpanId.isValid("000000000000z000")).isFalse();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
  void fromLowerHex() {
 | 
			
		||||
    assertThat(SpanId.fromBytes(SpanId.asBytes("0000000000000000"))).isEqualTo(SpanId.getInvalid());
 | 
			
		||||
    assertThat(SpanId.asBytes(SpanId.getInvalid())).isEqualTo(new byte[] {0, 0, 0, 0, 0, 0, 0, 0});
 | 
			
		||||
    assertThat(SpanId.asBytes("0000000000000061")).isEqualTo(firstBytes);
 | 
			
		||||
    assertThat(SpanId.asBytes("ff00000000000041")).isEqualTo(secondBytes);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
  public void toLowerHex() {
 | 
			
		||||
    assertThat(SpanId.getInvalid()).isEqualTo("0000000000000000");
 | 
			
		||||
    assertThat(SpanId.fromBytes(firstBytes)).isEqualTo("0000000000000061");
 | 
			
		||||
    assertThat(SpanId.fromBytes(secondBytes)).isEqualTo("ff00000000000041");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
  void toFromLong() {
 | 
			
		||||
    Random random = new Random();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,6 @@ package io.opentelemetry.api.trace;
 | 
			
		|||
 | 
			
		||||
import static org.assertj.core.api.Assertions.assertThat;
 | 
			
		||||
 | 
			
		||||
import java.nio.ByteBuffer;
 | 
			
		||||
import java.util.Random;
 | 
			
		||||
import org.junit.jupiter.api.Test;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -17,11 +16,8 @@ class TraceIdTest {
 | 
			
		|||
      new byte[] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'a'};
 | 
			
		||||
  private static final byte[] secondBytes =
 | 
			
		||||
      new byte[] {(byte) 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'A'};
 | 
			
		||||
  private static final String first = TraceId.fromBytes(firstBytes);
 | 
			
		||||
 | 
			
		||||
  private static final String second =
 | 
			
		||||
      TraceId.fromLongs(
 | 
			
		||||
          ByteBuffer.wrap(secondBytes).getLong(), ByteBuffer.wrap(secondBytes, 8, 8).getLong());
 | 
			
		||||
  private static final String first = "00000000000000000000000000000061";
 | 
			
		||||
  private static final String second = "ff000000000000000000000000000041";
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
  void invalid() {
 | 
			
		||||
| 
						 | 
				
			
			@ -44,53 +40,25 @@ class TraceIdTest {
 | 
			
		|||
 | 
			
		||||
  @Test
 | 
			
		||||
  void testGetRandomTracePart() {
 | 
			
		||||
    byte[] id = {
 | 
			
		||||
      0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x00
 | 
			
		||||
    };
 | 
			
		||||
    String traceId = TraceId.fromBytes(id);
 | 
			
		||||
    String traceId = "0102030405060708090a0b0c0d0e0f00";
 | 
			
		||||
    assertThat(TraceId.getTraceIdRandomPart(traceId)).isEqualTo(0x090A0B0C0D0E0F00L);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
  void testGetRandomTracePart_NegativeLongRepresentation() {
 | 
			
		||||
    byte[] id = {
 | 
			
		||||
      (byte) 0xFF, // force a negative value
 | 
			
		||||
      0x01,
 | 
			
		||||
      0x02,
 | 
			
		||||
      0x03,
 | 
			
		||||
      0x04,
 | 
			
		||||
      0x05,
 | 
			
		||||
      0x06,
 | 
			
		||||
      0x00,
 | 
			
		||||
      (byte) 0xFF, // force a negative value
 | 
			
		||||
      0x0A,
 | 
			
		||||
      0x0B,
 | 
			
		||||
      0x0C,
 | 
			
		||||
      0x0D,
 | 
			
		||||
      0x0E,
 | 
			
		||||
      0x0F,
 | 
			
		||||
      0x00
 | 
			
		||||
    };
 | 
			
		||||
    String traceId = TraceId.fromBytes(id);
 | 
			
		||||
    String traceId = "ff01020304050600ff0a0b0c0d0e0f00";
 | 
			
		||||
    assertThat(TraceId.highPartAsLong(traceId)).isEqualTo(0xFF01020304050600L);
 | 
			
		||||
    assertThat(TraceId.lowPartAsLong(traceId)).isEqualTo(0xFF0A0B0C0D0E0F00L);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
  void fromLowerHex() {
 | 
			
		||||
    assertThat(TraceId.fromBytes(TraceId.asBytes("00000000000000000000000000000000")))
 | 
			
		||||
        .isEqualTo(TraceId.getInvalid());
 | 
			
		||||
  void asBytes() {
 | 
			
		||||
    assertThat(TraceId.asBytes(TraceId.getInvalid()))
 | 
			
		||||
        .isEqualTo(new byte[] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0});
 | 
			
		||||
    assertThat(TraceId.asBytes("00000000000000000000000000000061")).isEqualTo(firstBytes);
 | 
			
		||||
    assertThat(TraceId.asBytes("ff000000000000000000000000000041")).isEqualTo(secondBytes);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
  void toLowerHex() {
 | 
			
		||||
    assertThat(TraceId.getInvalid()).isEqualTo("00000000000000000000000000000000");
 | 
			
		||||
    assertThat(TraceId.fromBytes(firstBytes)).isEqualTo("00000000000000000000000000000061");
 | 
			
		||||
    assertThat(TraceId.fromBytes(secondBytes)).isEqualTo("ff000000000000000000000000000041");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
  void toFromLongs() {
 | 
			
		||||
    Random random = new Random();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,14 +15,13 @@ import static io.opentelemetry.api.common.AttributeKey.stringArrayKey;
 | 
			
		|||
import static io.opentelemetry.api.common.AttributeKey.stringKey;
 | 
			
		||||
import static org.assertj.core.api.Assertions.assertThat;
 | 
			
		||||
 | 
			
		||||
import com.google.common.io.BaseEncoding;
 | 
			
		||||
import com.google.protobuf.util.Durations;
 | 
			
		||||
import com.google.protobuf.util.Timestamps;
 | 
			
		||||
import io.opentelemetry.api.common.Attributes;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanContext;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanId;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanKind;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceFlags;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceId;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceState;
 | 
			
		||||
import io.opentelemetry.exporter.jaeger.proto.api_v2.Model;
 | 
			
		||||
import io.opentelemetry.sdk.resources.Resource;
 | 
			
		||||
| 
						 | 
				
			
			@ -42,6 +41,7 @@ import org.junit.jupiter.api.Test;
 | 
			
		|||
/** Unit tests for {@link Adapter}. */
 | 
			
		||||
class AdapterTest {
 | 
			
		||||
 | 
			
		||||
  private static final BaseEncoding hex = BaseEncoding.base16().lowerCase();
 | 
			
		||||
  private static final String LINK_TRACE_ID = "00000000000000000000000000cba123";
 | 
			
		||||
  private static final String LINK_SPAN_ID = "0000000000fed456";
 | 
			
		||||
  private static final String TRACE_ID = "00000000000000000000000000abc123";
 | 
			
		||||
| 
						 | 
				
			
			@ -73,9 +73,8 @@ class AdapterTest {
 | 
			
		|||
 | 
			
		||||
    // test
 | 
			
		||||
    Model.Span jaegerSpan = Adapter.toJaeger(span);
 | 
			
		||||
    assertThat(TraceId.fromBytes(jaegerSpan.getTraceId().toByteArray()))
 | 
			
		||||
        .isEqualTo(span.getTraceId());
 | 
			
		||||
    assertThat(SpanId.fromBytes(jaegerSpan.getSpanId().toByteArray())).isEqualTo(span.getSpanId());
 | 
			
		||||
    assertThat(hex.encode(jaegerSpan.getTraceId().toByteArray())).isEqualTo(span.getTraceId());
 | 
			
		||||
    assertThat(hex.encode(jaegerSpan.getSpanId().toByteArray())).isEqualTo(span.getSpanId());
 | 
			
		||||
    assertThat(jaegerSpan.getOperationName()).isEqualTo("GET /api/endpoint");
 | 
			
		||||
    assertThat(jaegerSpan.getStartTime()).isEqualTo(Timestamps.fromMillis(startMs));
 | 
			
		||||
    assertThat(Durations.toMillis(jaegerSpan.getDuration())).isEqualTo(duration);
 | 
			
		||||
| 
						 | 
				
			
			@ -216,8 +215,8 @@ class AdapterTest {
 | 
			
		|||
    Model.SpanRef spanRef = Adapter.toSpanRef(link);
 | 
			
		||||
 | 
			
		||||
    // verify
 | 
			
		||||
    assertThat(SpanId.fromBytes(spanRef.getSpanId().toByteArray())).isEqualTo(SPAN_ID);
 | 
			
		||||
    assertThat(TraceId.fromBytes(spanRef.getTraceId().toByteArray())).isEqualTo(TRACE_ID);
 | 
			
		||||
    assertThat(hex.encode(spanRef.getSpanId().toByteArray())).isEqualTo(SPAN_ID);
 | 
			
		||||
    assertThat(hex.encode(spanRef.getTraceId().toByteArray())).isEqualTo(TRACE_ID);
 | 
			
		||||
    assertThat(spanRef.getRefType()).isEqualTo(Model.SpanRefType.FOLLOWS_FROM);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -330,8 +329,8 @@ class AdapterTest {
 | 
			
		|||
    boolean found = false;
 | 
			
		||||
    for (Model.SpanRef spanRef : jaegerSpan.getReferencesList()) {
 | 
			
		||||
      if (Model.SpanRefType.FOLLOWS_FROM.equals(spanRef.getRefType())) {
 | 
			
		||||
        assertThat(TraceId.fromBytes(spanRef.getTraceId().toByteArray())).isEqualTo(LINK_TRACE_ID);
 | 
			
		||||
        assertThat(SpanId.fromBytes(spanRef.getSpanId().toByteArray())).isEqualTo(LINK_SPAN_ID);
 | 
			
		||||
        assertThat(hex.encode(spanRef.getTraceId().toByteArray())).isEqualTo(LINK_TRACE_ID);
 | 
			
		||||
        assertThat(hex.encode(spanRef.getSpanId().toByteArray())).isEqualTo(LINK_SPAN_ID);
 | 
			
		||||
        found = true;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -342,8 +341,8 @@ class AdapterTest {
 | 
			
		|||
    boolean found = false;
 | 
			
		||||
    for (Model.SpanRef spanRef : jaegerSpan.getReferencesList()) {
 | 
			
		||||
      if (Model.SpanRefType.CHILD_OF.equals(spanRef.getRefType())) {
 | 
			
		||||
        assertThat(TraceId.fromBytes(spanRef.getTraceId().toByteArray())).isEqualTo(TRACE_ID);
 | 
			
		||||
        assertThat(SpanId.fromBytes(spanRef.getSpanId().toByteArray())).isEqualTo(PARENT_SPAN_ID);
 | 
			
		||||
        assertThat(hex.encode(spanRef.getTraceId().toByteArray())).isEqualTo(TRACE_ID);
 | 
			
		||||
        assertThat(hex.encode(spanRef.getSpanId().toByteArray())).isEqualTo(PARENT_SPAN_ID);
 | 
			
		||||
        found = true;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@ import static org.mockito.Mockito.times;
 | 
			
		|||
import static org.mockito.Mockito.verify;
 | 
			
		||||
 | 
			
		||||
import com.google.common.collect.Lists;
 | 
			
		||||
import com.google.common.io.BaseEncoding;
 | 
			
		||||
import com.google.common.io.Closer;
 | 
			
		||||
import io.grpc.ManagedChannel;
 | 
			
		||||
import io.grpc.Server;
 | 
			
		||||
| 
						 | 
				
			
			@ -23,10 +24,8 @@ import io.grpc.stub.StreamObserver;
 | 
			
		|||
import io.opentelemetry.api.common.AttributeKey;
 | 
			
		||||
import io.opentelemetry.api.common.Attributes;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanContext;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanId;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanKind;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceFlags;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceId;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceState;
 | 
			
		||||
import io.opentelemetry.exporter.jaeger.proto.api_v2.Collector;
 | 
			
		||||
import io.opentelemetry.exporter.jaeger.proto.api_v2.CollectorServiceGrpc;
 | 
			
		||||
| 
						 | 
				
			
			@ -50,6 +49,7 @@ import org.mockito.ArgumentCaptor;
 | 
			
		|||
import org.mockito.ArgumentMatchers;
 | 
			
		||||
 | 
			
		||||
class JaegerGrpcSpanExporterTest {
 | 
			
		||||
  private static final BaseEncoding hex = BaseEncoding.base16().lowerCase();
 | 
			
		||||
  private static final String TRACE_ID = "00000000000000000000000000abc123";
 | 
			
		||||
  private static final String SPAN_ID = "0000000000def456";
 | 
			
		||||
  private static final String SPAN_ID_2 = "0000000000aef789";
 | 
			
		||||
| 
						 | 
				
			
			@ -125,7 +125,7 @@ class JaegerGrpcSpanExporterTest {
 | 
			
		|||
 | 
			
		||||
    Model.Batch batch = requestCaptor.getValue().getBatch();
 | 
			
		||||
    assertThat(batch.getSpans(0).getOperationName()).isEqualTo("GET /api/endpoint");
 | 
			
		||||
    assertThat(SpanId.fromBytes(batch.getSpans(0).getSpanId().toByteArray())).isEqualTo(SPAN_ID);
 | 
			
		||||
    assertThat(hex.encode(batch.getSpans(0).getSpanId().toByteArray())).isEqualTo(SPAN_ID);
 | 
			
		||||
 | 
			
		||||
    assertThat(
 | 
			
		||||
            getTagValue(batch.getProcess().getTagsList(), "resource-attr-key")
 | 
			
		||||
| 
						 | 
				
			
			@ -214,14 +214,12 @@ class JaegerGrpcSpanExporterTest {
 | 
			
		|||
      if (processTag.isPresent()) {
 | 
			
		||||
        assertThat(processTag2.isPresent()).isFalse();
 | 
			
		||||
        assertThat(batch.getSpans(0).getOperationName()).isEqualTo("GET /api/endpoint/1");
 | 
			
		||||
        assertThat(SpanId.fromBytes(batch.getSpans(0).getSpanId().toByteArray()))
 | 
			
		||||
            .isEqualTo(SPAN_ID);
 | 
			
		||||
        assertThat(hex.encode(batch.getSpans(0).getSpanId().toByteArray())).isEqualTo(SPAN_ID);
 | 
			
		||||
        assertThat(processTag.get().getVStr()).isEqualTo("resource-attr-value-1");
 | 
			
		||||
        assertThat(batch.getProcess().getServiceName()).isEqualTo("myServiceName1");
 | 
			
		||||
      } else if (processTag2.isPresent()) {
 | 
			
		||||
        assertThat(batch.getSpans(0).getOperationName()).isEqualTo("GET /api/endpoint/2");
 | 
			
		||||
        assertThat(SpanId.fromBytes(batch.getSpans(0).getSpanId().toByteArray()))
 | 
			
		||||
            .isEqualTo(SPAN_ID_2);
 | 
			
		||||
        assertThat(hex.encode(batch.getSpans(0).getSpanId().toByteArray())).isEqualTo(SPAN_ID_2);
 | 
			
		||||
        assertThat(processTag2.get().getVStr()).isEqualTo("resource-attr-value-2");
 | 
			
		||||
        assertThat(batch.getProcess().getServiceName()).isEqualTo("myServiceName2");
 | 
			
		||||
      } else {
 | 
			
		||||
| 
						 | 
				
			
			@ -232,7 +230,7 @@ class JaegerGrpcSpanExporterTest {
 | 
			
		|||
 | 
			
		||||
  private static void verifyBatch(Model.Batch batch) throws Exception {
 | 
			
		||||
    assertThat(batch.getSpansCount()).isEqualTo(1);
 | 
			
		||||
    assertThat(TraceId.fromBytes(batch.getSpans(0).getTraceId().toByteArray())).isEqualTo(TRACE_ID);
 | 
			
		||||
    assertThat(hex.encode(batch.getSpans(0).getTraceId().toByteArray())).isEqualTo(TRACE_ID);
 | 
			
		||||
    assertThat(batch.getProcess().getTagsCount()).isEqualTo(5);
 | 
			
		||||
 | 
			
		||||
    assertThat(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,10 +8,8 @@ package io.opentelemetry.exporter.otlp.trace;
 | 
			
		|||
import io.opentelemetry.api.common.AttributeKey;
 | 
			
		||||
import io.opentelemetry.api.common.Attributes;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanContext;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanId;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanKind;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceFlags;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceId;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceState;
 | 
			
		||||
import io.opentelemetry.sdk.common.InstrumentationLibraryInfo;
 | 
			
		||||
import io.opentelemetry.sdk.resources.Resource;
 | 
			
		||||
| 
						 | 
				
			
			@ -47,12 +45,8 @@ public class RequestMarshalState {
 | 
			
		|||
 | 
			
		||||
  private static final InstrumentationLibraryInfo INSTRUMENTATION_LIBRARY_INFO =
 | 
			
		||||
      InstrumentationLibraryInfo.create("name", null);
 | 
			
		||||
  private static final byte[] TRACE_ID_BYTES =
 | 
			
		||||
      new byte[] {123, 46, 23, 78, 12, 5, (byte) 180, (byte) 223, 45, 89, 71, 61, 62, 29, 34, 54};
 | 
			
		||||
  private static final String TRACE_ID = TraceId.fromBytes(TRACE_ID_BYTES);
 | 
			
		||||
  private static final byte[] SPAN_ID_BYTES =
 | 
			
		||||
      new byte[] {(byte) 198, (byte) 245, (byte) 213, (byte) 156, 46, 31, 29, 101};
 | 
			
		||||
  private static final String SPAN_ID = SpanId.fromBytes(SPAN_ID_BYTES);
 | 
			
		||||
  private static final String TRACE_ID = "7b2e170db4df2d593ddb4ddf2ddf2d59";
 | 
			
		||||
  private static final String SPAN_ID = "170d3ddb4d23e81f";
 | 
			
		||||
  private static final SpanContext SPAN_CONTEXT =
 | 
			
		||||
      SpanContext.create(TRACE_ID, SPAN_ID, TraceFlags.getSampled(), TraceState.getDefault());
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,10 +11,8 @@ import com.google.protobuf.CodedOutputStream;
 | 
			
		|||
import io.opentelemetry.api.common.AttributeKey;
 | 
			
		||||
import io.opentelemetry.api.common.Attributes;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanContext;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanId;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanKind;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceFlags;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceId;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceState;
 | 
			
		||||
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;
 | 
			
		||||
import io.opentelemetry.sdk.common.InstrumentationLibraryInfo;
 | 
			
		||||
| 
						 | 
				
			
			@ -52,11 +50,8 @@ class TraceMarshalerTest {
 | 
			
		|||
 | 
			
		||||
  private static final InstrumentationLibraryInfo INSTRUMENTATION_LIBRARY_INFO =
 | 
			
		||||
      InstrumentationLibraryInfo.create("name", null);
 | 
			
		||||
  private static final byte[] TRACE_ID_BYTES =
 | 
			
		||||
      new byte[] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4};
 | 
			
		||||
  private static final String TRACE_ID = TraceId.fromBytes(TRACE_ID_BYTES);
 | 
			
		||||
  private static final byte[] SPAN_ID_BYTES = new byte[] {0, 0, 0, 0, 4, 3, 2, 1};
 | 
			
		||||
  private static final String SPAN_ID = SpanId.fromBytes(SPAN_ID_BYTES);
 | 
			
		||||
  private static final String TRACE_ID = "00000000000000000000000001020304";
 | 
			
		||||
  private static final String SPAN_ID = "0000000004030201";
 | 
			
		||||
 | 
			
		||||
  private static final SpanContext SPAN_CONTEXT =
 | 
			
		||||
      SpanContext.create(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,11 +22,9 @@ import static org.assertj.core.api.Assertions.assertThat;
 | 
			
		|||
import com.google.protobuf.ByteString;
 | 
			
		||||
import io.opentelemetry.api.common.Attributes;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanContext;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanId;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanKind;
 | 
			
		||||
import io.opentelemetry.api.trace.StatusCode;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceFlags;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceId;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceState;
 | 
			
		||||
import io.opentelemetry.proto.common.v1.AnyValue;
 | 
			
		||||
import io.opentelemetry.proto.common.v1.KeyValue;
 | 
			
		||||
| 
						 | 
				
			
			@ -42,9 +40,9 @@ import org.junit.jupiter.api.Test;
 | 
			
		|||
class SpanAdapterTest {
 | 
			
		||||
  private static final byte[] TRACE_ID_BYTES =
 | 
			
		||||
      new byte[] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4};
 | 
			
		||||
  private static final String TRACE_ID = TraceId.fromBytes(TRACE_ID_BYTES);
 | 
			
		||||
  private static final String TRACE_ID = "00000000000000000000000001020304";
 | 
			
		||||
  private static final byte[] SPAN_ID_BYTES = new byte[] {0, 0, 0, 0, 4, 3, 2, 1};
 | 
			
		||||
  private static final String SPAN_ID = SpanId.fromBytes(SPAN_ID_BYTES);
 | 
			
		||||
  private static final String SPAN_ID = "0000000004030201";
 | 
			
		||||
  private static final SpanContext SPAN_CONTEXT =
 | 
			
		||||
      SpanContext.create(TRACE_ID, SPAN_ID, TraceFlags.getSampled(), TraceState.getDefault());
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,7 +13,6 @@ import io.opentelemetry.api.trace.Span;
 | 
			
		|||
import io.opentelemetry.api.trace.SpanContext;
 | 
			
		||||
import io.opentelemetry.api.trace.SpanKind;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceFlags;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceId;
 | 
			
		||||
import io.opentelemetry.api.trace.TraceState;
 | 
			
		||||
import io.opentelemetry.context.Context;
 | 
			
		||||
import io.opentelemetry.sdk.trace.IdGenerator;
 | 
			
		||||
| 
						 | 
				
			
			@ -148,26 +147,7 @@ class TraceIdRatioBasedSamplerTest {
 | 
			
		|||
    final Sampler defaultProbability = Sampler.traceIdRatioBased(0.0001);
 | 
			
		||||
    // This traceId will not be sampled by the Probability Sampler because the last 8 bytes as long
 | 
			
		||||
    // is not less than probability * Long.MAX_VALUE;
 | 
			
		||||
    String notSampledTraceId =
 | 
			
		||||
        TraceId.fromBytes(
 | 
			
		||||
            new byte[] {
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              (byte) 0x8F,
 | 
			
		||||
              (byte) 0xFF,
 | 
			
		||||
              (byte) 0xFF,
 | 
			
		||||
              (byte) 0xFF,
 | 
			
		||||
              (byte) 0xFF,
 | 
			
		||||
              (byte) 0xFF,
 | 
			
		||||
              (byte) 0xFF,
 | 
			
		||||
              (byte) 0xFF
 | 
			
		||||
            });
 | 
			
		||||
    String notSampledTraceId = "00000000000000008fffffffffffffff";
 | 
			
		||||
    SamplingResult samplingResult1 =
 | 
			
		||||
        defaultProbability.shouldSample(
 | 
			
		||||
            invalidParentContext,
 | 
			
		||||
| 
						 | 
				
			
			@ -179,26 +159,7 @@ class TraceIdRatioBasedSamplerTest {
 | 
			
		|||
    assertThat(samplingResult1.getDecision()).isEqualTo(SamplingDecision.DROP);
 | 
			
		||||
    // This traceId will be sampled by the Probability Sampler because the last 8 bytes as long
 | 
			
		||||
    // is less than probability * Long.MAX_VALUE;
 | 
			
		||||
    String sampledTraceId =
 | 
			
		||||
        TraceId.fromBytes(
 | 
			
		||||
            new byte[] {
 | 
			
		||||
              (byte) 0x00,
 | 
			
		||||
              (byte) 0x00,
 | 
			
		||||
              (byte) 0xFF,
 | 
			
		||||
              (byte) 0xFF,
 | 
			
		||||
              (byte) 0xFF,
 | 
			
		||||
              (byte) 0xFF,
 | 
			
		||||
              (byte) 0xFF,
 | 
			
		||||
              (byte) 0xFF,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0,
 | 
			
		||||
              0
 | 
			
		||||
            });
 | 
			
		||||
    String sampledTraceId = "0000ffffffffffff0000000000000000";
 | 
			
		||||
    SamplingResult samplingResult2 =
 | 
			
		||||
        defaultProbability.shouldSample(
 | 
			
		||||
            invalidParentContext,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue