diff options
Diffstat (limited to 'container-core/src/main/java/com/yahoo/metrics/simple/jdisc/SimpleMetricConsumer.java')
-rw-r--r-- | container-core/src/main/java/com/yahoo/metrics/simple/jdisc/SimpleMetricConsumer.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/container-core/src/main/java/com/yahoo/metrics/simple/jdisc/SimpleMetricConsumer.java b/container-core/src/main/java/com/yahoo/metrics/simple/jdisc/SimpleMetricConsumer.java new file mode 100644 index 00000000000..ee5f18e78d3 --- /dev/null +++ b/container-core/src/main/java/com/yahoo/metrics/simple/jdisc/SimpleMetricConsumer.java @@ -0,0 +1,54 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.metrics.simple.jdisc; + +import java.util.HashMap; +import java.util.Map; + +import com.yahoo.jdisc.Metric.Context; +import com.yahoo.jdisc.application.MetricConsumer; +import com.yahoo.metrics.simple.Identifier; +import com.yahoo.metrics.simple.Measurement; +import com.yahoo.metrics.simple.Point; +import com.yahoo.metrics.simple.MetricReceiver; +import com.yahoo.metrics.simple.Sample; +import com.yahoo.metrics.simple.UntypedMetric.AssumedType; + +/** + * The single user facing part of the JDisc interfaces of simple metrics. + * + * @author Steinar Knutsen + */ +public class SimpleMetricConsumer implements MetricConsumer { + + private final MetricReceiver receiver; + + public SimpleMetricConsumer(MetricReceiver receiver) { + this.receiver = receiver; + } + + @Override + public void set(String key, Number val, Context ctx) { + receiver.update(new Sample(new Measurement(val), new Identifier(key, getSimpleCoordinate(ctx)), AssumedType.GAUGE)); + } + + @Override + public void add(String key, Number val, Context ctx) { + receiver.update(new Sample(new Measurement(val), new Identifier(key, getSimpleCoordinate(ctx)), AssumedType.COUNTER)); + } + + private Point getSimpleCoordinate(Context ctx) { + if (ctx instanceof Point) { + return (Point) ctx; + } else { + return null; + } + } + + @Override + public Context createContext(Map<String, ?> properties) { + if (properties == null) + properties = new HashMap<>(); + return new Point(properties); + } + +} |