summaryrefslogtreecommitdiffstats
path: root/docker-api
diff options
context:
space:
mode:
authorvalerijf <valerijf@yahoo-inc.com>2016-09-28 15:03:18 +0200
committervalerijf <valerijf@yahoo-inc.com>2016-09-29 09:45:47 +0200
commitd41a9c1af113fc576efff82aa90def1ecd5073b1 (patch)
tree7027221b4a315e3e3139582281d54d6724facd09 /docker-api
parent62e926df7972b24f673a896208b03dc07bf5053e (diff)
Added intent and synchronized counter + gauge
Diffstat (limited to 'docker-api')
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/CounterWrapper.java18
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/GaugeWrapper.java13
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java2
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 {