aboutsummaryrefslogtreecommitdiff
path: root/exporters/stats/stackdriver
diff options
context:
space:
mode:
Diffstat (limited to 'exporters/stats/stackdriver')
-rw-r--r--exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java13
-rw-r--r--exporters/stats/stackdriver/src/test/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtilsTest.java48
2 files changed, 60 insertions, 1 deletions
diff --git a/exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java b/exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java
index 82216b6a..d351e235 100644
--- a/exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java
+++ b/exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtils.java
@@ -110,7 +110,6 @@ final class StackdriverExportUtils {
builder.setName(String.format("projects/%s/metricDescriptors/%s", projectId, type));
builder.setType(type);
builder.setDescription(view.getDescription());
- builder.setUnit(view.getMeasure().getUnit());
builder.setDisplayName("OpenCensus/" + viewName);
for (TagKey tagKey : view.getColumns()) {
builder.addLabels(createLabelDescriptor(tagKey));
@@ -121,6 +120,7 @@ final class StackdriverExportUtils {
.setDescription(OPENCENSUS_TASK_DESCRIPTION)
.setValueType(ValueType.STRING)
.build());
+ builder.setUnit(createUnit(view.getAggregation(), view.getMeasure()));
builder.setMetricKind(createMetricKind(view.getWindow()));
builder.setValueType(createValueType(view.getAggregation(), view.getMeasure()));
return builder.build();
@@ -153,6 +153,17 @@ final class StackdriverExportUtils {
// Construct a MetricDescriptor.ValueType from an Aggregation and a Measure
@VisibleForTesting
+ static String createUnit(Aggregation aggregation, final Measure measure) {
+ return aggregation.match(
+ Functions.returnConstant(measure.getUnit()),
+ Functions.returnConstant("1"), // Count
+ Functions.returnConstant(measure.getUnit()), // Mean
+ Functions.returnConstant(measure.getUnit()), // Distribution
+ Functions.returnConstant(measure.getUnit()));
+ }
+
+ // Construct a MetricDescriptor.ValueType from an Aggregation and a Measure
+ @VisibleForTesting
static MetricDescriptor.ValueType createValueType(
Aggregation aggregation, final Measure measure) {
return aggregation.match(
diff --git a/exporters/stats/stackdriver/src/test/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtilsTest.java b/exporters/stats/stackdriver/src/test/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtilsTest.java
index 48d660d5..a78a96ea 100644
--- a/exporters/stats/stackdriver/src/test/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtilsTest.java
+++ b/exporters/stats/stackdriver/src/test/java/io/opencensus/exporter/stats/stackdriver/StackdriverExportUtilsTest.java
@@ -143,6 +143,15 @@ public class StackdriverExportUtilsTest {
}
@Test
+ public void createUnit() {
+ assertThat(StackdriverExportUtils.createUnit(SUM, MEASURE_DOUBLE)).isEqualTo(MEASURE_UNIT);
+ assertThat(StackdriverExportUtils.createUnit(COUNT, MEASURE_DOUBLE)).isEqualTo("1");
+ assertThat(StackdriverExportUtils.createUnit(MEAN, MEASURE_DOUBLE)).isEqualTo(MEASURE_UNIT);
+ assertThat(StackdriverExportUtils.createUnit(DISTRIBUTION, MEASURE_DOUBLE))
+ .isEqualTo(MEASURE_UNIT);
+ }
+
+ @Test
public void createMetric() {
View view =
View.create(
@@ -345,6 +354,45 @@ public class StackdriverExportUtilsTest {
}
@Test
+ public void createMetricDescriptor_cumulative_count() {
+ View view =
+ View.create(
+ Name.create(VIEW_NAME),
+ VIEW_DESCRIPTION,
+ MEASURE_DOUBLE,
+ COUNT,
+ Arrays.asList(KEY),
+ CUMULATIVE);
+ MetricDescriptor metricDescriptor =
+ StackdriverExportUtils.createMetricDescriptor(view, PROJECT_ID);
+ assertThat(metricDescriptor.getName())
+ .isEqualTo(
+ "projects/"
+ + PROJECT_ID
+ + "/metricDescriptors/custom.googleapis.com/opencensus/"
+ + VIEW_NAME);
+ assertThat(metricDescriptor.getDescription()).isEqualTo(VIEW_DESCRIPTION);
+ assertThat(metricDescriptor.getDisplayName()).isEqualTo("OpenCensus/" + VIEW_NAME);
+ assertThat(metricDescriptor.getType())
+ .isEqualTo("custom.googleapis.com/opencensus/" + VIEW_NAME);
+ assertThat(metricDescriptor.getUnit()).isEqualTo("1");
+ assertThat(metricDescriptor.getMetricKind()).isEqualTo(MetricKind.CUMULATIVE);
+ assertThat(metricDescriptor.getValueType()).isEqualTo(MetricDescriptor.ValueType.INT64);
+ assertThat(metricDescriptor.getLabelsList())
+ .containsExactly(
+ LabelDescriptor.newBuilder()
+ .setKey(KEY.getName())
+ .setDescription(StackdriverExportUtils.LABEL_DESCRIPTION)
+ .setValueType(ValueType.STRING)
+ .build(),
+ LabelDescriptor.newBuilder()
+ .setKey(StackdriverExportUtils.OPENCENSUS_TASK)
+ .setDescription(StackdriverExportUtils.OPENCENSUS_TASK_DESCRIPTION)
+ .setValueType(ValueType.STRING)
+ .build());
+ }
+
+ @Test
public void createMetricDescriptor_interval() {
View view =
View.create(