aboutsummaryrefslogtreecommitdiffstats
path: root/exporters
diff options
context:
space:
mode:
authorYang Song <songy23@users.noreply.github.com>2018-06-13 16:17:04 -0700
committerGitHub <noreply@github.com>2018-06-13 16:17:04 -0700
commit75a5135391e0e704db08e2291ad916ba4aeb7749 (patch)
tree35d61083267737c2aa51163e80e82c8c420995e0 /exporters
parentc788d4ee4774743cc6c5836d040672e4105eefea (diff)
downloadplatform_external_opencensus-java-75a5135391e0e704db08e2291ad916ba4aeb7749.tar.gz
platform_external_opencensus-java-75a5135391e0e704db08e2291ad916ba4aeb7749.tar.bz2
platform_external_opencensus-java-75a5135391e0e704db08e2291ad916ba4aeb7749.zip
Stackdriver Trace Exporter: improve unit tests on resource labels. (#1254)
* Stackdriver Trace Exporter: improve unit tests on resource labels. * Have separate tests for getResourceLabels and generateSpan. * Add missing Javadoc for unit tests. * Make a helper method static.
Diffstat (limited to 'exporters')
-rw-r--r--exporters/trace/stackdriver/src/main/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandler.java4
-rw-r--r--exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerExportTest.java1
-rw-r--r--exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerProtoTest.java40
3 files changed, 33 insertions, 12 deletions
diff --git a/exporters/trace/stackdriver/src/main/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandler.java b/exporters/trace/stackdriver/src/main/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandler.java
index 0993fd80..46a18a59 100644
--- a/exporters/trace/stackdriver/src/main/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandler.java
+++ b/exporters/trace/stackdriver/src/main/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandler.java
@@ -257,8 +257,8 @@ final class StackdriverV2ExporterHandler extends SpanExporter.Handler {
return attributesBuilder;
}
- // TODO(songya): make constructor of MonitoredResource public, and add unit tests for this method.
- private static Map<String, AttributeValue> getResourceLabels(
+ @VisibleForTesting
+ static Map<String, AttributeValue> getResourceLabels(
@javax.annotation.Nullable MonitoredResource resource) {
if (resource == null) {
return Collections.emptyMap();
diff --git a/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerExportTest.java b/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerExportTest.java
index 36cacd6b..32458597 100644
--- a/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerExportTest.java
+++ b/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerExportTest.java
@@ -32,6 +32,7 @@ import org.junit.runners.JUnit4;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+/** Unit tests for exporting in {@link StackdriverV2ExporterHandler}. */
@RunWith(JUnit4.class)
public final class StackdriverV2ExporterHandlerExportTest {
private static final String PROJECT_ID = "PROJECT_ID";
diff --git a/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerProtoTest.java b/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerProtoTest.java
index 6674dd91..bb0ba072 100644
--- a/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerProtoTest.java
+++ b/exporters/trace/stackdriver/src/test/java/io/opencensus/exporter/trace/stackdriver/StackdriverV2ExporterHandlerProtoTest.java
@@ -36,6 +36,10 @@ import com.google.devtools.cloudtrace.v2.StackTrace;
import com.google.devtools.cloudtrace.v2.TruncatableString;
import com.google.protobuf.Int32Value;
import io.opencensus.common.Timestamp;
+import io.opencensus.contrib.monitoredresource.util.MonitoredResource;
+import io.opencensus.contrib.monitoredresource.util.MonitoredResource.AwsEc2InstanceMonitoredResource;
+import io.opencensus.contrib.monitoredresource.util.MonitoredResource.GcpGceInstanceMonitoredResource;
+import io.opencensus.contrib.monitoredresource.util.MonitoredResource.GcpGkeContainerMonitoredResource;
import io.opencensus.trace.Annotation;
import io.opencensus.trace.Link;
import io.opencensus.trace.Span.Kind;
@@ -58,6 +62,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
+/** Unit tests for proto conversions in {@link StackdriverV2ExporterHandler}. */
@RunWith(JUnit4.class)
public final class StackdriverV2ExporterHandlerProtoTest {
@@ -126,6 +131,13 @@ public final class StackdriverV2ExporterHandlerProtoTest {
TimedEvents.create(networkEventsList, DROPPED_NETWORKEVENTS_COUNT);
private static final SpanData.Links links = SpanData.Links.create(linksList, DROPPED_LINKS_COUNT);
private static final Map<String, AttributeValue> EMPTY_RESOURCE_LABELS = Collections.emptyMap();
+ private static final AwsEc2InstanceMonitoredResource AWS_EC2_INSTANCE_MONITORED_RESOURCE =
+ AwsEc2InstanceMonitoredResource.create("my-project", "my-instance", "us-east-1");
+ private static final GcpGceInstanceMonitoredResource GCP_GCE_INSTANCE_MONITORED_RESOURCE =
+ GcpGceInstanceMonitoredResource.create("my-project", "my-instance", "us-east1");
+ private static final GcpGkeContainerMonitoredResource GCP_GKE_CONTAINER_MONITORED_RESOURCE =
+ GcpGkeContainerMonitoredResource.create(
+ "my-project", "cluster", "container", "namespace", "my-instance", "pod", "us-east1");
private static final ImmutableMap<String, AttributeValue> AWS_RESOURCE_LABELS =
ImmutableMap.of(
createResourceLabelKey(AWS_EC2_INSTANCE, "aws_account"),
@@ -133,7 +145,7 @@ public final class StackdriverV2ExporterHandlerProtoTest {
createResourceLabelKey(AWS_EC2_INSTANCE, "instance_id"),
toStringAttributeValueProto("my-instance"),
createResourceLabelKey(AWS_EC2_INSTANCE, "region"),
- toStringAttributeValueProto("us-east-1"));
+ toStringAttributeValueProto("aws:us-east-1"));
private static final ImmutableMap<String, AttributeValue> GCE_RESOURCE_LABELS =
ImmutableMap.of(
createResourceLabelKey(GCP_GCE_INSTANCE, "project_id"),
@@ -306,21 +318,29 @@ public final class StackdriverV2ExporterHandlerProtoTest {
}
@Test
- public void generateSpan_WithAwsEc2ResourceLabels() {
- generateSpan_WithResourceLabels(AWS_RESOURCE_LABELS);
+ public void getResourceLabels_AwsEc2ResourceLabels() {
+ testGetResourceLabels(AWS_EC2_INSTANCE_MONITORED_RESOURCE, AWS_RESOURCE_LABELS);
}
@Test
- public void generateSpan_WithGceResourceLabels() {
- generateSpan_WithResourceLabels(GCE_RESOURCE_LABELS);
+ public void getResourceLabels_GceResourceLabels() {
+ testGetResourceLabels(GCP_GCE_INSTANCE_MONITORED_RESOURCE, GCE_RESOURCE_LABELS);
}
@Test
- public void generateSpan_WithGkeResourceLabels() {
- generateSpan_WithResourceLabels(GKE_RESOURCE_LABELS);
+ public void getResourceLabels_GkeResourceLabels() {
+ testGetResourceLabels(GCP_GKE_CONTAINER_MONITORED_RESOURCE, GKE_RESOURCE_LABELS);
}
- private void generateSpan_WithResourceLabels(Map<String, AttributeValue> resourceLabels) {
+ private static void testGetResourceLabels(
+ MonitoredResource resource, Map<String, AttributeValue> expectedLabels) {
+ Map<String, AttributeValue> actualLabels =
+ StackdriverV2ExporterHandler.getResourceLabels(resource);
+ assertThat(actualLabels).containsExactlyEntriesIn(expectedLabels);
+ }
+
+ @Test
+ public void generateSpan_WithResourceLabels() {
SpanData spanData =
SpanData.create(
spanContext,
@@ -336,9 +356,9 @@ public final class StackdriverV2ExporterHandlerProtoTest {
CHILD_SPAN_COUNT,
status,
endTimestamp);
- Span span = handler.generateSpan(spanData, resourceLabels);
+ Span span = handler.generateSpan(spanData, AWS_RESOURCE_LABELS);
Map<String, AttributeValue> attributeMap = span.getAttributes().getAttributeMapMap();
- assertThat(attributeMap.entrySet()).containsAllIn(resourceLabels.entrySet());
+ assertThat(attributeMap.entrySet()).containsAllIn(AWS_RESOURCE_LABELS.entrySet());
}
@Test