diff options
Diffstat (limited to 'simplemetrics/src/main/java/com/yahoo/metrics/simple/jdisc/SimpleMetricConsumer.java')
-rw-r--r-- | simplemetrics/src/main/java/com/yahoo/metrics/simple/jdisc/SimpleMetricConsumer.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/simplemetrics/src/main/java/com/yahoo/metrics/simple/jdisc/SimpleMetricConsumer.java b/simplemetrics/src/main/java/com/yahoo/metrics/simple/jdisc/SimpleMetricConsumer.java new file mode 100644 index 00000000000..7f5571418fe --- /dev/null +++ b/simplemetrics/src/main/java/com/yahoo/metrics/simple/jdisc/SimpleMetricConsumer.java @@ -0,0 +1,55 @@ +// Copyright 2016 Yahoo Inc. 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.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 <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a> + */ +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) { + return null; + } else { + return new Point(properties); + } + } + +} |