SpanId parentSpanId = new SpanId( header.getTraceInfo().getTraceId(), header.getTraceInfo().getParentId());
public static SpanId fromString(String str) { if (str.length() != SPAN_ID_STRING_LENGTH) { throw new RuntimeException("Invalid SpanID string: length was not " + SPAN_ID_STRING_LENGTH); } long high = ((Long.parseLong(str.substring(0, 8), 16)) << 32) | (Long.parseLong(str.substring(8, 16), 16)); long low = ((Long.parseLong(str.substring(16, 24), 16)) << 32) | (Long.parseLong(str.substring(24, 32), 16)); return new SpanId(high, low); }
public static SpanId fromString(String str) { if (str.length() != SPAN_ID_STRING_LENGTH) { throw new RuntimeException("Invalid SpanID string: length was not " + SPAN_ID_STRING_LENGTH); } long high = ((Long.parseLong(str.substring(0, 8), 16)) << 32) | (Long.parseLong(str.substring(8, 16), 16)); long low = ((Long.parseLong(str.substring(16, 24), 16)) << 32) | (Long.parseLong(str.substring(24, 32), 16)); return new SpanId(high, low); }
public static SpanId fromString(String str) { if (str.length() != SPAN_ID_STRING_LENGTH) { throw new RuntimeException("Invalid SpanID string: length was not " + SPAN_ID_STRING_LENGTH); } long high = ((Long.parseLong(str.substring(0, 8), 16)) << 32) | (Long.parseLong(str.substring(8, 16), 16)); long low = ((Long.parseLong(str.substring(16, 24), 16)) << 32) | (Long.parseLong(str.substring(24, 32), 16)); return new SpanId(high, low); }
public SpanId newChildId() { return new SpanId(high, nonZeroRand64()); } }
public SpanId newChildId() { return new SpanId(high, nonZeroRand64()); } }
public SpanId newChildId() { return new SpanId(high, nonZeroRand64()); } }
public static SpanId fromRandom() { return new SpanId(nonZeroRand64(), nonZeroRand64()); }
public static SpanId fromRandom() { return new SpanId(nonZeroRand64(), nonZeroRand64()); }
public static SpanId fromRandom() { return new SpanId(nonZeroRand64(), nonZeroRand64()); }
@Test public void testIdComparisons() throws Exception { expectLessThan(new SpanId(0x0000000000000001L, 0x0000000000000001L), new SpanId(0x0000000000000001L, 0x0000000000000002L)); expectLessThan(new SpanId(0x0000000000000001L, 0x0000000000000001L), new SpanId(0x0000000000000002L, 0x0000000000000000L)); expectLessThan(SpanId.INVALID, new SpanId(0xffffffffffffffffL, 0xffffffffffffffffL)); expectLessThan(new SpanId(0x1234567812345678L, 0x1234567812345678L), new SpanId(0x1234567812345678L, 0xf234567812345678L)); } }
@Test public void testToStringAndFromString() throws Exception { testRoundTrip(SpanId.INVALID); testRoundTrip(new SpanId(0x1234567812345678L, 0x1234567812345678L)); testRoundTrip(new SpanId(0xf234567812345678L, 0xf234567812345678L)); testRoundTrip(new SpanId(0xffffffffffffffffL, 0xffffffffffffffffL)); Random rand = new Random(12345); for (int i = 0; i < 100; i++) { testRoundTrip(new SpanId(rand.nextLong(), rand.nextLong())); } }
public static SpanId fromProto(DataTransferTraceInfoProto proto) { if ((proto != null) && proto.hasTraceId() && proto.hasParentId()) { return new SpanId(proto.getTraceId(), proto.getParentId()); } return null; }
@Override public SpanId getSpanId() { return new SpanId(span.getTraceId(), span.getSpanId()); }
@Override public SpanId[] getParents() { return (span.getParentId() == 0L) ? (new SpanId[] {}) : (new SpanId[] { new SpanId(span.getTraceId(), span.getParentId()) }); }
@Test public void testJsonSerialization() throws Exception { MilliSpan span = new MilliSpan.Builder(). description("foospan"). begin(123L). end(456L). parents(new SpanId[] { new SpanId(7L, 7L) }). tracerId("b2404.halxg.com:8080"). spanId(new SpanId(7L, 8L)). build(); String json = span.toJson(); MilliSpan dspan = MilliSpan.fromJson(json); compareSpans(span, dspan); }
@Test public void testJsonSerializationWithNegativeLongValue() throws Exception { MilliSpan span = new MilliSpan.Builder(). description("foospan"). begin(-1L). end(-1L). parents(new SpanId[] { new SpanId(-1L, -1L) }). tracerId("b2404.halxg.com:8080"). spanId(new SpanId(-1L, -2L)). build(); String json = span.toJson(); MilliSpan dspan = MilliSpan.fromJson(json); compareSpans(span, dspan); }
@Test public void testSimpleTraces() throws IOException, InterruptedException { FakeZipkinTransport transport = new FakeZipkinTransport(); Tracer tracer = newTracer(transport); Span rootSpan = new MilliSpan.Builder(). description("root"). spanId(new SpanId(100, 100)). tracerId("test"). begin(System.currentTimeMillis()). build(); TraceScope rootScope = tracer.newScope("root"); TraceScope innerOne = tracer.newScope("innerOne"); TraceScope innerTwo = tracer.newScope("innerTwo"); innerTwo.close(); Assert.assertTrue(transport.nextMessageAsSpan().getName().contains("innerTwo")); innerOne.close(); Assert.assertTrue(transport.nextMessageAsSpan().getName().contains("innerOne")); rootSpan.addKVAnnotation("foo", "bar"); rootSpan.addTimelineAnnotation("timeline"); rootScope.close(); Assert.assertTrue(transport.nextMessageAsSpan().getName().contains("root")); tracer.close(); }
@Test(timeout=60000) public void testRootSpansHaveNonZeroSpanId() throws Exception { Tracer tracer = new Tracer.Builder(). name("testRootSpansHaveNonZeroSpanId"). tracerPool(new TracerPool("testRootSpansHaveNonZeroSpanId")). conf(HTraceConfiguration.fromKeyValuePairs( "sampler.classes", "AlwaysSampler")).build(); TraceScope scope = tracer. newScope("myRootSpan", new SpanId(100L, 200L)); Assert.assertNotNull(scope); Assert.assertEquals("myRootSpan", scope.getSpan().getDescription()); Assert.assertTrue(scope.getSpan().getSpanId().isValid()); Assert.assertEquals(100L, scope.getSpan().getSpanId().getHigh()); Assert.assertNotEquals(0L, scope.getSpan().getSpanId().getLow()); scope.close(); } }