diff options
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | exporters/trace/jaeger/src/main/java/io/opencensus/exporter/trace/jaeger/JaegerTraceExporter.java | 24 |
2 files changed, 26 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index c3d346b7..9a461bb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ - Add `AttributeValueDouble` to `AttributeValue`. - Allow users to report metrics for their registered domain (using custom prefix). This could be a breaking change if you have custom prefix without (registered) domain. +- Add `createWithSender` to `JaegerTraceExporter` to allow use of `HttpSender` + with extra configurations ## 0.16.0 - 2018-09-14 - Add APIs to register gRPC client and server views separately. diff --git a/exporters/trace/jaeger/src/main/java/io/opencensus/exporter/trace/jaeger/JaegerTraceExporter.java b/exporters/trace/jaeger/src/main/java/io/opencensus/exporter/trace/jaeger/JaegerTraceExporter.java index 7a9b13a5..4890f01a 100644 --- a/exporters/trace/jaeger/src/main/java/io/opencensus/exporter/trace/jaeger/JaegerTraceExporter.java +++ b/exporters/trace/jaeger/src/main/java/io/opencensus/exporter/trace/jaeger/JaegerTraceExporter.java @@ -68,6 +68,24 @@ public final class JaegerTraceExporter { } } + /** + * Creates and registers the Jaeger Trace exporter to the OpenCensus library using the provided + * HttpSender. Only one Jaeger exporter can be registered at any point. + * + * @param httpSender the pre-configured HttpSender to use with the exporter + * @param serviceName the local service name of the process. + * @throws IllegalStateException if a Jaeger exporter is already registered. + * @since 0.17 + */ + public static void createWithSender(final HttpSender httpSender, final String serviceName) { + synchronized (monitor) { + checkState(handler == null, "Jaeger exporter is already registered."); + final SpanExporter.Handler newHandler = newHandlerWithSender(httpSender, serviceName); + JaegerTraceExporter.handler = newHandler; + register(Tracing.getExportComponent().getSpanExporter(), newHandler); + } + } + private static SpanExporter.Handler newHandler( final String thriftEndpoint, final String serviceName) { final HttpSender sender = new HttpSender(thriftEndpoint); @@ -75,6 +93,12 @@ public final class JaegerTraceExporter { return new JaegerExporterHandler(sender, process); } + private static SpanExporter.Handler newHandlerWithSender( + final HttpSender sender, final String serviceName) { + final Process process = new Process(serviceName); + return new JaegerExporterHandler(sender, process); + } + /** * Registers the {@link JaegerTraceExporter}. * |