aboutsummaryrefslogtreecommitdiffstats
path: root/node/api.go
diff options
context:
space:
mode:
authorAnton Evangelatov <anton.evangelatov@gmail.com>2018-06-04 18:05:16 +0800
committerPéter Szilágyi <peterke@gmail.com>2018-06-04 18:05:16 +0800
commitbe2aec092d9c24c24b8d22d684ed0d11653c3cfc (patch)
tree74db6c965c6c0d8c235b92710bdacc8fb95ba309 /node/api.go
parent143c4341d8a2231deade6d7341c668d609bd3486 (diff)
downloaddexon-be2aec092d9c24c24b8d22d684ed0d11653c3cfc.tar.gz
dexon-be2aec092d9c24c24b8d22d684ed0d11653c3cfc.tar.zst
dexon-be2aec092d9c24c24b8d22d684ed0d11653c3cfc.zip
metrics: expvar support for ResettingTimer (#16878)
* metrics: expvar support for ResettingTimer * metrics: use integers for percentiles; remove Overall * metrics: fix edge-case panic for index-out-of-range
Diffstat (limited to 'node/api.go')
-rw-r--r--node/api.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/node/api.go b/node/api.go
index da9da5bd7..989d3884a 100644
--- a/node/api.go
+++ b/node/api.go
@@ -338,6 +338,21 @@ func (api *PublicDebugAPI) Metrics(raw bool) (map[string]interface{}, error) {
},
}
+ case metrics.ResettingTimer:
+ t := metric.Snapshot()
+ ps := t.Percentiles([]float64{5, 20, 50, 80, 95})
+ root[name] = map[string]interface{}{
+ "Measurements": len(t.Values()),
+ "Mean": time.Duration(t.Mean()).String(),
+ "Percentiles": map[string]interface{}{
+ "5": time.Duration(ps[0]).String(),
+ "20": time.Duration(ps[1]).String(),
+ "50": time.Duration(ps[2]).String(),
+ "80": time.Duration(ps[3]).String(),
+ "95": time.Duration(ps[4]).String(),
+ },
+ }
+
default:
root[name] = "Unknown metric type"
}
@@ -373,6 +388,21 @@ func (api *PublicDebugAPI) Metrics(raw bool) (map[string]interface{}, error) {
},
}
+ case metrics.ResettingTimer:
+ t := metric.Snapshot()
+ ps := t.Percentiles([]float64{5, 20, 50, 80, 95})
+ root[name] = map[string]interface{}{
+ "Measurements": len(t.Values()),
+ "Mean": time.Duration(t.Mean()).String(),
+ "Percentiles": map[string]interface{}{
+ "5": time.Duration(ps[0]).String(),
+ "20": time.Duration(ps[1]).String(),
+ "50": time.Duration(ps[2]).String(),
+ "80": time.Duration(ps[3]).String(),
+ "95": time.Duration(ps[4]).String(),
+ },
+ }
+
default:
root[name] = "Unknown metric type"
}