From 41de47cb2aa2702316ebcf3039ae8fbfebacc03a Mon Sep 17 00:00:00 2001 From: XuWentao <30992981+wentaoxu@users.noreply.github.com> Date: Thu, 25 Jan 2018 14:55:06 +0800 Subject: [PATCH] add metrics for gc failure count (#5694) --- store/tikv/gcworker/gc_worker.go | 3 +++ store/tikv/gcworker/misc.go | 12 ++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/store/tikv/gcworker/gc_worker.go b/store/tikv/gcworker/gc_worker.go index 284eed9503..fc98ca8935 100644 --- a/store/tikv/gcworker/gc_worker.go +++ b/store/tikv/gcworker/gc_worker.go @@ -304,16 +304,19 @@ func (w *GCWorker) runGCJob(ctx goctx.Context, safePoint uint64) { gcWorkerCounter.WithLabelValues("run_job").Inc() err := resolveLocks(ctx, w.store, safePoint, w.uuid) if err != nil { + gcFailureCounter.WithLabelValues("resolve_lock").Inc() w.done <- errors.Trace(err) return } err = w.deleteRanges(ctx, safePoint) if err != nil { + gcFailureCounter.WithLabelValues("delete_range").Inc() w.done <- errors.Trace(err) return } err = doGC(ctx, w.store, safePoint, w.uuid) if err != nil { + gcFailureCounter.WithLabelValues("gc").Inc() log.Error("do GC returns an error", err) w.gcIsRunning = false w.done <- errors.Trace(err) diff --git a/store/tikv/gcworker/misc.go b/store/tikv/gcworker/misc.go index 0cb0074a7d..089a52a532 100644 --- a/store/tikv/gcworker/misc.go +++ b/store/tikv/gcworker/misc.go @@ -41,12 +41,20 @@ var ( Subsystem: "tikvclient", Name: "gc_config", Help: "Gauge of GC configs.", - }, []string{"type"}, - ) + }, []string{"type"}) + + gcFailureCounter = prometheus.NewCounterVec( + prometheus.CounterOpts{ + Namespace: "tidb", + Subsystem: "tikvclient", + Name: "gc_failure", + Help: "Counter of gc job failure.", + }, []string{"type"}) ) func init() { prometheus.MustRegister(gcWorkerCounter) prometheus.MustRegister(gcConfigGauge) prometheus.MustRegister(gcHistogram) + prometheus.MustRegister(gcFailureCounter) }