summaryrefslogtreecommitdiffstats
path: root/staging_vespalib
diff options
context:
space:
mode:
authorArne H Juul <arnej27959@users.noreply.github.com>2019-03-28 15:39:56 +0100
committerGitHub <noreply@github.com>2019-03-28 15:39:56 +0100
commit9e0bae2da081fb9642bf1847b96a848d7756290b (patch)
tree9a0fbaf7d68ead013e70e947cb1b2e529a0ffcb7 /staging_vespalib
parente69fd0c6308e5d69f7280a222e5ea94f78cbf724 (diff)
parentabc99963fd90d526ee08e86cf5e1e26283e2871e (diff)
Merge pull request #8877 from vespa-engine/arnej/add-sum-for-gauge-metrics
add "sum" output for gauge metrics
Diffstat (limited to 'staging_vespalib')
-rw-r--r--staging_vespalib/src/tests/metrics/simple_metrics_test.cpp9
-rw-r--r--staging_vespalib/src/vespa/vespalib/metrics/json_formatter.cpp1
-rw-r--r--staging_vespalib/src/vespa/vespalib/metrics/snapshots.h3
3 files changed, 10 insertions, 3 deletions
diff --git a/staging_vespalib/src/tests/metrics/simple_metrics_test.cpp b/staging_vespalib/src/tests/metrics/simple_metrics_test.cpp
index 03ed9dc2cf7..f9f0d5e49dd 100644
--- a/staging_vespalib/src/tests/metrics/simple_metrics_test.cpp
+++ b/staging_vespalib/src/tests/metrics/simple_metrics_test.cpp
@@ -84,6 +84,9 @@ fprintf(stderr, "bad json a:\n>>>%s\n<<<\n", a.c_str());
fprintf(stderr, "bad json b\n");
return false;
}
+ if (!(slimeA == slimeB)) {
+fprintf(stderr, "compares unequal:\n[A]\n%s\n[B]\n%s\n", a.c_str(), b.c_str());
+ }
return slimeA == slimeB;
}
@@ -99,15 +102,15 @@ void check_json(const vespalib::string &actual)
" values: { count: 4, rate: 1.14286 }"
" }, {"
" name: 'bar',"
- " values: { count: 4, rate: 1.14286, average: 42, min: 41, max: 43, last: 42 }"
+ " values: { count: 4, rate: 1.14286, average: 42, sum: 168, min: 41, max: 43, last: 42 }"
" }, {"
" name: 'bar',"
" dimensions: { chain: 'vespa', documenttype: 'blogpost', thread: '1' },"
- " values: { count: 1, rate: 0.285714, average: 14, min: 14, max: 14, last: 14 }"
+ " values: { count: 1, rate: 0.285714, average: 14, sum: 14, min: 14, max: 14, last: 14 }"
" }, {"
" name: 'bar',"
" dimensions: { chain: 'vespa', documenttype: 'blogpost', thread: '2' },"
- " values: { count: 1, rate: 0.285714, average: 11, min: 11, max: 11, last: 11 }"
+ " values: { count: 1, rate: 0.285714, average: 11, sum: 11, min: 11, max: 11, last: 11 }"
" } ]"
"}";
EXPECT_TRUE(compare_json(expect, actual));
diff --git a/staging_vespalib/src/vespa/vespalib/metrics/json_formatter.cpp b/staging_vespalib/src/vespa/vespalib/metrics/json_formatter.cpp
index 280211bd780..11c4a9d34b2 100644
--- a/staging_vespalib/src/vespa/vespalib/metrics/json_formatter.cpp
+++ b/staging_vespalib/src/vespa/vespalib/metrics/json_formatter.cpp
@@ -52,6 +52,7 @@ JsonFormatter::handle(const GaugeSnapshot &snapshot, vespalib::slime::Cursor &ta
handle(snapshot.point(), target);
Cursor& inner = target.setObject("values");
inner.setDouble("average", snapshot.averageValue());
+ inner.setDouble("sum", snapshot.sumValue());
inner.setDouble("min", snapshot.minValue());
inner.setDouble("max", snapshot.maxValue());
inner.setDouble("last", snapshot.lastValue());
diff --git a/staging_vespalib/src/vespa/vespalib/metrics/snapshots.h b/staging_vespalib/src/vespa/vespalib/metrics/snapshots.h
index 0e9915cfb6d..ee5fc942e65 100644
--- a/staging_vespalib/src/vespa/vespalib/metrics/snapshots.h
+++ b/staging_vespalib/src/vespa/vespalib/metrics/snapshots.h
@@ -48,6 +48,7 @@ private:
const PointSnapshot &_point;
const size_t _observedCount;
const double _averageValue;
+ const double _sumValue;
const double _minValue;
const double _maxValue;
const double _lastValue;
@@ -57,6 +58,7 @@ public:
_point(p),
_observedCount(c.observedCount),
_averageValue(c.sumValue / (c.observedCount > 0 ? c.observedCount : 1)),
+ _sumValue(c.sumValue),
_minValue(c.minValue),
_maxValue(c.maxValue),
_lastValue(c.lastValue)
@@ -66,6 +68,7 @@ public:
const PointSnapshot &point() const { return _point; }
size_t observedCount() const { return _observedCount; }
double averageValue() const { return _averageValue; }
+ double sumValue() const { return _sumValue; }
double minValue() const { return _minValue; }
double maxValue() const { return _maxValue; }
double lastValue() const { return _lastValue; }