aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAshwin Chandrasekar <42815627+achandras@users.noreply.github.com>2018-09-18 12:12:13 -0400
committerYang Song <songy23@users.noreply.github.com>2018-09-18 09:12:13 -0700
commitc5365c3832860020c895c990e9d89579b11ece85 (patch)
tree5bd755d4ce3fe5b082ecbdbc7f046a9f676368ce
parent894199fea7b368228e7c873ea08f94e6fc4f46e7 (diff)
downloadopencensus-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.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}.
*