diff options
author | valerijf <valerijf@yahoo-inc.com> | 2016-09-28 15:03:18 +0200 |
---|---|---|
committer | valerijf <valerijf@yahoo-inc.com> | 2016-09-29 09:45:47 +0200 |
commit | d41a9c1af113fc576efff82aa90def1ecd5073b1 (patch) | |
tree | 7027221b4a315e3e3139582281d54d6724facd09 /docker-api | |
parent | 62e926df7972b24f673a896208b03dc07bf5053e (diff) |
Added intent and synchronized counter + gauge
Diffstat (limited to 'docker-api')
3 files changed, 26 insertions, 7 deletions
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/CounterWrapper.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/CounterWrapper.java index 0b3b4d8ada9..cb3812a4bd9 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/CounterWrapper.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/CounterWrapper.java @@ -3,6 +3,9 @@ package com.yahoo.vespa.hosted.dockerapi.metrics; import com.yahoo.metrics.simple.Counter; /** + * Forwards sample to {@link com.yahoo.metrics.simple.Counter} to be displayed in /state/v1/metrics, + * while also saving the value so it can be accessed programatically later. + * * @author valerijf */ public class CounterWrapper implements MetricValue { @@ -14,17 +17,21 @@ public class CounterWrapper implements MetricValue { } public void add() { - counter.add(); - value++; + add(1L); } public void add(long n) { - counter.add(n); - value += n; + synchronized (counter) { + counter.add(n); + value += n; + } } + @Override public Number getValue() { - return value; + synchronized (counter) { + return value; + } } @@ -37,6 +44,7 @@ public class CounterWrapper implements MetricValue { public void add() { } + @Override public void add(long n) { } } diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/GaugeWrapper.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/GaugeWrapper.java index 9ef37132b14..9a05034f039 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/GaugeWrapper.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/GaugeWrapper.java @@ -3,6 +3,12 @@ package com.yahoo.vespa.hosted.dockerapi.metrics; import com.yahoo.metrics.simple.Gauge; +/** + * Forwards sample to {@link com.yahoo.metrics.simple.Gauge} to be displayed in /state/v1/metrics, + * while also saving the value so it can be accessed programatically later. + * + * @author valerijf + */ public class GaugeWrapper implements MetricValue { private final Gauge gauge; private double value; @@ -12,10 +18,13 @@ public class GaugeWrapper implements MetricValue { } public void sample(double x) { - gauge.sample(x); - this.value = x; + synchronized (gauge) { + gauge.sample(x); + this.value = x; + } } + @Override public Number getValue() { return value; } diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java index eb1cf31d8e9..16a847c962d 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java @@ -10,6 +10,8 @@ import java.util.Map; import java.util.Set; /** + * Export metrics to both /state/v1/metrics and makes them available programatically. + * * @author valerijf */ public class MetricReceiverWrapper { |