diff options
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.java | 32 |
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(); |