@Override public boolean isSampled(Span span) { if (span instanceof SpanWrapper) { span = ((SpanWrapper) span).unwrap(Span.class); } if (span instanceof io.jaegertracing.internal.JaegerSpan) { final io.jaegertracing.internal.JaegerSpan jaegerSpan = (io.jaegertracing.internal.JaegerSpan) span; return jaegerSpan.context().isSampled(); } return false; } }
@Override public boolean isRoot(Span span) { // TODO replace with Span#unwrap once https://github.com/opentracing/opentracing-java/pull/211 is merged if (span instanceof SpanWrapper) { span = ((SpanWrapper) span).getDelegate(); } if (span instanceof io.jaegertracing.internal.JaegerSpan) { final io.jaegertracing.internal.JaegerSpan jaegerSpan = (io.jaegertracing.internal.JaegerSpan) span; return jaegerSpan.context().getParentId() == 0; } return false; }
@Override public Tracer getTracer(StagemonitorPlugin.InitArguments initArguments) { final B3TextMapCodec b3TextMapCodec = new B3TextMapCodec.Builder().build(); final JaegerTracer.Builder builder = new JaegerTracer.Builder( initArguments.getMeasurementSession().getApplicationName()) .withReporter(new NoopReporter()) .withSampler(new ConstSampler(true)) .registerInjector(B3HeaderFormat.INSTANCE, b3TextMapCodec) .registerInjector(Format.Builtin.HTTP_HEADERS, b3TextMapCodec) .registerExtractor(Format.Builtin.HTTP_HEADERS, b3TextMapCodec); return builder.build(); }
private boolean isSampled() { if (references != null) { for (Reference reference : references) { if (reference.getSpanContext().isSampled()) { return true; } } } return false; }
@Override public void finish() { if (computeDurationViaNanoTicks) { long nanoDuration = tracer.clock().currentNanoTicks() - startTimeNanoTicks; finishWithDuration(nanoDuration / 1000); } else { finish(tracer.clock().currentTimeMicros()); } }
public String getServiceName() { synchronized (this) { return this.getTracer().getServiceName(); } }
@Override public void run() { JaegerTracer.this.close(); } });
@Override public JaegerSpan setBaggageItem(String key, String value) { if (key == null || (value == null && context.getBaggageItem(key) == null)) { //Ignore attempts to add new baggage items with null values, they're not accessible anyway return this; } synchronized (this) { context = tracer.setBaggage(this, key, value); return this; } }
@Override public synchronized JaegerSpan setTag(String key, boolean value) { return setTagAsObject(key, value); }
@Override public String toString() { synchronized (this) { return context.toString() + " - " + operationName; } }
@Override public String getBaggageItem(String key) { synchronized (this) { return this.context.getBaggageItem(key); } }
@Override public void finish(long finishMicros) { finishWithDuration(finishMicros - startTimeMicroseconds); }
@Override public JaegerSpan log(long timestampMicroseconds, Map<String, ?> fields) { return log(timestampMicroseconds, null, fields); }
public Configuration withServiceName(String serviceName) { this.serviceName = JaegerTracer.Builder.checkValidServiceName(serviceName); return this; }
@Override public JaegerTracer.SpanBuilder asChildOf(SpanContext parent) { return addReference(References.CHILD_OF, parent); }
@Override public boolean isRoot(Span span) { // TODO replace with Span#unwrap once https://github.com/opentracing/opentracing-java/pull/211 is merged if (span instanceof SpanWrapper) { span = ((SpanWrapper) span).getDelegate(); } if (span instanceof io.jaegertracing.internal.JaegerSpan) { final io.jaegertracing.internal.JaegerSpan jaegerSpan = (io.jaegertracing.internal.JaegerSpan) span; return jaegerSpan.context().getParentId() == 0; } return false; }
@Override public boolean isSampled(Span span) { if (span instanceof SpanWrapper) { span = ((SpanWrapper) span).unwrap(Span.class); } if (span instanceof io.jaegertracing.internal.JaegerSpan) { final io.jaegertracing.internal.JaegerSpan jaegerSpan = (io.jaegertracing.internal.JaegerSpan) span; return jaegerSpan.context().isSampled(); } return false; } }
public synchronized void closeTracer() { if (tracer != null) { tracer.close(); } }
@Override public synchronized JaegerSpan setTag(String key, String value) { return setTagAsObject(key, value); }
@Override public synchronized JaegerSpan setTag(String key, Number value) { return setTagAsObject(key, value); }