private boolean isSampled() { if (references != null) { for (Reference reference : references) { if (reference.getSpanContext().isSampled()) { return true; } } } return false; }
private String getDebugId() { if (references.isEmpty()) { return null; } return references.get(0).getSpanContext().getDebugId(); }
static List<SpanRef> buildReferences(List<Reference> references) { List<SpanRef> thriftReferences = new ArrayList<SpanRef>(references.size()); for (Reference reference: references) { SpanRefType thriftRefType = References.CHILD_OF.equals(reference.getType()) ? SpanRefType.CHILD_OF : SpanRefType.FOLLOWS_FROM; thriftReferences.add(new SpanRef(thriftRefType, reference.getSpanContext().getTraceIdLow(), reference.getSpanContext().getTraceIdHigh(), reference.getSpanContext().getSpanId())); } return thriftReferences; }
private Map<String, String> getBaggage() { Map<String, String> baggage = null; // optimization for 99% use cases, when there is only one parent if (references.size() == 1) { return references.get(0).getSpanContext().baggage(); } for (Reference reference: references) { if (reference.getSpanContext().baggage() != null) { if (baggage == null) { baggage = new HashMap<String, String>(); } baggage.putAll(reference.getSpanContext().baggage()); } } return baggage; }
private JaegerSpanContext preferredReference() { Reference preferredReference = references.get(0); for (Reference reference: references) { // childOf takes precedence as a preferred parent if (References.CHILD_OF.equals(reference.getType()) && !References.CHILD_OF.equals(preferredReference.getType())) { preferredReference = reference; break; } } return preferredReference.getSpanContext(); }
@Test public void testThatNewInnerSpanIsCreatedUsingAsyncInvocation() { final JaegerSpanContext spanId = fromRandom(); final Response r = withTrace(createWebClient("/bookstore/books/async"), spanId).get(); assertEquals(Status.OK.getStatusCode(), r.getStatus()); assertThat(TestSender.getAllSpans().size(), equalTo(2)); assertThat(TestSender.getAllSpans().get(0).getOperationName(), equalTo("Processing books")); assertThat(TestSender.getAllSpans().get(1).getOperationName(), equalTo("GET /bookstore/books/async")); assertThat(TestSender.getAllSpans().get(1).getReferences(), not(empty())); assertThat(TestSender.getAllSpans().get(1).getReferences().get(0).getSpanContext().getSpanId(), equalTo(spanId.getSpanId())); }
if (references.isEmpty() || !references.get(0).getSpanContext().hasTrace()) { context = createNewContext(); } else {