aboutsummaryrefslogtreecommitdiff
path: root/impl_core/src/main/java/io/opencensus/implcore/metrics/MetricRegistryImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'impl_core/src/main/java/io/opencensus/implcore/metrics/MetricRegistryImpl.java')
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/metrics/MetricRegistryImpl.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/impl_core/src/main/java/io/opencensus/implcore/metrics/MetricRegistryImpl.java b/impl_core/src/main/java/io/opencensus/implcore/metrics/MetricRegistryImpl.java
index c606d7e9..1a301ecf 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/metrics/MetricRegistryImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/metrics/MetricRegistryImpl.java
@@ -20,6 +20,8 @@ import static com.google.common.base.Preconditions.checkNotNull;
import io.opencensus.common.Clock;
import io.opencensus.implcore.internal.Utils;
+import io.opencensus.metrics.DerivedDoubleGauge;
+import io.opencensus.metrics.DerivedLongGauge;
import io.opencensus.metrics.DoubleGauge;
import io.opencensus.metrics.LabelKey;
import io.opencensus.metrics.LongGauge;
@@ -73,6 +75,36 @@ public final class MetricRegistryImpl extends MetricRegistry {
return doubleGaugeMetric;
}
+ @Override
+ public DerivedLongGauge addDerivedLongGauge(
+ String name, String description, String unit, List<LabelKey> labelKeys) {
+ Utils.checkListElementNotNull(
+ checkNotNull(labelKeys, "labelKeys"), "labelKey element should not be null.");
+ DerivedLongGaugeImpl derivedLongGauge =
+ new DerivedLongGaugeImpl(
+ checkNotNull(name, "name"),
+ checkNotNull(description, "description"),
+ checkNotNull(unit, "unit"),
+ Collections.unmodifiableList(new ArrayList<LabelKey>(labelKeys)));
+ registeredMeters.registerMeter(name, derivedLongGauge);
+ return derivedLongGauge;
+ }
+
+ @Override
+ public DerivedDoubleGauge addDerivedDoubleGauge(
+ String name, String description, String unit, List<LabelKey> labelKeys) {
+ Utils.checkListElementNotNull(
+ checkNotNull(labelKeys, "labelKeys"), "labelKey element should not be null.");
+ DerivedDoubleGaugeImpl derivedDoubleGauge =
+ new DerivedDoubleGaugeImpl(
+ checkNotNull(name, "name"),
+ checkNotNull(description, "description"),
+ checkNotNull(unit, "unit"),
+ Collections.unmodifiableList(new ArrayList<LabelKey>(labelKeys)));
+ registeredMeters.registerMeter(name, derivedDoubleGauge);
+ return derivedDoubleGauge;
+ }
+
private static final class RegisteredMeters {
private volatile Map<String, Meter> registeredMeters = Collections.emptyMap();