@@ -22,20 +22,27 @@ import (
2222
2323 "github.com/selectdb/ccr_syncer/pkg/ccr"
2424 "github.com/selectdb/ccr_syncer/pkg/ccr/base"
25- "github.com/selectdb/ccr_syncer/pkg/rpc"
2625 "github.com/selectdb/ccr_syncer/pkg/storage"
2726 "github.com/selectdb/ccr_syncer/pkg/xerror"
2827 "github.com/selectdb/ccr_syncer/pkg/xmetrics"
2928 log "github.com/sirupsen/logrus"
3029)
3130
3231type JobCollector struct {
33- db storage.DB
34- stop chan struct {}
32+ db storage.DB
33+ hostInfo string
34+ factory * ccr.Factory
35+ stop chan struct {}
3536}
3637
37- func NewJobCollector (db storage.DB ) * JobCollector {
38- return & JobCollector {db : db , stop : make (chan struct {})}
38+ func NewJobCollector (db storage.DB , hostInfo string , factory * ccr.Factory ) * JobCollector {
39+ log .Infof ("JobCollector initialized with hostInfo: %s" , hostInfo )
40+ return & JobCollector {
41+ db : db ,
42+ hostInfo : hostInfo ,
43+ factory : factory ,
44+ stop : make (chan struct {}),
45+ }
3946}
4047
4148func (c * JobCollector ) Collect () {
@@ -59,11 +66,13 @@ func (c *JobCollector) Stop() {
5966}
6067
6168func (c * JobCollector ) updateMetrics () error {
62- jobs , err := c .db .GetJobs ( )
69+ _ , jobs , err := c .db .GetStampAndJobs ( c . hostInfo )
6370 if err != nil {
64- return xerror .Wrapf (err , xerror .Normal , "get all jobs failed" )
71+ return xerror .Wrapf (err , xerror .Normal , "get jobs by belong_to %s failed" , c . hostInfo )
6572 }
6673
74+ log .Debugf ("JobCollector fetched %d jobs for hostInfo: %s" , len (jobs ), c .hostInfo )
75+
6776 runningJobNum := 0
6877 for _ , jobName := range jobs {
6978 jobInfo , err := loadJobInfo (jobName , c .db )
@@ -84,7 +93,7 @@ func (c *JobCollector) updateMetrics() error {
8493
8594 srcSpec := & jobInfo .Src
8695 commitSeq := jobProgress .CommitSeq
87- lag , interval , err := getJobLag (srcSpec , commitSeq )
96+ lag , interval , err := c . getJobLag (srcSpec , commitSeq )
8897 if err != nil {
8998 log .Warnf ("get job %s lag failed: %+v" , jobName , err )
9099 continue
@@ -128,8 +137,8 @@ func loadJobInfo(jobName string, db storage.DB) (*ccr.Job, error) {
128137 return & job , nil
129138}
130139
131- func getJobLag (spec * base.Spec , commitSeq int64 ) (int64 , float64 , error ) {
132- feRpc , err := rpc .NewFeRpc (spec )
140+ func ( c * JobCollector ) getJobLag (spec * base.Spec , commitSeq int64 ) (int64 , float64 , error ) {
141+ feRpc , err := c . factory .NewFeRpc (spec )
133142 if err != nil {
134143 return 0 , 0 , xerror .Wrapf (err , xerror .Normal , "new fe rpc failed" )
135144 }
0 commit comments