aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md2
-rw-r--r--exporters/trace/jaeger/src/main/java/io/opencensus/exporter/trace/jaeger/JaegerTraceExporter.java24
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}.
*