aboutsummaryrefslogtreecommitdiffstats
path: root/ethdb/leveldb
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2019-06-10 19:21:02 +0800
committerPéter Szilágyi <peterke@gmail.com>2019-06-11 14:49:13 +0800
commitb02958b9c57f35d0df085ed8e7057a52131373a3 (patch)
tree2097d29876191e20b710f323d1097d067a4a1c35 /ethdb/leveldb
parentf9c0e093ed83303aa1dff99f658120c34f29cae9 (diff)
downloadgo-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.tar
go-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.tar.gz
go-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.tar.bz2
go-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.tar.lz
go-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.tar.xz
go-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.tar.zst
go-tangerine-b02958b9c57f35d0df085ed8e7057a52131373a3.zip
core, ethdb, metrics, p2p: expose various counter metrics for grafana
Diffstat (limited to 'ethdb/leveldb')
-rw-r--r--ethdb/leveldb/leveldb.go16
1 files changed, 10 insertions, 6 deletions
diff --git a/ethdb/leveldb/leveldb.go b/ethdb/leveldb/leveldb.go
index f74e94d92..3781a6da1 100644
--- a/ethdb/leveldb/leveldb.go
+++ b/ethdb/leveldb/leveldb.go
@@ -67,6 +67,7 @@ type Database struct {
compWriteMeter metrics.Meter // Meter for measuring the data written during compaction
writeDelayNMeter metrics.Meter // Meter for measuring the write delay number due to database compaction
writeDelayMeter metrics.Meter // Meter for measuring the write delay duration due to database compaction
+ diskSizeGauge metrics.Gauge // Gauge for tracking the size of all the levels in the database
diskReadMeter metrics.Meter // Meter for measuring the effective amount of data read
diskWriteMeter metrics.Meter // Meter for measuring the effective amount of data written
@@ -112,6 +113,7 @@ func New(file string, cache int, handles int, namespace string) (*Database, erro
ldb.compTimeMeter = metrics.NewRegisteredMeter(namespace+"compact/time", nil)
ldb.compReadMeter = metrics.NewRegisteredMeter(namespace+"compact/input", nil)
ldb.compWriteMeter = metrics.NewRegisteredMeter(namespace+"compact/output", nil)
+ ldb.diskSizeGauge = metrics.NewRegisteredGauge(namespace+"disk/size", nil)
ldb.diskReadMeter = metrics.NewRegisteredMeter(namespace+"disk/read", nil)
ldb.diskWriteMeter = metrics.NewRegisteredMeter(namespace+"disk/write", nil)
ldb.writeDelayMeter = metrics.NewRegisteredMeter(namespace+"compact/writedelay/duration", nil)
@@ -233,7 +235,7 @@ func (db *Database) meter(refresh time.Duration) {
// Create the counters to store current and previous compaction values
compactions := make([][]float64, 2)
for i := 0; i < 2; i++ {
- compactions[i] = make([]float64, 3)
+ compactions[i] = make([]float64, 4)
}
// Create storage for iostats.
var iostats [2]float64
@@ -279,7 +281,7 @@ func (db *Database) meter(refresh time.Duration) {
if len(parts) != 6 {
break
}
- for idx, counter := range parts[3:] {
+ for idx, counter := range parts[2:] {
value, err := strconv.ParseFloat(strings.TrimSpace(counter), 64)
if err != nil {
db.log.Error("Compaction entry parsing failed", "err", err)
@@ -290,16 +292,18 @@ func (db *Database) meter(refresh time.Duration) {
}
}
// Update all the requested meters
+ if db.diskSizeGauge != nil {
+ db.diskSizeGauge.Update(int64(compactions[i%2][0] * 1024 * 1024))
+ }
if db.compTimeMeter != nil {
- db.compTimeMeter.Mark(int64((compactions[i%2][0] - compactions[(i-1)%2][0]) * 1000 * 1000 * 1000))
+ db.compTimeMeter.Mark(int64((compactions[i%2][1] - compactions[(i-1)%2][1]) * 1000 * 1000 * 1000))
}
if db.compReadMeter != nil {
- db.compReadMeter.Mark(int64((compactions[i%2][1] - compactions[(i-1)%2][1]) * 1024 * 1024))
+ db.compReadMeter.Mark(int64((compactions[i%2][2] - compactions[(i-1)%2][2]) * 1024 * 1024))
}
if db.compWriteMeter != nil {
- db.compWriteMeter.Mark(int64((compactions[i%2][2] - compactions[(i-1)%2][2]) * 1024 * 1024))
+ db.compWriteMeter.Mark(int64((compactions[i%2][3] - compactions[(i-1)%2][3]) * 1024 * 1024))
}
-
// Retrieve the write delay statistic
writedelay, err := db.db.GetProperty("leveldb.writedelay")
if err != nil {