diff options
author | Ashwin Chandrasekar <42815627+achandras@users.noreply.github.com> | 2018-09-18 12:12:13 -0400 |
---|---|---|
committer | Yang Song <songy23@users.noreply.github.com> | 2018-09-18 09:12:13 -0700 |
commit | c5365c3832860020c895c990e9d89579b11ece85 (patch) | |
tree | 5bd755d4ce3fe5b082ecbdbc7f046a9f676368ce | |
parent | 894199fea7b368228e7c873ea08f94e6fc4f46e7 (diff) | |
download | opencensus-java-c5365c3832860020c895c990e9d89579b11ece85.tar.gz |
Pass a preconfigured HttpSender to the trace exporter (#1444)
* Pass a preconfigured HttpSender to the trace exporter
* Add createWithSender to changelog
-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}. * |