diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2019-03-22 09:42:20 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2019-03-22 09:53:17 +0000 |
commit | abc99963fd90d526ee08e86cf5e1e26283e2871e (patch) | |
tree | ab20dc74b7f3b49d08458895fd5c5cdde4aede75 /staging_vespalib/src | |
parent | a05b9e83ee198a2dda97806eb388ab515b7094c1 (diff) |
add "sum" output for gauge metrics
Diffstat (limited to 'staging_vespalib/src')
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; } |