zipkin2.reporter.brave.ConvertingZipkinSpanHandler Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of zipkin-reporter-brave Show documentation
Show all versions of zipkin-reporter-brave Show documentation
Adapts a Reporter to a Brave SpanHandler
/*
* Copyright The OpenZipkin Authors
* SPDX-License-Identifier: Apache-2.0
*/
package zipkin2.reporter.brave;
import brave.handler.SpanHandler;
import zipkin2.Span;
import zipkin2.reporter.Reporter;
final class ConvertingZipkinSpanHandler extends ZipkinSpanHandler {
@Override public ZipkinSpanHandler.Builder toBuilder() {
return new Builder(((ConvertingSpanReporter) spanReporter).delegate);
}
static final class Builder extends ZipkinSpanHandler.Builder {
final Reporter spanReporter;
Builder(Reporter spanReporter) {
this.spanReporter = spanReporter;
}
// SpanHandler not ZipkinSpanHandler as it can coerce to NOOP
@Override public SpanHandler build() {
if (spanReporter == Reporter.NOOP) return SpanHandler.NOOP;
return new ConvertingZipkinSpanHandler(this);
}
}
ConvertingZipkinSpanHandler(Builder builder) {
super(new ConvertingSpanReporter(builder.spanReporter, builder.errorTag),
builder.errorTag, builder.alwaysReportSpans);
}
}