aboutsummaryrefslogtreecommitdiff
path: root/api/src
diff options
context:
space:
mode:
authorsebright <sebright@google.com>2018-09-12 12:13:14 -0700
committerGitHub <noreply@github.com>2018-09-12 12:13:14 -0700
commitd3fa0e5c60903f95c184d7c7bafae8fdd12156ad (patch)
treef88e8fb0ebd0fa60c603285363acfcb6b7cee33e /api/src
parentc0e0b225a5230036b3dc09134f94eece81d3f96d (diff)
downloadopencensus-java-d3fa0e5c60903f95c184d7c7bafae8fdd12156ad.tar.gz
Temporarily move "metrics" package into impl_core/ for release. (#1426)
The "metrics" package isn't ready to be released yet, so this commit moves it out of the API artifact. The package can still be accessed by the stats implementation in impl_core/. This commit can be reverted once the package is ready to be exposed. The moved package names also contain "temporary" so that there is no possibility of class name conflicts between different versions of opencensus-api and opencensus-impl-core. For example, io.opencensus.metrics.export is renamed to io.opencensus.implcore.temporary.metrics.export.
Diffstat (limited to 'api/src')
-rw-r--r--api/src/main/java/io/opencensus/common/ToDoubleFunction.java2
-rw-r--r--api/src/main/java/io/opencensus/common/ToLongFunction.java2
-rw-r--r--api/src/main/java/io/opencensus/metrics/Distribution.java280
-rw-r--r--api/src/main/java/io/opencensus/metrics/LabelKey.java62
-rw-r--r--api/src/main/java/io/opencensus/metrics/LabelValue.java57
-rw-r--r--api/src/main/java/io/opencensus/metrics/Metric.java98
-rw-r--r--api/src/main/java/io/opencensus/metrics/MetricDescriptor.java150
-rw-r--r--api/src/main/java/io/opencensus/metrics/MetricProducer.java38
-rw-r--r--api/src/main/java/io/opencensus/metrics/MetricRegistry.java117
-rw-r--r--api/src/main/java/io/opencensus/metrics/Metrics.java96
-rw-r--r--api/src/main/java/io/opencensus/metrics/MetricsComponent.java71
-rw-r--r--api/src/main/java/io/opencensus/metrics/Point.java63
-rw-r--r--api/src/main/java/io/opencensus/metrics/TimeSeries.java94
-rw-r--r--api/src/main/java/io/opencensus/metrics/Value.java196
-rw-r--r--api/src/main/java/io/opencensus/metrics/export/ExportComponent.java60
-rw-r--r--api/src/main/java/io/opencensus/metrics/export/MetricProducerManager.java89
-rw-r--r--api/src/main/java/io/opencensus/metrics/package-info.java32
-rw-r--r--api/src/test/java/io/opencensus/metrics/DistributionTest.java226
-rw-r--r--api/src/test/java/io/opencensus/metrics/LabelKeyTest.java86
-rw-r--r--api/src/test/java/io/opencensus/metrics/LabelValueTest.java74
-rw-r--r--api/src/test/java/io/opencensus/metrics/MetricDescriptorTest.java102
-rw-r--r--api/src/test/java/io/opencensus/metrics/MetricRegistryTest.java185
-rw-r--r--api/src/test/java/io/opencensus/metrics/MetricTest.java116
-rw-r--r--api/src/test/java/io/opencensus/metrics/MetricsComponentTest.java40
-rw-r--r--api/src/test/java/io/opencensus/metrics/MetricsTest.java71
-rw-r--r--api/src/test/java/io/opencensus/metrics/PointTest.java68
-rw-r--r--api/src/test/java/io/opencensus/metrics/TimeSeriesTest.java116
-rw-r--r--api/src/test/java/io/opencensus/metrics/ValueTest.java128
-rw-r--r--api/src/test/java/io/opencensus/metrics/export/ExportComponentTest.java33
-rw-r--r--api/src/test/java/io/opencensus/metrics/export/MetricProducerManagerTest.java81
30 files changed, 2 insertions, 2831 deletions
diff --git a/api/src/main/java/io/opencensus/common/ToDoubleFunction.java b/api/src/main/java/io/opencensus/common/ToDoubleFunction.java
index eac85793..415f8ca9 100644
--- a/api/src/main/java/io/opencensus/common/ToDoubleFunction.java
+++ b/api/src/main/java/io/opencensus/common/ToDoubleFunction.java
@@ -17,7 +17,7 @@
package io.opencensus.common;
/**
- * Represents a function that produces a double-valued result. See {@link
+ * Represents a function that produces a double-valued result. See {@code
* io.opencensus.metrics.MetricRegistry} for an example of its use.
*
* <p>Note: This class is based on the java.util.ToDoubleFunction class added in Java 1.8. We cannot
diff --git a/api/src/main/java/io/opencensus/common/ToLongFunction.java b/api/src/main/java/io/opencensus/common/ToLongFunction.java
index 26a27b18..727a8b44 100644
--- a/api/src/main/java/io/opencensus/common/ToLongFunction.java
+++ b/api/src/main/java/io/opencensus/common/ToLongFunction.java
@@ -17,7 +17,7 @@
package io.opencensus.common;
/**
- * Represents a function that produces a long-valued result. See {@link
+ * Represents a function that produces a long-valued result. See {@code
* io.opencensus.metrics.MetricRegistry} for an example of its use.
*
* <p>Note: This class is based on the java.util.ToLongFunction class added in Java 1.8. We cannot
diff --git a/api/src/main/java/io/opencensus/metrics/Distribution.java b/api/src/main/java/io/opencensus/metrics/Distribution.java
deleted file mode 100644
index bdea7762..00000000
--- a/api/src/main/java/io/opencensus/metrics/Distribution.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import com.google.auto.value.AutoValue;
-import io.opencensus.common.ExperimentalApi;
-import io.opencensus.common.Timestamp;
-import io.opencensus.internal.Utils;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import javax.annotation.Nullable;
-import javax.annotation.concurrent.Immutable;
-
-/**
- * {@link Distribution} contains summary statistics for a population of values. It optionally
- * contains a histogram representing the distribution of those values across a set of buckets.
- *
- * @since 0.16
- */
-@ExperimentalApi
-@AutoValue
-@Immutable
-public abstract class Distribution {
-
- Distribution() {}
-
- /**
- * Creates a {@link Distribution}.
- *
- * @param mean mean of the population values.
- * @param count count of the population values.
- * @param sumOfSquaredDeviations sum of squared deviations of the population values.
- * @param bucketBoundaries bucket boundaries of a histogram.
- * @param buckets {@link Bucket}s of a histogram.
- * @return a {@code Distribution}.
- * @since 0.16
- */
- public static Distribution create(
- double mean,
- long count,
- double sumOfSquaredDeviations,
- List<Double> bucketBoundaries,
- List<Bucket> buckets) {
- Utils.checkArgument(count >= 0, "count should be non-negative.");
- Utils.checkArgument(
- sumOfSquaredDeviations >= 0, "sum of squared deviations should be non-negative.");
- if (count == 0) {
- Utils.checkArgument(mean == 0, "mean should be 0 if count is 0.");
- Utils.checkArgument(
- sumOfSquaredDeviations == 0, "sum of squared deviations should be 0 if count is 0.");
- }
- return new AutoValue_Distribution(
- mean,
- count,
- sumOfSquaredDeviations,
- copyBucketBounds(bucketBoundaries),
- copyBucketCount(buckets));
- }
-
- private static List<Double> copyBucketBounds(List<Double> bucketBoundaries) {
- Utils.checkNotNull(bucketBoundaries, "bucketBoundaries list should not be null.");
- List<Double> bucketBoundariesCopy = new ArrayList<Double>(bucketBoundaries); // Deep copy.
- // Check if sorted.
- if (bucketBoundariesCopy.size() > 1) {
- double lower = bucketBoundariesCopy.get(0);
- for (int i = 1; i < bucketBoundariesCopy.size(); i++) {
- double next = bucketBoundariesCopy.get(i);
- Utils.checkArgument(lower < next, "bucket boundaries not sorted.");
- lower = next;
- }
- }
- return Collections.unmodifiableList(bucketBoundariesCopy);
- }
-
- private static List<Bucket> copyBucketCount(List<Bucket> buckets) {
- Utils.checkNotNull(buckets, "bucket list should not be null.");
- List<Bucket> bucketsCopy = new ArrayList<Bucket>(buckets);
- for (Bucket bucket : bucketsCopy) {
- Utils.checkNotNull(bucket, "bucket should not be null.");
- }
- return Collections.unmodifiableList(bucketsCopy);
- }
-
- /**
- * Returns the aggregated mean.
- *
- * @return the aggregated mean.
- * @since 0.16
- */
- public abstract double getMean();
-
- /**
- * Returns the aggregated count.
- *
- * @return the aggregated count.
- * @since 0.16
- */
- public abstract long getCount();
-
- /**
- * Returns the aggregated sum of squared deviations.
- *
- * <p>The sum of squared deviations from the mean of the values in the population. For values x_i
- * this is:
- *
- * <p>Sum[i=1..n]((x_i - mean)^2)
- *
- * <p>If count is zero then this field must be zero.
- *
- * @return the aggregated sum of squared deviations.
- * @since 0.16
- */
- public abstract double getSumOfSquaredDeviations();
-
- /**
- * Returns the bucket boundaries of this distribution.
- *
- * <p>The bucket boundaries for that histogram are described by bucket_bounds. This defines
- * size(bucket_bounds) + 1 (= N) buckets. The boundaries for bucket index i are:
- *
- * <ul>
- * <li>{@code (-infinity, bucket_bounds[i]) for i == 0}
- * <li>{@code [bucket_bounds[i-1], bucket_bounds[i]) for 0 < i < N-2}
- * <li>{@code [bucket_bounds[i-1], +infinity) for i == N-1}
- * </ul>
- *
- * <p>i.e. an underflow bucket (number 0), zero or more finite buckets (1 through N - 2, and an
- * overflow bucket (N - 1), with inclusive lower bounds and exclusive upper bounds.
- *
- * <p>If bucket_bounds has no elements (zero size), then there is no histogram associated with the
- * Distribution. If bucket_bounds has only one element, there are no finite buckets, and that
- * single element is the common boundary of the overflow and underflow buckets. The values must be
- * monotonically increasing.
- *
- * @return the bucket boundaries of this distribution.
- * @since 0.16
- */
- public abstract List<Double> getBucketBoundaries();
-
- /**
- * Returns the aggregated histogram {@link Bucket}s.
- *
- * @return the aggregated histogram buckets.
- * @since 0.16
- */
- public abstract List<Bucket> getBuckets();
-
- /**
- * The histogram bucket of the population values.
- *
- * @since 0.16
- */
- @AutoValue
- @Immutable
- public abstract static class Bucket {
-
- Bucket() {}
-
- /**
- * Creates a {@link Bucket}.
- *
- * @param count the number of values in each bucket of the histogram.
- * @return a {@code Bucket}.
- * @since 0.16
- */
- public static Bucket create(long count) {
- Utils.checkArgument(count >= 0, "bucket count should be non-negative.");
- return new AutoValue_Distribution_Bucket(count, null);
- }
-
- /**
- * Creates a {@link Bucket} with an {@link Exemplar}.
- *
- * @param count the number of values in each bucket of the histogram.
- * @param exemplar the {@code Exemplar} of this {@code Bucket}.
- * @return a {@code Bucket}.
- * @since 0.16
- */
- public static Bucket create(long count, Exemplar exemplar) {
- Utils.checkArgument(count >= 0, "bucket count should be non-negative.");
- Utils.checkNotNull(exemplar, "exemplar");
- return new AutoValue_Distribution_Bucket(count, exemplar);
- }
-
- /**
- * Returns the number of values in each bucket of the histogram.
- *
- * @return the number of values in each bucket of the histogram.
- * @since 0.16
- */
- public abstract long getCount();
-
- /**
- * Returns the {@link Exemplar} associated with the {@link Bucket}, or {@code null} if there
- * isn't one.
- *
- * @return the {@code Exemplar} associated with the {@code Bucket}, or {@code null} if there
- * isn't one.
- * @since 0.16
- */
- @Nullable
- public abstract Exemplar getExemplar();
- }
-
- /**
- * An example point that may be used to annotate aggregated distribution values, associated with a
- * histogram bucket.
- *
- * @since 0.16
- */
- @Immutable
- @AutoValue
- public abstract static class Exemplar {
-
- Exemplar() {}
-
- /**
- * Returns value of the {@link Exemplar} point.
- *
- * @return value of the {@code Exemplar} point.
- * @since 0.16
- */
- public abstract double getValue();
-
- /**
- * Returns the time that this {@link Exemplar}'s value was recorded.
- *
- * @return the time that this {@code Exemplar}'s value was recorded.
- * @since 0.16
- */
- public abstract Timestamp getTimestamp();
-
- /**
- * Returns the contextual information about the example value, represented as a string map.
- *
- * @return the contextual information about the example value.
- * @since 0.16
- */
- public abstract Map<String, String> getAttachments();
-
- /**
- * Creates an {@link Exemplar}.
- *
- * @param value value of the {@link Exemplar} point.
- * @param timestamp the time that this {@code Exemplar}'s value was recorded.
- * @param attachments the contextual information about the example value.
- * @return an {@code Exemplar}.
- * @since 0.16
- */
- public static Exemplar create(
- double value, Timestamp timestamp, Map<String, String> attachments) {
- Utils.checkNotNull(attachments, "attachments");
- Map<String, String> attachmentsCopy =
- Collections.unmodifiableMap(new HashMap<String, String>(attachments));
- for (Entry<String, String> entry : attachmentsCopy.entrySet()) {
- Utils.checkNotNull(entry.getKey(), "key of attachments");
- Utils.checkNotNull(entry.getValue(), "value of attachments");
- }
- return new AutoValue_Distribution_Exemplar(value, timestamp, attachmentsCopy);
- }
- }
-}
diff --git a/api/src/main/java/io/opencensus/metrics/LabelKey.java b/api/src/main/java/io/opencensus/metrics/LabelKey.java
deleted file mode 100644
index 01ef0b55..00000000
--- a/api/src/main/java/io/opencensus/metrics/LabelKey.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import com.google.auto.value.AutoValue;
-import io.opencensus.common.ExperimentalApi;
-import javax.annotation.concurrent.Immutable;
-
-/**
- * The key of a {@code Label} associated with a {@code MetricDescriptor}.
- *
- * @since 0.15
- */
-@ExperimentalApi
-@Immutable
-@AutoValue
-public abstract class LabelKey {
-
- LabelKey() {}
-
- /**
- * Creates a {@link LabelKey}.
- *
- * @param key the key of a {@code Label}.
- * @param description a human-readable description of what this label key represents.
- * @return a {@code LabelKey}.
- * @since 0.15
- */
- public static LabelKey create(String key, String description) {
- return new AutoValue_LabelKey(key, description);
- }
-
- /**
- * Returns the key of this {@link LabelKey}.
- *
- * @return the key.
- * @since 0.15
- */
- public abstract String getKey();
-
- /**
- * Returns the description of this {@link LabelKey}.
- *
- * @return the description.
- * @since 0.15
- */
- public abstract String getDescription();
-}
diff --git a/api/src/main/java/io/opencensus/metrics/LabelValue.java b/api/src/main/java/io/opencensus/metrics/LabelValue.java
deleted file mode 100644
index e81b63d2..00000000
--- a/api/src/main/java/io/opencensus/metrics/LabelValue.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import com.google.auto.value.AutoValue;
-import io.opencensus.common.ExperimentalApi;
-import javax.annotation.Nullable;
-import javax.annotation.concurrent.Immutable;
-
-/**
- * The value of a {@code Label} associated with a {@code TimeSeries}.
- *
- * @since 0.15
- */
-@ExperimentalApi
-@Immutable
-@AutoValue
-public abstract class LabelValue {
-
- LabelValue() {}
-
- /**
- * Creates a {@link LabelValue}.
- *
- * @param value the value of a {@code Label}. {@code null} value indicates an unset {@code
- * LabelValue}.
- * @return a {@code LabelValue}.
- * @since 0.15
- */
- public static LabelValue create(@Nullable String value) {
- return new AutoValue_LabelValue(value);
- }
-
- /**
- * Returns the value of this {@link LabelValue}. Returns {@code null} if the value is unset and
- * supposed to be ignored.
- *
- * @return the value.
- * @since 0.15
- */
- @Nullable
- public abstract String getValue();
-}
diff --git a/api/src/main/java/io/opencensus/metrics/Metric.java b/api/src/main/java/io/opencensus/metrics/Metric.java
deleted file mode 100644
index fa0018b3..00000000
--- a/api/src/main/java/io/opencensus/metrics/Metric.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import com.google.auto.value.AutoValue;
-import io.opencensus.common.ExperimentalApi;
-import io.opencensus.internal.Utils;
-import io.opencensus.metrics.Value.ValueDistribution;
-import io.opencensus.metrics.Value.ValueDouble;
-import io.opencensus.metrics.Value.ValueLong;
-import java.util.List;
-import javax.annotation.concurrent.Immutable;
-
-/**
- * A {@link Metric} with one or more {@link TimeSeries}.
- *
- * @since 0.16
- */
-@ExperimentalApi
-@Immutable
-@AutoValue
-public abstract class Metric {
-
- Metric() {}
-
- /**
- * Creates a {@link Metric}.
- *
- * @param metricDescriptor the {@link MetricDescriptor}.
- * @param timeSeriesList the {@link TimeSeries} list for this metric.
- * @return a {@code Metric}.
- * @since 0.16
- */
- public static Metric create(MetricDescriptor metricDescriptor, List<TimeSeries> timeSeriesList) {
- checkTypeMatch(metricDescriptor.getType(), timeSeriesList);
- return new AutoValue_Metric(metricDescriptor, timeSeriesList);
- }
-
- /**
- * Returns the {@link MetricDescriptor} of this metric.
- *
- * @return the {@code MetricDescriptor} of this metric.
- * @since 0.16
- */
- public abstract MetricDescriptor getMetricDescriptor();
-
- /**
- * Returns the {@link TimeSeries} list for this metric.
- *
- * <p>The type of the {@link TimeSeries#getPoints()} must match {@link MetricDescriptor.Type}.
- *
- * @return the {@code TimeSeriesList} for this metric.
- * @since 0.16
- */
- public abstract List<TimeSeries> getTimeSeriesList();
-
- private static void checkTypeMatch(MetricDescriptor.Type type, List<TimeSeries> timeSeriesList) {
- for (TimeSeries timeSeries : timeSeriesList) {
- for (Point point : timeSeries.getPoints()) {
- Value value = point.getValue();
- String valueClassName = "";
- if (value.getClass().getSuperclass() != null) { // work around nullness check
- // AutoValue classes should always have a super class.
- valueClassName = value.getClass().getSuperclass().getSimpleName();
- }
- switch (type) {
- case GAUGE_INT64:
- case CUMULATIVE_INT64:
- Utils.checkArgument(
- value instanceof ValueLong, "Type mismatch: %s, %s.", type, valueClassName);
- break;
- case CUMULATIVE_DOUBLE:
- case GAUGE_DOUBLE:
- Utils.checkArgument(
- value instanceof ValueDouble, "Type mismatch: %s, %s.", type, valueClassName);
- break;
- case CUMULATIVE_DISTRIBUTION:
- Utils.checkArgument(
- value instanceof ValueDistribution, "Type mismatch: %s, %s.", type, valueClassName);
- }
- }
- }
- }
-}
diff --git a/api/src/main/java/io/opencensus/metrics/MetricDescriptor.java b/api/src/main/java/io/opencensus/metrics/MetricDescriptor.java
deleted file mode 100644
index 4558446a..00000000
--- a/api/src/main/java/io/opencensus/metrics/MetricDescriptor.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import com.google.auto.value.AutoValue;
-import io.opencensus.common.ExperimentalApi;
-import io.opencensus.internal.Utils;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import javax.annotation.concurrent.Immutable;
-
-/**
- * {@link MetricDescriptor} defines a {@code Metric} type and its schema.
- *
- * @since 0.16
- */
-@ExperimentalApi
-@Immutable
-@AutoValue
-public abstract class MetricDescriptor {
-
- MetricDescriptor() {}
-
- /**
- * Creates a {@link MetricDescriptor}.
- *
- * @param name name of {@code MetricDescriptor}.
- * @param description description of {@code MetricDescriptor}.
- * @param unit the metric unit.
- * @param type type of {@code MetricDescriptor}.
- * @param labelKeys the label keys associated with the {@code MetricDescriptor}.
- * @return a {@code MetricDescriptor}.
- * @since 0.16
- */
- public static MetricDescriptor create(
- String name, String description, String unit, Type type, List<LabelKey> labelKeys) {
- Utils.checkNotNull(labelKeys, "labelKeys");
- Utils.checkListElementNotNull(labelKeys, "labelKey");
- return new AutoValue_MetricDescriptor(
- name,
- description,
- unit,
- type,
- Collections.unmodifiableList(new ArrayList<LabelKey>(labelKeys)));
- }
-
- /**
- * Returns the metric descriptor name.
- *
- * @return the metric descriptor name.
- * @since 0.16
- */
- public abstract String getName();
-
- /**
- * Returns the description of this metric descriptor.
- *
- * @return the description of this metric descriptor.
- * @since 0.16
- */
- public abstract String getDescription();
-
- /**
- * Returns the unit of this metric descriptor.
- *
- * @return the unit of this metric descriptor.
- * @since 0.16
- */
- public abstract String getUnit();
-
- /**
- * Returns the type of this metric descriptor.
- *
- * @return the type of this metric descriptor.
- * @since 0.16
- */
- public abstract Type getType();
-
- /**
- * Returns the label keys associated with this metric descriptor.
- *
- * @return the label keys associated with this metric descriptor.
- * @since 0.16
- */
- public abstract List<LabelKey> getLabelKeys();
-
- /**
- * The kind of metric. It describes how the data is reported.
- *
- * <p>A gauge is an instantaneous measurement of a value.
- *
- * <p>A cumulative measurement is a value accumulated over a time interval. In a time series,
- * cumulative measurements should have the same start time and increasing end times, until an
- * event resets the cumulative value to zero and sets a new start time for the following points.
- *
- * @since 0.16
- */
- public enum Type {
-
- /**
- * An instantaneous measurement of an int64 value.
- *
- * @since 0.16
- */
- GAUGE_INT64,
-
- /**
- * An instantaneous measurement of a double value.
- *
- * @since 0.16
- */
- GAUGE_DOUBLE,
-
- /**
- * An cumulative measurement of an int64 value.
- *
- * @since 0.16
- */
- CUMULATIVE_INT64,
-
- /**
- * An cumulative measurement of a double value.
- *
- * @since 0.16
- */
- CUMULATIVE_DOUBLE,
-
- /**
- * An cumulative measurement of a distribution value.
- *
- * @since 0.16
- */
- CUMULATIVE_DISTRIBUTION,
- }
-}
diff --git a/api/src/main/java/io/opencensus/metrics/MetricProducer.java b/api/src/main/java/io/opencensus/metrics/MetricProducer.java
deleted file mode 100644
index 38b5d571..00000000
--- a/api/src/main/java/io/opencensus/metrics/MetricProducer.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import io.opencensus.common.ExperimentalApi;
-import io.opencensus.metrics.export.MetricProducerManager;
-import java.util.Collection;
-
-/**
- * A {@link io.opencensus.metrics.Metric} producer that can be registered for exporting using {@link
- * MetricProducerManager}.
- *
- * <p>All implementation MUST be thread-safe.
- */
-@ExperimentalApi
-public abstract class MetricProducer {
-
- /**
- * Returns a collection of produced {@link io.opencensus.metrics.Metric}s to be exported.
- *
- * @return a collection of produced {@link io.opencensus.metrics.Metric}s to be exported.
- */
- public abstract Collection<Metric> getMetrics();
-}
diff --git a/api/src/main/java/io/opencensus/metrics/MetricRegistry.java b/api/src/main/java/io/opencensus/metrics/MetricRegistry.java
deleted file mode 100644
index ae4d90b0..00000000
--- a/api/src/main/java/io/opencensus/metrics/MetricRegistry.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import io.opencensus.common.ExperimentalApi;
-import io.opencensus.common.ToDoubleFunction;
-import io.opencensus.common.ToLongFunction;
-import io.opencensus.internal.Utils;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-
-/**
- * Creates and manages your application's set of metrics. Exporters use the metric registry to
- * iterate over the set of metrics instrumenting your application, and then further export each
- * metric to the backend of choice.
- *
- * @since 0.16
- */
-@ExperimentalApi
-public abstract class MetricRegistry extends MetricProducer {
- /**
- * Build a new long gauge to be added to the registry.
- *
- * <p>Must be called only once.
- *
- * @param name the name of the metric.
- * @param description the description of the metric.
- * @param unit the unit of the metric.
- * @param obj the function argument.
- * @param function the function to be called.
- * @since 0.16 @ExperimentalApi
- */
- public abstract <T> void addLongGauge(
- String name,
- String description,
- String unit,
- LinkedHashMap<LabelKey, LabelValue> labels,
- T obj,
- ToLongFunction<T> function);
-
- /**
- * Build a new double gauge to be added to the registry.
- *
- * <p>Must be called only once.
- *
- * @param name the name of the metric.
- * @param description the description of the metric.
- * @param unit the unit of the metric.
- * @param obj the function argument.
- * @param function the function to be called.
- * @since 0.16 @ExperimentalApi
- */
- public abstract <T> void addDoubleGauge(
- String name,
- String description,
- String unit,
- LinkedHashMap<LabelKey, LabelValue> labels,
- T obj,
- ToDoubleFunction<T> function);
-
- static MetricRegistry newNoopMetricRegistry() {
- return new NoopMetricRegistry();
- }
-
- private static final class NoopMetricRegistry extends MetricRegistry {
-
- @Override
- public <T> void addLongGauge(
- String name,
- String description,
- String unit,
- LinkedHashMap<LabelKey, LabelValue> labels,
- T obj,
- ToLongFunction<T> function) {
- Utils.checkNotNull(name, "name");
- Utils.checkNotNull(description, "description");
- Utils.checkNotNull(unit, "unit");
- Utils.checkNotNull(labels, "labels");
- Utils.checkNotNull(function, "function");
- }
-
- @Override
- public <T> void addDoubleGauge(
- String name,
- String description,
- String unit,
- LinkedHashMap<LabelKey, LabelValue> labels,
- T obj,
- ToDoubleFunction<T> function) {
- Utils.checkNotNull(name, "name");
- Utils.checkNotNull(description, "description");
- Utils.checkNotNull(unit, "unit");
- Utils.checkNotNull(labels, "labels");
- Utils.checkNotNull(function, "function");
- }
-
- @Override
- public Collection<Metric> getMetrics() {
- return Collections.emptyList();
- }
- }
-}
diff --git a/api/src/main/java/io/opencensus/metrics/Metrics.java b/api/src/main/java/io/opencensus/metrics/Metrics.java
deleted file mode 100644
index 521fbd08..00000000
--- a/api/src/main/java/io/opencensus/metrics/Metrics.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import io.opencensus.common.ExperimentalApi;
-import io.opencensus.internal.DefaultVisibilityForTesting;
-import io.opencensus.internal.Provider;
-import io.opencensus.metrics.export.ExportComponent;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import javax.annotation.Nullable;
-
-/**
- * Class for accessing the default {@link MetricsComponent}.
- *
- * @since 0.16
- */
-@ExperimentalApi
-public final class Metrics {
- private static final Logger logger = Logger.getLogger(Metrics.class.getName());
- private static final MetricsComponent metricsComponent =
- loadMetricsComponent(MetricsComponent.class.getClassLoader());
-
- /**
- * Returns the global {@link ExportComponent}.
- *
- * @return the global {@code ExportComponent}.
- * @since 0.16
- */
- public static ExportComponent getExportComponent() {
- return metricsComponent.getExportComponent();
- }
-
- /**
- * Returns the global {@link MetricRegistry}.
- *
- * <p>This {@code MetricRegistry} is already added to the global {@link
- * io.opencensus.metrics.export.MetricProducerManager}.
- *
- * @return the global {@code MetricRegistry}.
- * @since 0.16
- */
- public static MetricRegistry getMetricRegistry() {
- return metricsComponent.getMetricRegistry();
- }
-
- // Any provider that may be used for MetricsComponent can be added here.
- @DefaultVisibilityForTesting
- static MetricsComponent loadMetricsComponent(@Nullable ClassLoader classLoader) {
- try {
- // Call Class.forName with literal string name of the class to help shading tools.
- return Provider.createInstance(
- Class.forName(
- "io.opencensus.impl.metrics.MetricsComponentImpl", /*initialize=*/ true, classLoader),
- MetricsComponent.class);
- } catch (ClassNotFoundException e) {
- logger.log(
- Level.FINE,
- "Couldn't load full implementation for MetricsComponent, now trying to load lite "
- + "implementation.",
- e);
- }
- try {
- // Call Class.forName with literal string name of the class to help shading tools.
- return Provider.createInstance(
- Class.forName(
- "io.opencensus.impllite.metrics.MetricsComponentImplLite",
- /*initialize=*/ true,
- classLoader),
- MetricsComponent.class);
- } catch (ClassNotFoundException e) {
- logger.log(
- Level.FINE,
- "Couldn't load lite implementation for MetricsComponent, now using default "
- + "implementation for MetricsComponent.",
- e);
- }
- return MetricsComponent.newNoopMetricsComponent();
- }
-
- private Metrics() {}
-}
diff --git a/api/src/main/java/io/opencensus/metrics/MetricsComponent.java b/api/src/main/java/io/opencensus/metrics/MetricsComponent.java
deleted file mode 100644
index 08d954ef..00000000
--- a/api/src/main/java/io/opencensus/metrics/MetricsComponent.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import io.opencensus.common.ExperimentalApi;
-import io.opencensus.metrics.export.ExportComponent;
-
-/**
- * Class that holds the implementation instance for {@link ExportComponent}.
- *
- * @since 0.16
- */
-@ExperimentalApi
-public abstract class MetricsComponent {
-
- /**
- * Returns the {@link ExportComponent} with the provided implementation. If no implementation is
- * provided then no-op implementations will be used.
- *
- * @return the {@link ExportComponent} implementation.
- * @since 0.16
- */
- public abstract ExportComponent getExportComponent();
-
- /**
- * Returns the {@link MetricRegistry} with the provided implementation.
- *
- * @return the {@link MetricRegistry} implementation.
- * @since 0.16
- */
- public abstract MetricRegistry getMetricRegistry();
-
- /**
- * Returns an instance that contains no-op implementations for all the instances.
- *
- * @return an instance that contains no-op implementations for all the instances.
- */
- static MetricsComponent newNoopMetricsComponent() {
- return new NoopMetricsComponent();
- }
-
- private static final class NoopMetricsComponent extends MetricsComponent {
- private static final ExportComponent EXPORT_COMPONENT =
- ExportComponent.newNoopExportComponent();
- private static final MetricRegistry METRIC_REGISTRY = MetricRegistry.newNoopMetricRegistry();
-
- @Override
- public ExportComponent getExportComponent() {
- return EXPORT_COMPONENT;
- }
-
- @Override
- public MetricRegistry getMetricRegistry() {
- return METRIC_REGISTRY;
- }
- }
-}
diff --git a/api/src/main/java/io/opencensus/metrics/Point.java b/api/src/main/java/io/opencensus/metrics/Point.java
deleted file mode 100644
index e66b273d..00000000
--- a/api/src/main/java/io/opencensus/metrics/Point.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import com.google.auto.value.AutoValue;
-import io.opencensus.common.ExperimentalApi;
-import io.opencensus.common.Timestamp;
-import javax.annotation.concurrent.Immutable;
-
-/**
- * A timestamped measurement of a {@code TimeSeries}.
- *
- * @since 0.16
- */
-@ExperimentalApi
-@AutoValue
-@Immutable
-public abstract class Point {
-
- Point() {}
-
- /**
- * Creates a {@link Point}.
- *
- * @param value the {@link Value} of this {@link Point}.
- * @param timestamp the {@link Timestamp} when this {@link Point} was recorded.
- * @return a {@code Point}.
- * @since 0.16
- */
- public static Point create(Value value, Timestamp timestamp) {
- return new AutoValue_Point(value, timestamp);
- }
-
- /**
- * Returns the {@link Value}.
- *
- * @return the {@code Value}.
- * @since 0.16
- */
- public abstract Value getValue();
-
- /**
- * Returns the {@link Timestamp} when this {@link Point} was recorded.
- *
- * @return the {@code Timestamp}.
- * @since 0.16
- */
- public abstract Timestamp getTimestamp();
-}
diff --git a/api/src/main/java/io/opencensus/metrics/TimeSeries.java b/api/src/main/java/io/opencensus/metrics/TimeSeries.java
deleted file mode 100644
index c62b6b72..00000000
--- a/api/src/main/java/io/opencensus/metrics/TimeSeries.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import com.google.auto.value.AutoValue;
-import io.opencensus.common.ExperimentalApi;
-import io.opencensus.common.Timestamp;
-import io.opencensus.internal.Utils;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import javax.annotation.Nullable;
-import javax.annotation.concurrent.Immutable;
-
-/**
- * A collection of data points that describes the time-varying values of a {@code Metric}.
- *
- * @since 0.16
- */
-@ExperimentalApi
-@Immutable
-@AutoValue
-public abstract class TimeSeries {
-
- TimeSeries() {}
-
- /**
- * Creates a {@link TimeSeries}.
- *
- * @param labelValues the {@code LabelValue}s that uniquely identify this {@code TimeSeries}.
- * @param points the data {@code Point}s of this {@code TimeSeries}.
- * @param startTimestamp the start {@code Timestamp} of this {@code TimeSeries}. Must be non-null
- * for cumulative {@code Point}s.
- * @return a {@code TimeSeries}.
- * @since 0.16
- */
- public static TimeSeries create(
- List<LabelValue> labelValues, List<Point> points, @Nullable Timestamp startTimestamp) {
- // Fail fast on null lists to prevent NullPointerException when copying the lists.
- Utils.checkNotNull(labelValues, "labelValues");
- Utils.checkNotNull(points, "points");
- Utils.checkListElementNotNull(labelValues, "labelValue");
- Utils.checkListElementNotNull(points, "point");
- return new AutoValue_TimeSeries(
- Collections.unmodifiableList(new ArrayList<LabelValue>(labelValues)),
- Collections.unmodifiableList(new ArrayList<Point>(points)),
- startTimestamp);
- }
-
- /**
- * Returns the set of {@link LabelValue}s that uniquely identify this {@link TimeSeries}.
- *
- * <p>Apply to all {@link Point}s.
- *
- * <p>The order of {@link LabelValue}s must match that of {@link LabelKey}s in the {@code
- * MetricDescriptor}.
- *
- * @return the {@code LabelValue}s.
- * @since 0.16
- */
- public abstract List<LabelValue> getLabelValues();
-
- /**
- * Returns the data {@link Point}s of this {@link TimeSeries}.
- *
- * @return the data {@code Point}s.
- * @since 0.16
- */
- public abstract List<Point> getPoints();
-
- /**
- * Returns the start {@link Timestamp} of this {@link TimeSeries} if the {@link Point}s are
- * cumulative, or {@code null} if the {@link Point}s are gauge.
- *
- * @return the start {@code Timestamp} or {@code null}.
- * @since 0.16
- */
- @Nullable
- public abstract Timestamp getStartTimestamp();
-}
diff --git a/api/src/main/java/io/opencensus/metrics/Value.java b/api/src/main/java/io/opencensus/metrics/Value.java
deleted file mode 100644
index c8fe48f8..00000000
--- a/api/src/main/java/io/opencensus/metrics/Value.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import com.google.auto.value.AutoValue;
-import io.opencensus.common.ExperimentalApi;
-import io.opencensus.common.Function;
-import javax.annotation.concurrent.Immutable;
-
-/**
- * The actual point value for a {@link Point}.
- *
- * <p>Currently there are three types of {@link Value}:
- *
- * <ul>
- * <li>{@code double}
- * <li>{@code long}
- * <li>{@link Distribution}
- * </ul>
- *
- * <p>Each {@link Point} contains exactly one of the three {@link Value} types.
- *
- * @since 0.16
- */
-@ExperimentalApi
-@Immutable
-public abstract class Value {
-
- Value() {}
-
- /**
- * Returns a double {@link Value}.
- *
- * @param value value in double.
- * @return a double {@code Value}.
- * @since 0.16
- */
- public static Value doubleValue(double value) {
- return ValueDouble.create(value);
- }
-
- /**
- * Returns a long {@link Value}.
- *
- * @param value value in long.
- * @return a long {@code Value}.
- * @since 0.16
- */
- public static Value longValue(long value) {
- return ValueLong.create(value);
- }
-
- /**
- * Returns a {@link Distribution} {@link Value}.
- *
- * @param value value in {@link Distribution}.
- * @return a {@code Distribution} {@code Value}.
- * @since 0.16
- */
- public static Value distributionValue(Distribution value) {
- return ValueDistribution.create(value);
- }
-
- /**
- * Applies the given match function to the underlying data type.
- *
- * @since 0.16
- */
- public abstract <T> T match(
- Function<? super Double, T> doubleFunction,
- Function<? super Long, T> longFunction,
- Function<? super Distribution, T> distributionFunction,
- Function<? super Value, T> defaultFunction);
-
- /** A 64-bit double-precision floating-point {@link Value}. */
- @AutoValue
- @Immutable
- abstract static class ValueDouble extends Value {
-
- ValueDouble() {}
-
- @Override
- public final <T> T match(
- Function<? super Double, T> doubleFunction,
- Function<? super Long, T> longFunction,
- Function<? super Distribution, T> distributionFunction,
- Function<? super Value, T> defaultFunction) {
- return doubleFunction.apply(getValue());
- }
-
- /**
- * Creates a {@link ValueDouble}.
- *
- * @param value the value in double.
- * @return a {@code ValueDouble}.
- */
- static ValueDouble create(double value) {
- return new AutoValue_Value_ValueDouble(value);
- }
-
- /**
- * Returns the double value.
- *
- * @return the double value.
- */
- abstract double getValue();
- }
-
- /** A 64-bit integer {@link Value}. */
- @AutoValue
- @Immutable
- abstract static class ValueLong extends Value {
-
- ValueLong() {}
-
- @Override
- public final <T> T match(
- Function<? super Double, T> doubleFunction,
- Function<? super Long, T> longFunction,
- Function<? super Distribution, T> distributionFunction,
- Function<? super Value, T> defaultFunction) {
- return longFunction.apply(getValue());
- }
-
- /**
- * Creates a {@link ValueLong}.
- *
- * @param value the value in long.
- * @return a {@code ValueLong}.
- */
- static ValueLong create(long value) {
- return new AutoValue_Value_ValueLong(value);
- }
-
- /**
- * Returns the long value.
- *
- * @return the long value.
- */
- abstract long getValue();
- }
-
- /**
- * {@link ValueDistribution} contains summary statistics for a population of values. It optionally
- * contains a histogram representing the distribution of those values across a set of buckets.
- */
- @AutoValue
- @Immutable
- abstract static class ValueDistribution extends Value {
-
- ValueDistribution() {}
-
- @Override
- public final <T> T match(
- Function<? super Double, T> doubleFunction,
- Function<? super Long, T> longFunction,
- Function<? super Distribution, T> distributionFunction,
- Function<? super Value, T> defaultFunction) {
- return distributionFunction.apply(getValue());
- }
-
- /**
- * Creates a {@link ValueDistribution}.
- *
- * @param value the {@link Distribution} value.
- * @return a {@code ValueDistribution}.
- */
- static ValueDistribution create(Distribution value) {
- return new AutoValue_Value_ValueDistribution(value);
- }
-
- /**
- * Returns the {@link Distribution} value.
- *
- * @return the {@code Distribution} value.
- */
- abstract Distribution getValue();
- }
-
- // TODO(songya): Add support for Summary type.
- // This is an aggregation that produces percentiles directly.
-}
diff --git a/api/src/main/java/io/opencensus/metrics/export/ExportComponent.java b/api/src/main/java/io/opencensus/metrics/export/ExportComponent.java
deleted file mode 100644
index bab65d13..00000000
--- a/api/src/main/java/io/opencensus/metrics/export/ExportComponent.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics.export;
-
-import io.opencensus.common.ExperimentalApi;
-
-/**
- * Class that holds the implementation instance for {@link MetricProducerManager}.
- *
- * <p>Unless otherwise noted all methods (on component) results are cacheable.
- *
- * @since 0.16
- */
-@ExperimentalApi
-public abstract class ExportComponent {
- /**
- * Returns the no-op implementation of the {@code ExportComponent}.
- *
- * @return the no-op implementation of the {@code ExportComponent}.
- * @since 0.16
- */
- public static ExportComponent newNoopExportComponent() {
- return new NoopExportComponent();
- }
-
- /**
- * Returns the global {@link MetricProducerManager} which can be used to register handlers to
- * export all the recorded metrics.
- *
- * @return the implementation of the {@code MetricExporter} or no-op if no implementation linked
- * in the binary.
- * @since 0.16
- */
- public abstract MetricProducerManager getMetricProducerManager();
-
- private static final class NoopExportComponent extends ExportComponent {
-
- private static final MetricProducerManager METRIC_PRODUCER_MANAGER =
- MetricProducerManager.newNoopMetricProducerManager();
-
- @Override
- public MetricProducerManager getMetricProducerManager() {
- return METRIC_PRODUCER_MANAGER;
- }
- }
-}
diff --git a/api/src/main/java/io/opencensus/metrics/export/MetricProducerManager.java b/api/src/main/java/io/opencensus/metrics/export/MetricProducerManager.java
deleted file mode 100644
index c5acf174..00000000
--- a/api/src/main/java/io/opencensus/metrics/export/MetricProducerManager.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics.export;
-
-import io.opencensus.common.ExperimentalApi;
-import io.opencensus.internal.Utils;
-import io.opencensus.metrics.MetricProducer;
-import java.util.Collections;
-import java.util.Set;
-import javax.annotation.concurrent.ThreadSafe;
-
-/**
- * Keeps a set of {@link MetricProducer} that is used by exporters to determine the metrics that
- * need to be exported.
- *
- * @since 0.16
- */
-@ExperimentalApi
-@ThreadSafe
-public abstract class MetricProducerManager {
-
- /**
- * Adds the {@link MetricProducer} to the manager if it is not already present.
- *
- * @param metricProducer the {@code MetricProducer} to be added to the manager.
- * @since 0.16
- */
- public abstract void add(MetricProducer metricProducer);
-
- /**
- * Removes the {@link MetricProducer} to the manager if it is present.
- *
- * @param metricProducer the {@code MetricProducer} to be removed from the manager.
- * @since 0.16
- */
- public abstract void remove(MetricProducer metricProducer);
-
- /**
- * Returns all registered {@link MetricProducer}s that should be exported.
- *
- * <p>This method should be used by any metrics exporter that automatically exports data for
- * {@code MetricProducer} registered with the {@code MetricProducerManager}.
- *
- * @return all registered {@code MetricProducer}s that should be exported.
- * @since 0.16
- */
- public abstract Set<MetricProducer> getAllMetricProducer();
-
- /**
- * Returns a no-op implementation for {@link MetricProducerManager}.
- *
- * @return a no-op implementation for {@code MetricProducerManager}.
- */
- static MetricProducerManager newNoopMetricProducerManager() {
- return new NoopMetricProducerManager();
- }
-
- private static final class NoopMetricProducerManager extends MetricProducerManager {
-
- @Override
- public void add(MetricProducer metricProducer) {
- Utils.checkNotNull(metricProducer, "metricProducer");
- }
-
- @Override
- public void remove(MetricProducer metricProducer) {
- Utils.checkNotNull(metricProducer, "metricProducer");
- }
-
- @Override
- public Set<MetricProducer> getAllMetricProducer() {
- return Collections.emptySet();
- }
- }
-}
diff --git a/api/src/main/java/io/opencensus/metrics/package-info.java b/api/src/main/java/io/opencensus/metrics/package-info.java
deleted file mode 100644
index 33eadf0c..00000000
--- a/api/src/main/java/io/opencensus/metrics/package-info.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * This package describes the Metrics data model. Metrics are a data model for what stats exporters
- * take as input. This data model may eventually become the wire format for metrics.
- *
- * <p>WARNING: Currently all the public classes under this package are marked as {@link
- * io.opencensus.common.ExperimentalApi}. The classes and APIs under {@link io.opencensus.metrics}
- * are likely to get backwards-incompatible updates in the future. DO NOT USE except for
- * experimental purposes.
- *
- * <p>Please see
- * https://github.com/census-instrumentation/opencensus-specs/blob/master/stats/Metrics.md and
- * https://github.com/census-instrumentation/opencensus-proto/blob/master/opencensus/proto/stats/metrics/metrics.proto
- * for more details.
- */
-@io.opencensus.common.ExperimentalApi
-package io.opencensus.metrics;
diff --git a/api/src/test/java/io/opencensus/metrics/DistributionTest.java b/api/src/test/java/io/opencensus/metrics/DistributionTest.java
deleted file mode 100644
index d511e317..00000000
--- a/api/src/test/java/io/opencensus/metrics/DistributionTest.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.common.testing.EqualsTester;
-import io.opencensus.common.Timestamp;
-import io.opencensus.metrics.Distribution.Bucket;
-import io.opencensus.metrics.Distribution.Exemplar;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Unit tests for {@link Value}. */
-@RunWith(JUnit4.class)
-public class DistributionTest {
-
- @Rule public final ExpectedException thrown = ExpectedException.none();
-
- private static final Timestamp TIMESTAMP = Timestamp.create(1, 0);
- private static final Map<String, String> ATTACHMENTS = Collections.singletonMap("key", "value");
-
- @Test
- public void createAndGet_Bucket() {
- Bucket bucket = Bucket.create(98);
- assertThat(bucket.getCount()).isEqualTo(98);
- assertThat(bucket.getExemplar()).isNull();
- }
-
- @Test
- public void createAndGet_BucketWithExemplar() {
- Exemplar exemplar = Exemplar.create(12.2, TIMESTAMP, ATTACHMENTS);
- Bucket bucket = Bucket.create(7, exemplar);
- assertThat(bucket.getCount()).isEqualTo(7);
- assertThat(bucket.getExemplar()).isEqualTo(exemplar);
- }
-
- @Test
- public void createBucket_preventNullExemplar() {
- thrown.expect(NullPointerException.class);
- thrown.expectMessage("exemplar");
- Bucket.create(1, null);
- }
-
- @Test
- public void createAndGet_Exemplar() {
- Exemplar exemplar = Exemplar.create(-9.9, TIMESTAMP, ATTACHMENTS);
- assertThat(exemplar.getValue()).isEqualTo(-9.9);
- assertThat(exemplar.getTimestamp()).isEqualTo(TIMESTAMP);
- assertThat(exemplar.getAttachments()).isEqualTo(ATTACHMENTS);
- }
-
- @Test
- public void createAndGet_Distribution() {
- Exemplar exemplar = Exemplar.create(15.0, TIMESTAMP, ATTACHMENTS);
- List<Double> bucketBounds = Arrays.asList(-1.0, 0.0, 1.0);
- List<Bucket> buckets =
- Arrays.asList(
- Bucket.create(3), Bucket.create(1), Bucket.create(2), Bucket.create(4, exemplar));
- Distribution distribution = Distribution.create(6.6, 10, 678.54, bucketBounds, buckets);
- assertThat(distribution.getMean()).isEqualTo(6.6);
- assertThat(distribution.getCount()).isEqualTo(10);
- assertThat(distribution.getSumOfSquaredDeviations()).isEqualTo(678.54);
- assertThat(distribution.getBucketBoundaries())
- .containsExactlyElementsIn(bucketBounds)
- .inOrder();
- assertThat(distribution.getBuckets()).containsExactlyElementsIn(buckets).inOrder();
- }
-
- @Test
- public void createBucket_NegativeCount() {
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("bucket count should be non-negative.");
- Bucket.create(-5);
- }
-
- @Test
- public void createExemplar_PreventNullAttachments() {
- thrown.expect(NullPointerException.class);
- thrown.expectMessage("attachments");
- Exemplar.create(15, TIMESTAMP, null);
- }
-
- @Test
- public void createExemplar_PreventNullAttachmentKey() {
- Map<String, String> attachments = Collections.singletonMap(null, "value");
- thrown.expect(NullPointerException.class);
- thrown.expectMessage("key of attachment");
- Exemplar.create(15, TIMESTAMP, attachments);
- }
-
- @Test
- public void createExemplar_PreventNullAttachmentValue() {
- Map<String, String> attachments = Collections.singletonMap("key", null);
- thrown.expect(NullPointerException.class);
- thrown.expectMessage("value of attachment");
- Exemplar.create(15, TIMESTAMP, attachments);
- }
-
- @Test
- public void createDistribution_NegativeCount() {
- List<Double> bucketBounds = Arrays.asList(-1.0, 0.0, 1.0);
- List<Bucket> buckets =
- Arrays.asList(Bucket.create(3), Bucket.create(1), Bucket.create(2), Bucket.create(4));
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("count should be non-negative.");
- Distribution.create(6.6, -10, 678.54, bucketBounds, buckets);
- }
-
- @Test
- public void createDistribution_NegativeSumOfSquaredDeviations() {
- List<Double> bucketBounds = Arrays.asList(-1.0, 0.0, 1.0);
- List<Bucket> buckets =
- Arrays.asList(Bucket.create(0), Bucket.create(0), Bucket.create(0), Bucket.create(0));
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("sum of squared deviations should be non-negative.");
- Distribution.create(6.6, 0, -678.54, bucketBounds, buckets);
- }
-
- @Test
- public void createDistribution_ZeroCountAndPositiveMean() {
- List<Double> bucketBounds = Arrays.asList(-1.0, 0.0, 1.0);
- List<Bucket> buckets =
- Arrays.asList(Bucket.create(0), Bucket.create(0), Bucket.create(0), Bucket.create(0));
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("mean should be 0 if count is 0.");
- Distribution.create(6.6, 0, 0, bucketBounds, buckets);
- }
-
- @Test
- public void createDistribution_ZeroCountAndSumOfSquaredDeviations() {
- List<Double> bucketBounds = Arrays.asList(-1.0, 0.0, 1.0);
- List<Bucket> buckets =
- Arrays.asList(Bucket.create(0), Bucket.create(0), Bucket.create(0), Bucket.create(0));
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("sum of squared deviations should be 0 if count is 0.");
- Distribution.create(0, 0, 678.54, bucketBounds, buckets);
- }
-
- @Test
- public void createDistribution_NullBucketBounds() {
- List<Bucket> buckets =
- Arrays.asList(Bucket.create(3), Bucket.create(1), Bucket.create(2), Bucket.create(4));
- thrown.expect(NullPointerException.class);
- thrown.expectMessage("bucketBoundaries list should not be null.");
- Distribution.create(6.6, 10, 678.54, null, buckets);
- }
-
- @Test
- public void createDistribution_UnorderedBucketBounds() {
- List<Double> bucketBounds = Arrays.asList(0.0, -1.0, 1.0);
- List<Bucket> buckets =
- Arrays.asList(Bucket.create(3), Bucket.create(1), Bucket.create(2), Bucket.create(4));
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage("bucket boundaries not sorted.");
- Distribution.create(6.6, 10, 678.54, bucketBounds, buckets);
- }
-
- @Test
- public void createDistribution_NullBucketList() {
- List<Double> bucketBounds = Arrays.asList(-1.0, 0.0, 1.0);
- thrown.expect(NullPointerException.class);
- thrown.expectMessage("bucket list should not be null.");
- Distribution.create(6.6, 10, 678.54, bucketBounds, null);
- }
-
- @Test
- public void createDistribution_NullBucket() {
- List<Double> bucketBounds = Arrays.asList(-1.0, 0.0, 1.0);
- List<Bucket> buckets =
- Arrays.asList(Bucket.create(3), Bucket.create(1), null, Bucket.create(4));
- thrown.expect(NullPointerException.class);
- thrown.expectMessage("bucket should not be null.");
- Distribution.create(6.6, 10, 678.54, bucketBounds, buckets);
- }
-
- @Test
- public void testEquals() {
- new EqualsTester()
- .addEqualityGroup(
- Distribution.create(
- 10,
- 10,
- 1,
- Arrays.asList(-5.0, 0.0, 5.0),
- Arrays.asList(
- Bucket.create(3), Bucket.create(1), Bucket.create(2), Bucket.create(4))),
- Distribution.create(
- 10,
- 10,
- 1,
- Arrays.asList(-5.0, 0.0, 5.0),
- Arrays.asList(
- Bucket.create(3), Bucket.create(1), Bucket.create(2), Bucket.create(4))))
- .addEqualityGroup(
- Distribution.create(
- -7,
- 10,
- 23.456,
- Arrays.asList(-5.0, 0.0, 5.0),
- Arrays.asList(
- Bucket.create(3), Bucket.create(1), Bucket.create(2), Bucket.create(4))))
- .testEquals();
- }
-}
diff --git a/api/src/test/java/io/opencensus/metrics/LabelKeyTest.java b/api/src/test/java/io/opencensus/metrics/LabelKeyTest.java
deleted file mode 100644
index 83f2b59a..00000000
--- a/api/src/test/java/io/opencensus/metrics/LabelKeyTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.common.testing.EqualsTester;
-import java.util.Arrays;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Unit tests for {@link LabelKey}. */
-@RunWith(JUnit4.class)
-public class LabelKeyTest {
-
- private static final LabelKey KEY = LabelKey.create("key", "description");
-
- @Test
- public void testGetKey() {
- assertThat(KEY.getKey()).isEqualTo("key");
- }
-
- @Test
- public void testGetDescription() {
- assertThat(KEY.getDescription()).isEqualTo("description");
- }
-
- @Test
- public void create_NoLengthConstraint() {
- // We have a length constraint of 256-characters for TagKey. That constraint doesn't apply to
- // LabelKey.
- char[] chars = new char[300];
- Arrays.fill(chars, 'k');
- String key = new String(chars);
- assertThat(LabelKey.create(key, "").getKey()).isEqualTo(key);
- }
-
- @Test
- public void create_WithUnprintableChars() {
- String key = "\2ab\3cd";
- String description = "\4ef\5gh";
- LabelKey labelKey = LabelKey.create(key, description);
- assertThat(labelKey.getKey()).isEqualTo(key);
- assertThat(labelKey.getDescription()).isEqualTo(description);
- }
-
- @Test
- public void create_WithNonAsciiChars() {
- String key = "键";
- String description = "测试用键";
- LabelKey nonAsciiKey = LabelKey.create(key, description);
- assertThat(nonAsciiKey.getKey()).isEqualTo(key);
- assertThat(nonAsciiKey.getDescription()).isEqualTo(description);
- }
-
- @Test
- public void create_Empty() {
- LabelKey emptyKey = LabelKey.create("", "");
- assertThat(emptyKey.getKey()).isEmpty();
- assertThat(emptyKey.getDescription()).isEmpty();
- }
-
- @Test
- public void testLabelKeyEquals() {
- new EqualsTester()
- .addEqualityGroup(LabelKey.create("foo", ""), LabelKey.create("foo", ""))
- .addEqualityGroup(LabelKey.create("foo", "description"))
- .addEqualityGroup(LabelKey.create("bar", ""))
- .testEquals();
- }
-}
diff --git a/api/src/test/java/io/opencensus/metrics/LabelValueTest.java b/api/src/test/java/io/opencensus/metrics/LabelValueTest.java
deleted file mode 100644
index e5526b2f..00000000
--- a/api/src/test/java/io/opencensus/metrics/LabelValueTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.common.testing.EqualsTester;
-import java.util.Arrays;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Unit tests for {@link LabelValue}. */
-@RunWith(JUnit4.class)
-public class LabelValueTest {
-
- private static final LabelValue VALUE = LabelValue.create("value");
- private static final LabelValue UNSET = LabelValue.create(null);
- private static final LabelValue EMPTY = LabelValue.create("");
-
- @Test
- public void testGetValue() {
- assertThat(VALUE.getValue()).isEqualTo("value");
- assertThat(UNSET.getValue()).isNull();
- assertThat(EMPTY.getValue()).isEmpty();
- }
-
- @Test
- public void create_NoLengthConstraint() {
- // We have a length constraint of 256-characters for TagValue. That constraint doesn't apply to
- // LabelValue.
- char[] chars = new char[300];
- Arrays.fill(chars, 'v');
- String value = new String(chars);
- assertThat(LabelValue.create(value).getValue()).isEqualTo(value);
- }
-
- @Test
- public void create_WithUnprintableChars() {
- String value = "\2ab\3cd";
- assertThat(LabelValue.create(value).getValue()).isEqualTo(value);
- }
-
- @Test
- public void create_WithNonAsciiChars() {
- String value = "值";
- LabelValue nonAsciiValue = LabelValue.create(value);
- assertThat(nonAsciiValue.getValue()).isEqualTo(value);
- }
-
- @Test
- public void testLabelValueEquals() {
- new EqualsTester()
- .addEqualityGroup(LabelValue.create("foo"), LabelValue.create("foo"))
- .addEqualityGroup(UNSET)
- .addEqualityGroup(EMPTY)
- .addEqualityGroup(LabelValue.create("bar"))
- .testEquals();
- }
-}
diff --git a/api/src/test/java/io/opencensus/metrics/MetricDescriptorTest.java b/api/src/test/java/io/opencensus/metrics/MetricDescriptorTest.java
deleted file mode 100644
index 9c0a42fc..00000000
--- a/api/src/test/java/io/opencensus/metrics/MetricDescriptorTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.common.testing.EqualsTester;
-import io.opencensus.metrics.MetricDescriptor.Type;
-import java.util.Arrays;
-import java.util.List;
-import org.hamcrest.CoreMatchers;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Unit tests for {@link MetricDescriptor}. */
-@RunWith(JUnit4.class)
-public class MetricDescriptorTest {
-
- @Rule public final ExpectedException thrown = ExpectedException.none();
-
- private static final String METRIC_NAME_1 = "metric1";
- private static final String METRIC_NAME_2 = "metric2";
- private static final String DESCRIPTION = "Metric description.";
- private static final String UNIT = "kb/s";
- private static final LabelKey KEY_1 = LabelKey.create("key1", "some key");
- private static final LabelKey KEY_2 = LabelKey.create("key2", "some other key");
-
- @Test
- public void testGet() {
- MetricDescriptor metricDescriptor =
- MetricDescriptor.create(
- METRIC_NAME_1, DESCRIPTION, UNIT, Type.GAUGE_DOUBLE, Arrays.asList(KEY_1, KEY_2));
- assertThat(metricDescriptor.getName()).isEqualTo(METRIC_NAME_1);
- assertThat(metricDescriptor.getDescription()).isEqualTo(DESCRIPTION);
- assertThat(metricDescriptor.getUnit()).isEqualTo(UNIT);
- assertThat(metricDescriptor.getType()).isEqualTo(Type.GAUGE_DOUBLE);
- assertThat(metricDescriptor.getLabelKeys()).containsExactly(KEY_1, KEY_2).inOrder();
- }
-
- @Test
- public void preventNullLabelKeyList() {
- thrown.expect(NullPointerException.class);
- thrown.expectMessage(CoreMatchers.equalTo("labelKeys"));
- MetricDescriptor.create(METRIC_NAME_1, DESCRIPTION, UNIT, Type.GAUGE_DOUBLE, null);
- }
-
- @Test
- public void preventNullLabelKey() {
- List<LabelKey> keys = Arrays.asList(KEY_1, null);
- thrown.expect(NullPointerException.class);
- thrown.expectMessage(CoreMatchers.equalTo("labelKey"));
- MetricDescriptor.create(METRIC_NAME_1, DESCRIPTION, UNIT, Type.GAUGE_DOUBLE, keys);
- }
-
- @Test
- public void testEquals() {
- new EqualsTester()
- .addEqualityGroup(
- MetricDescriptor.create(
- METRIC_NAME_1, DESCRIPTION, UNIT, Type.GAUGE_DOUBLE, Arrays.asList(KEY_1, KEY_2)),
- MetricDescriptor.create(
- METRIC_NAME_1, DESCRIPTION, UNIT, Type.GAUGE_DOUBLE, Arrays.asList(KEY_1, KEY_2)))
- .addEqualityGroup(
- MetricDescriptor.create(
- METRIC_NAME_2, DESCRIPTION, UNIT, Type.GAUGE_DOUBLE, Arrays.asList(KEY_1, KEY_2)))
- .addEqualityGroup(
- MetricDescriptor.create(
- METRIC_NAME_2, DESCRIPTION, UNIT, Type.GAUGE_INT64, Arrays.asList(KEY_1, KEY_2)))
- .addEqualityGroup(
- MetricDescriptor.create(
- METRIC_NAME_1,
- DESCRIPTION,
- UNIT,
- Type.CUMULATIVE_DISTRIBUTION,
- Arrays.asList(KEY_1, KEY_2)))
- .addEqualityGroup(
- MetricDescriptor.create(
- METRIC_NAME_1,
- DESCRIPTION,
- UNIT,
- Type.CUMULATIVE_DISTRIBUTION,
- Arrays.asList(KEY_1)))
- .testEquals();
- }
-}
diff --git a/api/src/test/java/io/opencensus/metrics/MetricRegistryTest.java b/api/src/test/java/io/opencensus/metrics/MetricRegistryTest.java
deleted file mode 100644
index 49e8ce02..00000000
--- a/api/src/test/java/io/opencensus/metrics/MetricRegistryTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import io.opencensus.common.ToDoubleFunction;
-import io.opencensus.common.ToLongFunction;
-import java.util.LinkedHashMap;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Unit tests for {@link MetricRegistry}. */
-@RunWith(JUnit4.class)
-public class MetricRegistryTest {
- @Rule public ExpectedException thrown = ExpectedException.none();
-
- private final MetricRegistry metricRegistry =
- MetricsComponent.newNoopMetricsComponent().getMetricRegistry();
-
- @Test
- public void addDoubleGauge_NullName() {
- thrown.expect(NullPointerException.class);
- metricRegistry.addDoubleGauge(
- null,
- "description",
- "1",
- new LinkedHashMap<LabelKey, LabelValue>(),
- null,
- new ToDoubleFunction<Object>() {
- @Override
- public double applyAsDouble(Object value) {
- return 5.0;
- }
- });
- }
-
- @Test
- public void addDoubleGauge_NullDescription() {
- thrown.expect(NullPointerException.class);
- metricRegistry.addDoubleGauge(
- "name",
- null,
- "1",
- new LinkedHashMap<LabelKey, LabelValue>(),
- null,
- new ToDoubleFunction<Object>() {
- @Override
- public double applyAsDouble(Object value) {
- return 5.0;
- }
- });
- }
-
- @Test
- public void addDoubleGauge_NullUnit() {
- thrown.expect(NullPointerException.class);
- metricRegistry.addDoubleGauge(
- "name",
- "description",
- null,
- new LinkedHashMap<LabelKey, LabelValue>(),
- null,
- new ToDoubleFunction<Object>() {
- @Override
- public double applyAsDouble(Object value) {
- return 5.0;
- }
- });
- }
-
- @Test
- public void addDoubleGauge_NullLabels() {
- thrown.expect(NullPointerException.class);
- metricRegistry.addDoubleGauge(
- "name",
- "description",
- "1",
- null,
- null,
- new ToDoubleFunction<Object>() {
- @Override
- public double applyAsDouble(Object value) {
- return 5.0;
- }
- });
- }
-
- @Test
- public void addDoubleGauge_NullFunction() {
- thrown.expect(NullPointerException.class);
- metricRegistry.addDoubleGauge(
- "name", "description", "1", new LinkedHashMap<LabelKey, LabelValue>(), null, null);
- }
-
- @Test
- public void addLongGauge_NullName() {
- thrown.expect(NullPointerException.class);
- metricRegistry.addLongGauge(
- null,
- "description",
- "1",
- new LinkedHashMap<LabelKey, LabelValue>(),
- null,
- new ToLongFunction<Object>() {
- @Override
- public long applyAsLong(Object value) {
- return 5;
- }
- });
- }
-
- @Test
- public void addLongGauge_NullDescription() {
- thrown.expect(NullPointerException.class);
- metricRegistry.addLongGauge(
- "name",
- null,
- "1",
- new LinkedHashMap<LabelKey, LabelValue>(),
- null,
- new ToLongFunction<Object>() {
- @Override
- public long applyAsLong(Object value) {
- return 5;
- }
- });
- }
-
- @Test
- public void addLongGauge_NullUnit() {
- thrown.expect(NullPointerException.class);
- metricRegistry.addLongGauge(
- "name",
- "description",
- null,
- new LinkedHashMap<LabelKey, LabelValue>(),
- null,
- new ToLongFunction<Object>() {
- @Override
- public long applyAsLong(Object value) {
- return 5;
- }
- });
- }
-
- @Test
- public void addLongGauge_NullLabels() {
- thrown.expect(NullPointerException.class);
- metricRegistry.addLongGauge(
- "name",
- "description",
- "1",
- null,
- null,
- new ToLongFunction<Object>() {
- @Override
- public long applyAsLong(Object value) {
- return 5;
- }
- });
- }
-
- @Test
- public void addLongGauge_NullFunction() {
- thrown.expect(NullPointerException.class);
- metricRegistry.addLongGauge(
- "name", "description", "1", new LinkedHashMap<LabelKey, LabelValue>(), null, null);
- }
-}
diff --git a/api/src/test/java/io/opencensus/metrics/MetricTest.java b/api/src/test/java/io/opencensus/metrics/MetricTest.java
deleted file mode 100644
index 37deed4b..00000000
--- a/api/src/test/java/io/opencensus/metrics/MetricTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.common.testing.EqualsTester;
-import io.opencensus.common.Timestamp;
-import io.opencensus.metrics.MetricDescriptor.Type;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Unit tests for {@link Metric}. */
-@RunWith(JUnit4.class)
-public class MetricTest {
-
- @Rule public final ExpectedException thrown = ExpectedException.none();
-
- private static final String METRIC_NAME_1 = "metric1";
- private static final String METRIC_NAME_2 = "metric2";
- private static final String DESCRIPTION = "Metric description.";
- private static final String UNIT = "kb/s";
- private static final LabelKey KEY_1 = LabelKey.create("key1", "some key");
- private static final LabelKey KEY_2 = LabelKey.create("key1", "some other key");
- private static final MetricDescriptor METRIC_DESCRIPTOR_1 =
- MetricDescriptor.create(
- METRIC_NAME_1, DESCRIPTION, UNIT, Type.GAUGE_DOUBLE, Arrays.asList(KEY_1, KEY_2));
- private static final MetricDescriptor METRIC_DESCRIPTOR_2 =
- MetricDescriptor.create(
- METRIC_NAME_2, DESCRIPTION, UNIT, Type.CUMULATIVE_INT64, Arrays.asList(KEY_1));
- private static final LabelValue LABEL_VALUE_1 = LabelValue.create("value1");
- private static final LabelValue LABEL_VALUE_2 = LabelValue.create("value1");
- private static final LabelValue LABEL_VALUE_EMPTY = LabelValue.create("");
- private static final Value VALUE_LONG = Value.longValue(12345678);
- private static final Value VALUE_DOUBLE_1 = Value.doubleValue(-345.77);
- private static final Value VALUE_DOUBLE_2 = Value.doubleValue(133.79);
- private static final Timestamp TIMESTAMP_1 = Timestamp.fromMillis(1000);
- private static final Timestamp TIMESTAMP_2 = Timestamp.fromMillis(2000);
- private static final Timestamp TIMESTAMP_3 = Timestamp.fromMillis(3000);
- private static final Point POINT_1 = Point.create(VALUE_DOUBLE_1, TIMESTAMP_2);
- private static final Point POINT_2 = Point.create(VALUE_DOUBLE_2, TIMESTAMP_3);
- private static final Point POINT_3 = Point.create(VALUE_LONG, TIMESTAMP_3);
- private static final TimeSeries GAUGE_TIME_SERIES_1 =
- TimeSeries.create(Arrays.asList(LABEL_VALUE_1, LABEL_VALUE_2), Arrays.asList(POINT_1), null);
- private static final TimeSeries GAUGE_TIME_SERIES_2 =
- TimeSeries.create(Arrays.asList(LABEL_VALUE_1, LABEL_VALUE_2), Arrays.asList(POINT_2), null);
- private static final TimeSeries CUMULATIVE_TIME_SERIES =
- TimeSeries.create(Arrays.asList(LABEL_VALUE_EMPTY), Arrays.asList(POINT_3), TIMESTAMP_1);
-
- @Test
- public void testGet() {
- Metric metric =
- Metric.create(METRIC_DESCRIPTOR_1, Arrays.asList(GAUGE_TIME_SERIES_1, GAUGE_TIME_SERIES_2));
- assertThat(metric.getMetricDescriptor()).isEqualTo(METRIC_DESCRIPTOR_1);
- assertThat(metric.getTimeSeriesList())
- .containsExactly(GAUGE_TIME_SERIES_1, GAUGE_TIME_SERIES_2)
- .inOrder();
- }
-
- @Test
- public void typeMismatch_GaugeDouble_Long() {
- typeMismatch(
- METRIC_DESCRIPTOR_1,
- Arrays.asList(CUMULATIVE_TIME_SERIES),
- String.format("Type mismatch: %s, %s.", Type.GAUGE_DOUBLE, "ValueLong"));
- }
-
- @Test
- public void typeMismatch_CumulativeInt64_Double() {
- typeMismatch(
- METRIC_DESCRIPTOR_2,
- Arrays.asList(GAUGE_TIME_SERIES_1),
- String.format("Type mismatch: %s, %s.", Type.CUMULATIVE_INT64, "ValueDouble"));
- }
-
- private void typeMismatch(
- MetricDescriptor metricDescriptor, List<TimeSeries> timeSeriesList, String errorMessage) {
- thrown.expect(IllegalArgumentException.class);
- thrown.expectMessage(errorMessage);
- Metric.create(metricDescriptor, timeSeriesList);
- }
-
- @Test
- public void testEquals() {
- new EqualsTester()
- .addEqualityGroup(
- Metric.create(
- METRIC_DESCRIPTOR_1, Arrays.asList(GAUGE_TIME_SERIES_1, GAUGE_TIME_SERIES_2)),
- Metric.create(
- METRIC_DESCRIPTOR_1, Arrays.asList(GAUGE_TIME_SERIES_1, GAUGE_TIME_SERIES_2)))
- .addEqualityGroup(Metric.create(METRIC_DESCRIPTOR_1, Collections.<TimeSeries>emptyList()))
- .addEqualityGroup(Metric.create(METRIC_DESCRIPTOR_2, Arrays.asList(CUMULATIVE_TIME_SERIES)))
- .addEqualityGroup(Metric.create(METRIC_DESCRIPTOR_2, Collections.<TimeSeries>emptyList()))
- .testEquals();
- }
-}
diff --git a/api/src/test/java/io/opencensus/metrics/MetricsComponentTest.java b/api/src/test/java/io/opencensus/metrics/MetricsComponentTest.java
deleted file mode 100644
index 1c4e70f7..00000000
--- a/api/src/test/java/io/opencensus/metrics/MetricsComponentTest.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import io.opencensus.metrics.export.ExportComponent;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Unit tests for {@link MetricsComponent}. */
-@RunWith(JUnit4.class)
-public class MetricsComponentTest {
- @Test
- public void defaultExportComponent() {
- assertThat(MetricsComponent.newNoopMetricsComponent().getExportComponent())
- .isInstanceOf(ExportComponent.newNoopExportComponent().getClass());
- }
-
- @Test
- public void defaultMetricRegistry() {
- assertThat(MetricsComponent.newNoopMetricsComponent().getMetricRegistry())
- .isInstanceOf(MetricRegistry.newNoopMetricRegistry().getClass());
- }
-}
diff --git a/api/src/test/java/io/opencensus/metrics/MetricsTest.java b/api/src/test/java/io/opencensus/metrics/MetricsTest.java
deleted file mode 100644
index 9e0eee1f..00000000
--- a/api/src/test/java/io/opencensus/metrics/MetricsTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import io.opencensus.metrics.export.ExportComponent;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Unit tests for {@link Metrics}. */
-@RunWith(JUnit4.class)
-public class MetricsTest {
- @Rule public ExpectedException thrown = ExpectedException.none();
-
- @Test
- public void loadMetricsComponent_UsesProvidedClassLoader() {
- final RuntimeException toThrow = new RuntimeException("UseClassLoader");
- thrown.expect(RuntimeException.class);
- thrown.expectMessage("UseClassLoader");
- Metrics.loadMetricsComponent(
- new ClassLoader() {
- @Override
- public Class<?> loadClass(String name) {
- throw toThrow;
- }
- });
- }
-
- @Test
- public void loadMetricsComponent_IgnoresMissingClasses() {
- ClassLoader classLoader =
- new ClassLoader() {
- @Override
- public Class<?> loadClass(String name) throws ClassNotFoundException {
- throw new ClassNotFoundException();
- }
- };
- assertThat(Metrics.loadMetricsComponent(classLoader).getClass().getName())
- .isEqualTo("io.opencensus.metrics.MetricsComponent$NoopMetricsComponent");
- }
-
- @Test
- public void defaultExportComponent() {
- assertThat(Metrics.getExportComponent())
- .isInstanceOf(ExportComponent.newNoopExportComponent().getClass());
- }
-
- @Test
- public void defaultMetricRegistry() {
- assertThat(Metrics.getMetricRegistry())
- .isInstanceOf(MetricRegistry.newNoopMetricRegistry().getClass());
- }
-}
diff --git a/api/src/test/java/io/opencensus/metrics/PointTest.java b/api/src/test/java/io/opencensus/metrics/PointTest.java
deleted file mode 100644
index cb6175c1..00000000
--- a/api/src/test/java/io/opencensus/metrics/PointTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.common.testing.EqualsTester;
-import io.opencensus.common.Timestamp;
-import io.opencensus.metrics.Distribution.Bucket;
-import java.util.Arrays;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Unit tests for {@link Point}. */
-@RunWith(JUnit4.class)
-public class PointTest {
-
- private static final Value DOUBLE_VALUE = Value.doubleValue(55.5);
- private static final Value LONG_VALUE = Value.longValue(9876543210L);
- private static final Value DISTRIBUTION_VALUE =
- Value.distributionValue(
- Distribution.create(
- 6.6,
- 10,
- 678.54,
- Arrays.asList(-1.0, 0.0, 1.0),
- Arrays.asList(
- Bucket.create(3), Bucket.create(1), Bucket.create(2), Bucket.create(4))));
- private static final Timestamp TIMESTAMP_1 = Timestamp.create(1, 2);
- private static final Timestamp TIMESTAMP_2 = Timestamp.create(3, 4);
- private static final Timestamp TIMESTAMP_3 = Timestamp.create(5, 6);
-
- @Test
- public void testGet() {
- Point point = Point.create(DOUBLE_VALUE, TIMESTAMP_1);
- assertThat(point.getValue()).isEqualTo(DOUBLE_VALUE);
- assertThat(point.getTimestamp()).isEqualTo(TIMESTAMP_1);
- }
-
- @Test
- public void testEquals() {
- new EqualsTester()
- .addEqualityGroup(
- Point.create(DOUBLE_VALUE, TIMESTAMP_1), Point.create(DOUBLE_VALUE, TIMESTAMP_1))
- .addEqualityGroup(Point.create(LONG_VALUE, TIMESTAMP_1))
- .addEqualityGroup(Point.create(LONG_VALUE, TIMESTAMP_2))
- .addEqualityGroup(
- Point.create(DISTRIBUTION_VALUE, TIMESTAMP_2),
- Point.create(DISTRIBUTION_VALUE, TIMESTAMP_2))
- .addEqualityGroup(Point.create(DISTRIBUTION_VALUE, TIMESTAMP_3))
- .testEquals();
- }
-}
diff --git a/api/src/test/java/io/opencensus/metrics/TimeSeriesTest.java b/api/src/test/java/io/opencensus/metrics/TimeSeriesTest.java
deleted file mode 100644
index 07dff97d..00000000
--- a/api/src/test/java/io/opencensus/metrics/TimeSeriesTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.common.testing.EqualsTester;
-import io.opencensus.common.Timestamp;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import org.hamcrest.CoreMatchers;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Unit tests for {@link TimeSeries}. */
-@RunWith(JUnit4.class)
-public class TimeSeriesTest {
-
- @Rule public ExpectedException thrown = ExpectedException.none();
-
- private static final LabelValue LABEL_VALUE_1 = LabelValue.create("value1");
- private static final LabelValue LABEL_VALUE_2 = LabelValue.create("value2");
- private static final Value VALUE_LONG = Value.longValue(12345678);
- private static final Value VALUE_DOUBLE = Value.doubleValue(-345.77);
- private static final Timestamp TIMESTAMP_1 = Timestamp.fromMillis(1000);
- private static final Timestamp TIMESTAMP_2 = Timestamp.fromMillis(2000);
- private static final Timestamp TIMESTAMP_3 = Timestamp.fromMillis(3000);
- private static final Point POINT_1 = Point.create(VALUE_DOUBLE, TIMESTAMP_2);
- private static final Point POINT_2 = Point.create(VALUE_LONG, TIMESTAMP_3);
-
- @Test
- public void testGet_TimeSeries() {
- TimeSeries cumulativeTimeSeries =
- TimeSeries.create(
- Arrays.asList(LABEL_VALUE_1, LABEL_VALUE_2), Arrays.asList(POINT_1), TIMESTAMP_1);
- assertThat(cumulativeTimeSeries.getStartTimestamp()).isEqualTo(TIMESTAMP_1);
- assertThat(cumulativeTimeSeries.getLabelValues())
- .containsExactly(LABEL_VALUE_1, LABEL_VALUE_2)
- .inOrder();
- assertThat(cumulativeTimeSeries.getPoints()).containsExactly(POINT_1).inOrder();
- }
-
- @Test
- public void create_WithNullLabelValueList() {
- thrown.expect(NullPointerException.class);
- thrown.expectMessage(CoreMatchers.equalTo("labelValues"));
- TimeSeries.create(null, Collections.<Point>emptyList(), TIMESTAMP_1);
- }
-
- @Test
- public void create_WithNullLabelValue() {
- List<LabelValue> labelValues = Arrays.asList(LABEL_VALUE_1, null);
- thrown.expect(NullPointerException.class);
- thrown.expectMessage(CoreMatchers.equalTo("labelValue"));
- TimeSeries.create(labelValues, Collections.<Point>emptyList(), TIMESTAMP_1);
- }
-
- @Test
- public void create_WithNullPointList() {
- thrown.expect(NullPointerException.class);
- thrown.expectMessage(CoreMatchers.equalTo("points"));
- TimeSeries.create(Collections.<LabelValue>emptyList(), null, TIMESTAMP_1);
- }
-
- @Test
- public void create_WithNullPoint() {
- List<Point> points = Arrays.asList(POINT_1, null);
- thrown.expect(NullPointerException.class);
- thrown.expectMessage(CoreMatchers.equalTo("point"));
- TimeSeries.create(Collections.<LabelValue>emptyList(), points, TIMESTAMP_1);
- }
-
- @Test
- public void testEquals() {
- new EqualsTester()
- .addEqualityGroup(
- TimeSeries.create(
- Arrays.asList(LABEL_VALUE_1, LABEL_VALUE_2), Arrays.asList(POINT_1), TIMESTAMP_1),
- TimeSeries.create(
- Arrays.asList(LABEL_VALUE_1, LABEL_VALUE_2), Arrays.asList(POINT_1), TIMESTAMP_1))
- .addEqualityGroup(
- TimeSeries.create(
- Arrays.asList(LABEL_VALUE_1, LABEL_VALUE_2), Arrays.asList(POINT_1), null),
- TimeSeries.create(
- Arrays.asList(LABEL_VALUE_1, LABEL_VALUE_2), Arrays.asList(POINT_1), null))
- .addEqualityGroup(
- TimeSeries.create(
- Arrays.asList(LABEL_VALUE_1, LABEL_VALUE_2), Arrays.asList(POINT_1), TIMESTAMP_2))
- .addEqualityGroup(
- TimeSeries.create(Arrays.asList(LABEL_VALUE_1), Arrays.asList(POINT_1), TIMESTAMP_2))
- .addEqualityGroup(
- TimeSeries.create(Arrays.asList(LABEL_VALUE_1), Arrays.asList(POINT_2), TIMESTAMP_2))
- .addEqualityGroup(
- TimeSeries.create(
- Arrays.asList(LABEL_VALUE_1), Arrays.asList(POINT_1, POINT_2), TIMESTAMP_2))
- .testEquals();
- }
-}
diff --git a/api/src/test/java/io/opencensus/metrics/ValueTest.java b/api/src/test/java/io/opencensus/metrics/ValueTest.java
deleted file mode 100644
index 63430b28..00000000
--- a/api/src/test/java/io/opencensus/metrics/ValueTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.common.testing.EqualsTester;
-import io.opencensus.common.Function;
-import io.opencensus.common.Functions;
-import io.opencensus.metrics.Distribution.Bucket;
-import io.opencensus.metrics.Value.ValueDistribution;
-import io.opencensus.metrics.Value.ValueDouble;
-import io.opencensus.metrics.Value.ValueLong;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Unit tests for {@link Value}. */
-@RunWith(JUnit4.class)
-public class ValueTest {
-
- private static final Distribution DISTRIBUTION =
- Distribution.create(
- 10,
- 10,
- 1,
- Arrays.asList(-5.0, 0.0, 5.0),
- Arrays.asList(Bucket.create(3), Bucket.create(1), Bucket.create(2), Bucket.create(4)));
-
- @Test
- public void createAndGet_ValueDouble() {
- Value value = Value.doubleValue(-34.56);
- assertThat(value).isInstanceOf(ValueDouble.class);
- assertThat(((ValueDouble) value).getValue()).isEqualTo(-34.56);
- }
-
- @Test
- public void createAndGet_ValueLong() {
- Value value = Value.longValue(123456789);
- assertThat(value).isInstanceOf(ValueLong.class);
- assertThat(((ValueLong) value).getValue()).isEqualTo(123456789);
- }
-
- @Test
- public void createAndGet_ValueDistribution() {
- Value value = Value.distributionValue(DISTRIBUTION);
- assertThat(value).isInstanceOf(ValueDistribution.class);
- assertThat(((ValueDistribution) value).getValue()).isEqualTo(DISTRIBUTION);
- }
-
- @Test
- public void testEquals() {
- new EqualsTester()
- .addEqualityGroup(Value.doubleValue(1.0), Value.doubleValue(1.0))
- .addEqualityGroup(Value.doubleValue(2.0))
- .addEqualityGroup(Value.longValue(1L))
- .addEqualityGroup(Value.longValue(2L))
- .addEqualityGroup(
- Value.distributionValue(
- Distribution.create(
- -7,
- 10,
- 23.456,
- Arrays.asList(-5.0, 0.0, 5.0),
- Arrays.asList(
- Bucket.create(3), Bucket.create(1), Bucket.create(2), Bucket.create(4)))))
- .testEquals();
- }
-
- @Test
- public void testMatch() {
- List<Value> values =
- Arrays.asList(
- ValueDouble.create(1.0), ValueLong.create(-1), ValueDistribution.create(DISTRIBUTION));
- List<Number> expected =
- Arrays.<Number>asList(1.0, -1L, 10.0, 10L, 1.0, -5.0, 0.0, 5.0, 3L, 1L, 2L, 4L);
- final List<Number> actual = new ArrayList<Number>();
- for (Value value : values) {
- value.match(
- new Function<Double, Object>() {
- @Override
- public Object apply(Double arg) {
- actual.add(arg);
- return null;
- }
- },
- new Function<Long, Object>() {
- @Override
- public Object apply(Long arg) {
- actual.add(arg);
- return null;
- }
- },
- new Function<Distribution, Object>() {
- @Override
- public Object apply(Distribution arg) {
- actual.add(arg.getMean());
- actual.add(arg.getCount());
- actual.add(arg.getSumOfSquaredDeviations());
- actual.addAll(arg.getBucketBoundaries());
- for (Bucket bucket : arg.getBuckets()) {
- actual.add(bucket.getCount());
- }
- return null;
- }
- },
- Functions.throwAssertionError());
- }
- assertThat(actual).containsExactlyElementsIn(expected).inOrder();
- }
-}
diff --git a/api/src/test/java/io/opencensus/metrics/export/ExportComponentTest.java b/api/src/test/java/io/opencensus/metrics/export/ExportComponentTest.java
deleted file mode 100644
index 15c6e883..00000000
--- a/api/src/test/java/io/opencensus/metrics/export/ExportComponentTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics.export;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/** Unit tests for {@link ExportComponent}. */
-@RunWith(JUnit4.class)
-public class ExportComponentTest {
- @Test
- public void defaultMetricExporter() {
- assertThat(ExportComponent.newNoopExportComponent().getMetricProducerManager())
- .isInstanceOf(MetricProducerManager.class);
- }
-}
diff --git a/api/src/test/java/io/opencensus/metrics/export/MetricProducerManagerTest.java b/api/src/test/java/io/opencensus/metrics/export/MetricProducerManagerTest.java
deleted file mode 100644
index 07854927..00000000
--- a/api/src/test/java/io/opencensus/metrics/export/MetricProducerManagerTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2018, OpenCensus Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package io.opencensus.metrics.export;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import io.opencensus.metrics.MetricProducer;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-/** Unit tests for {@link MetricProducerManager}. */
-@RunWith(JUnit4.class)
-public class MetricProducerManagerTest {
- private final MetricProducerManager metricProducerManager =
- MetricProducerManager.newNoopMetricProducerManager();
- @Mock private MetricProducer metricProducer;
-
- @Rule public final ExpectedException thrown = ExpectedException.none();
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- }
-
- @Test
- public void add_DisallowsNull() {
- thrown.expect(NullPointerException.class);
- metricProducerManager.add(null);
- }
-
- @Test
- public void add() {
- metricProducerManager.add(metricProducer);
- assertThat(metricProducerManager.getAllMetricProducer()).isEmpty();
- }
-
- @Test
- public void addAndRemove() {
- metricProducerManager.add(metricProducer);
- assertThat(metricProducerManager.getAllMetricProducer()).isEmpty();
- metricProducerManager.remove(metricProducer);
- assertThat(metricProducerManager.getAllMetricProducer()).isEmpty();
- }
-
- @Test
- public void remove_DisallowsNull() {
- thrown.expect(NullPointerException.class);
- metricProducerManager.remove(null);
- }
-
- @Test
- public void remove_FromEmpty() {
- metricProducerManager.remove(metricProducer);
- assertThat(metricProducerManager.getAllMetricProducer()).isEmpty();
- }
-
- @Test
- public void getAllMetricProducer_empty() {
- assertThat(metricProducerManager.getAllMetricProducer()).isEmpty();
- }
-}