diff --git a/br/pkg/lightning/lightning.go b/br/pkg/lightning/lightning.go index 3770f7c8f07a4..af198f4fdea58 100644 --- a/br/pkg/lightning/lightning.go +++ b/br/pkg/lightning/lightning.go @@ -77,6 +77,7 @@ type Lightning struct { promFactory promutil.Factory promRegistry promutil.Registry + metrics *metric.Metrics cancelLock sync.Mutex curTask *config.Config @@ -388,6 +389,7 @@ func (l *Lightning) run(taskCtx context.Context, taskCfg *config.Config, o *opti defer func() { metrics.UnregisterFrom(o.promRegistry) }() + l.metrics = metrics ctx := metric.NewContext(taskCtx, metrics) ctx = log.NewContext(ctx, o.logger) @@ -544,6 +546,12 @@ func (l *Lightning) Status() (finished int64, total int64) { return } +// Metrics returns the metrics of lightning. +// it's inited during `run`, so might return nil. +func (l *Lightning) Metrics() *metric.Metrics { + return l.metrics +} + func writeJSONError(w http.ResponseWriter, code int, prefix string, err error) { type errorResponse struct { Error string `json:"error"`