From 135d458bb760c4ae6c4393676151d82201844cf2 Mon Sep 17 00:00:00 2001 From: forcodedancing Date: Wed, 23 Feb 2022 16:46:11 +0800 Subject: [PATCH] add metrics --- core/blockchain.go | 1 + miner/worker.go | 1 + perf/main_process.go | 8 ++++++++ 3 files changed, 10 insertions(+) diff --git a/core/blockchain.go b/core/blockchain.go index 89a93a1e27..a5fe6d6056 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -1912,6 +1912,7 @@ func (bc *BlockChain) InsertChain(chain types.Blocks) (int, error) { start := time.Now() n, err := bc.insertChain(chain, true) perf.RecordMPMetrics(perf.MpImportingTotal, start) + perf.RecordMPMetrics(perf.MpImportingTotalAll, start) bc.chainmu.Unlock() bc.wg.Done() diff --git a/miner/worker.go b/miner/worker.go index 2dacea7664..3a28f6e93b 100644 --- a/miner/worker.go +++ b/miner/worker.go @@ -468,6 +468,7 @@ func (w *worker) mainLoop() { start := time.Now() w.commitNewWork(req.interrupt, req.noempty, req.timestamp) perf.RecordMPMetrics(perf.MpMiningTotal, start) + perf.RecordMPMetrics(perf.MpMiningTotalAll, start) case ev := <-w.chainSideCh: // Short circuit for duplicate side blocks diff --git a/perf/main_process.go b/perf/main_process.go index 43e00a83c9..2b459df6be 100644 --- a/perf/main_process.go +++ b/perf/main_process.go @@ -9,6 +9,7 @@ import ( type MpMetricsName string const ( + MpMiningTotalAll MpMetricsName = "MP_MINING_TOTAL_ALL" MpMiningTotal MpMetricsName = "MP_MINING_TOTAL" MpMiningPrepare MpMetricsName = "MP_MINING_PREPARE" MpMiningOrder MpMetricsName = "MP_MINING_ORDER" @@ -18,6 +19,7 @@ const ( MpMiningFinalize MpMetricsName = "MP_MINING_FINALIZE" MpMiningWrite MpMetricsName = "MP_MINING_WRITE" + MpImportingTotalAll MpMetricsName = "MP_IMPORTING_TOTAL_ALL" MpImportingTotal MpMetricsName = "MP_IMPORTING_TOTAL" MpImportingVerifyHeader MpMetricsName = "MP_IMPORTING_VERIFY_HEADER" MpImportingVerifyState MpMetricsName = "MP_IMPORTING_VERIFY_STATE" @@ -36,6 +38,7 @@ var mpMetricsEnabled, _ = getEnvBool("METRICS_MP_METRICS_ENABLED") var ( //block mining related metrics + miningTotalAllCounter = metrics.NewRegisteredCounter("mp/mining/total/all", nil) miningTotalTimer = metrics.NewRegisteredTimer("mp/mining/total", nil) miningPrepareTimer = metrics.NewRegisteredTimer("mp/mining/prepare", nil) miningOrderTimer = metrics.NewRegisteredTimer("mp/mining/order", nil) @@ -46,6 +49,7 @@ var ( miningWriteTimer = metrics.NewRegisteredTimer("mp/mining/write", nil) //block importing related metrics + importingTotalAllCounter = metrics.NewRegisteredCounter("mp/importing/total/all", nil) importingTotalTimer = metrics.NewRegisteredTimer("mp/importing/total", nil) importingVerifyHeaderTimer = metrics.NewRegisteredTimer("mp/importing/verify/header", nil) importingVerifyStateTimer = metrics.NewRegisteredTimer("mp/importing/verify/state", nil) @@ -69,6 +73,8 @@ func RecordMPMetrics(metricsName MpMetricsName, start time.Time) { } switch metricsName { + case MpMiningTotalAll: + miningTotalAllCounter.Inc(time.Since(start).Nanoseconds()) case MpMiningTotal: recordTimer(miningTotalTimer, start) case MpMiningPrepare: @@ -86,6 +92,8 @@ func RecordMPMetrics(metricsName MpMetricsName, start time.Time) { case MpMiningWrite: recordTimer(miningWriteTimer, start) + case MpImportingTotalAll: + importingTotalAllCounter.Inc(time.Since(start).Nanoseconds()) case MpImportingTotal: recordTimer(importingTotalTimer, start) case MpImportingVerifyHeader: