aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Song <songy23@users.noreply.github.com>2018-10-10 17:28:37 -0700
committerGitHub <noreply@github.com>2018-10-10 17:28:37 -0700
commitb1ce784d5bbdb0c3ab551cfc5df6a5ba6cae9383 (patch)
tree0bb2895aa077636216978b45d111106b750a8ff5
parent9c4df3dbe085a70850cc466849d33d90ffa846f4 (diff)
downloadopencensus-java-b1ce784d5bbdb0c3ab551cfc5df6a5ba6cae9383.tar.gz
Exporter/OcAgent: Add options on retry interval and config. (#1487)
* Exporter/OcAgent: Add options on retry interval and config. * Use options when creating Handler. * Comment out unused fileds.
-rw-r--r--exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporter.java4
-rw-r--r--exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterConfiguration.java40
-rw-r--r--exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterHandler.java32
-rw-r--r--exporters/trace/ocagent/src/test/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterConfigurationTest.java8
4 files changed, 70 insertions, 14 deletions
diff --git a/exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporter.java b/exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporter.java
index c704314a..5c468ded 100644
--- a/exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporter.java
+++ b/exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporter.java
@@ -80,7 +80,9 @@ public final class OcAgentTraceExporter {
new OcAgentTraceExporterHandler(
configuration.getEndPoint(),
configuration.getServiceName(),
- configuration.getUseInsecure());
+ configuration.getUseInsecure(),
+ configuration.getRetryInterval(),
+ configuration.getEnableConfig());
registerInternal(newHandler);
}
}
diff --git a/exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterConfiguration.java b/exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterConfiguration.java
index 0800eff6..c7bf1e95 100644
--- a/exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterConfiguration.java
+++ b/exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterConfiguration.java
@@ -17,6 +17,7 @@
package io.opencensus.exporter.trace.ocagent;
import com.google.auto.value.AutoValue;
+import io.opencensus.common.Duration;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
@@ -59,13 +60,30 @@ public abstract class OcAgentTraceExporterConfiguration {
public abstract String getServiceName();
/**
+ * Returns the retry time interval when trying to connect to Agent.
+ *
+ * @return the retry time interval.
+ * @since 0.17
+ */
+ @Nullable
+ public abstract Duration getRetryInterval();
+
+ /**
+ * Returns whether the {@link OcAgentTraceExporter} should handle the config streams.
+ *
+ * @return whether the {@code OcAgentTraceExporter} should handle the config streams.
+ * @since 0.17
+ */
+ public abstract boolean getEnableConfig();
+
+ /**
* Returns a new {@link Builder}.
*
* @return a {@code Builder}.
* @since 0.17
*/
public static Builder builder() {
- return new AutoValue_OcAgentTraceExporterConfiguration.Builder();
+ return new AutoValue_OcAgentTraceExporterConfiguration.Builder().setEnableConfig(true);
}
/**
@@ -107,6 +125,26 @@ public abstract class OcAgentTraceExporterConfiguration {
public abstract Builder setServiceName(String serviceName);
/**
+ * Sets the retry time interval when trying to connect to Agent.
+ *
+ * @param retryInterval the retry time interval.
+ * @return this.
+ * @since 0.17
+ */
+ public abstract Builder setRetryInterval(Duration retryInterval);
+
+ /**
+ * Sets whether {@link OcAgentTraceExporter} should handle the config streams.
+ *
+ * @param enableConfig whether {@code OcAgentTraceExporter} should handle the config streams.
+ * @return this.
+ * @since 0.17
+ */
+ public abstract Builder setEnableConfig(boolean enableConfig);
+
+ // TODO(songya): add an option that controls whether to always keep the RPC connection alive.
+
+ /**
* Builds a {@link OcAgentTraceExporterConfiguration}.
*
* @return a {@code OcAgentTraceExporterConfiguration}.
diff --git a/exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterHandler.java b/exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterHandler.java
index cb4b06aa..5edc06df 100644
--- a/exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterHandler.java
+++ b/exporters/trace/ocagent/src/main/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterHandler.java
@@ -16,6 +16,7 @@
package io.opencensus.exporter.trace.ocagent;
+import io.opencensus.common.Duration;
import io.opencensus.trace.export.SpanData;
import io.opencensus.trace.export.SpanExporter.Handler;
import java.util.Collection;
@@ -26,29 +27,36 @@ final class OcAgentTraceExporterHandler extends Handler {
private static final String DEFAULT_END_POINT = "localhost:55678";
private static final String DEFAULT_SERVICE_NAME = "OpenCensus";
-
- // private final String endPoint;
- // private final Node node;
- // private final boolean useInsecure;
+ private static final Duration DEFAULT_RETRY_INTERVAL = Duration.create(300, 0); // 5 minutes
OcAgentTraceExporterHandler() {
- this(null, null, null);
+ this(null, null, null, null, /* enableConfig= */ true);
}
OcAgentTraceExporterHandler(
- @Nullable String endPoint, @Nullable String serviceName, @Nullable Boolean useInsecure) {
- // this.endPoint = endPoint == null ? DEFAULT_END_POINT : endPoint;
+ @Nullable String endPoint,
+ @Nullable String serviceName,
+ @Nullable Boolean useInsecure,
+ @Nullable Duration retryInterval,
+ boolean enableConfig) {
+ // if (endPoint == null) {
+ // endPoint = DEFAULT_END_POINT;
+ // }
// if (serviceName == null) {
// serviceName = DEFAULT_SERVICE_NAME;
// }
- // this.node = OcAgentNodeUtils.getNodeInfo(serviceName);
- // this.useInsecure = useInsecure == null ? false : useInsecure;
+ // if (useInsecure == null) {
+ // useInsecure = false;
+ // }
+ // if (retryInterval == null) {
+ // retryInterval = DEFAULT_RETRY_INTERVAL;
+ // }
+ // OcAgentTraceServiceClients.startAttemptsToConnectToAgent(
+ // endPoint, useInsecure, serviceName, retryInterval.toMillis(), enableConfig);
}
@Override
public void export(Collection<SpanData> spanDataList) {
- // TODO(songya): implement this.
- // for (SpanData spanData : spanDataList) {
- // }
+ // OcAgentTraceServiceClients.onExport(spanDataList);
}
}
diff --git a/exporters/trace/ocagent/src/test/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterConfigurationTest.java b/exporters/trace/ocagent/src/test/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterConfigurationTest.java
index 4349dfd7..81bc5c60 100644
--- a/exporters/trace/ocagent/src/test/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterConfigurationTest.java
+++ b/exporters/trace/ocagent/src/test/java/io/opencensus/exporter/trace/ocagent/OcAgentTraceExporterConfigurationTest.java
@@ -18,6 +18,7 @@ package io.opencensus.exporter.trace.ocagent;
import static com.google.common.truth.Truth.assertThat;
+import io.opencensus.common.Duration;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -33,18 +34,25 @@ public class OcAgentTraceExporterConfigurationTest {
assertThat(configuration.getEndPoint()).isNull();
assertThat(configuration.getServiceName()).isNull();
assertThat(configuration.getUseInsecure()).isNull();
+ assertThat(configuration.getRetryInterval()).isNull();
+ assertThat(configuration.getEnableConfig()).isTrue();
}
@Test
public void setAndGet() {
+ Duration oneMinute = Duration.create(60, 0);
OcAgentTraceExporterConfiguration configuration =
OcAgentTraceExporterConfiguration.builder()
.setEndPoint("192.168.0.1:50051")
.setServiceName("service")
.setUseInsecure(true)
+ .setRetryInterval(oneMinute)
+ .setEnableConfig(false)
.build();
assertThat(configuration.getEndPoint()).isEqualTo("192.168.0.1:50051");
assertThat(configuration.getServiceName()).isEqualTo("service");
assertThat(configuration.getUseInsecure()).isTrue();
+ assertThat(configuration.getRetryInterval()).isEqualTo(oneMinute);
+ assertThat(configuration.getEnableConfig()).isFalse();
}
}