add m3db client timeout check (#693)

This commit is contained in:
yubo 2021-05-31 15:35:00 +08:00 committed by GitHub
parent bbbd7faeb1
commit 37abf19f0d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 6 deletions

View File

@ -1,7 +1,9 @@
package backend
import (
"log"
"context"
"fmt"
"time"
"github.com/didi/nightingale/v4/src/modules/server/backend/influxdb"
"github.com/didi/nightingale/v4/src/modules/server/backend/m3db"
@ -29,7 +31,7 @@ var (
m3dbDataSource *m3db.Client
)
func Init(cfg BackendSection) {
func Init(cfg BackendSection) error {
defaultDataSource = cfg.DataSource
StraPath = cfg.StraPath
@ -77,10 +79,26 @@ func Init(cfg BackendSection) {
// init m3db
if cfg.M3db.Enabled {
var err error
m3dbDataSource, err = m3db.NewClient(cfg.M3db)
d := time.Now().Add(time.Second * 5)
ctx, cancel := context.WithDeadline(context.Background(), d)
go func() {
m3dbDataSource, err = m3db.NewClient(cfg.M3db)
if err != nil {
err = fmt.Errorf("unable to new m3db client: %v", err)
}
RegisterDataSource(cfg.M3db.Name, m3dbDataSource)
cancel()
}()
<-ctx.Done()
if err != nil {
log.Fatalf("unable to new m3db client: %v", err)
return err
}
if err := ctx.Err(); err != nil && err != context.Canceled {
return fmt.Errorf("new m3db client err: %s", err)
}
RegisterDataSource(cfg.M3db.Name, m3dbDataSource)
}
return nil
}

View File

@ -122,7 +122,9 @@ func main() {
}
aggr.Init(conf.Transfer.Aggr)
backend.Init(conf.Transfer.Backend)
if err := backend.Init(conf.Transfer.Backend); err != nil {
log.Fatalf("backend fail: %v", err)
}
// init judge
go judge.InitJudge(conf.Judge.Backend, config.Ident)