diff --git a/center/router/router_proxy.go b/center/router/router_proxy.go index 2ec009f3623018b920be44027d5218ac74ef1434..ab4b60425aa2754f513abc5eae53e08382e1443d 100644 --- a/center/router/router_proxy.go +++ b/center/router/router_proxy.go @@ -15,6 +15,7 @@ import ( "github.com/gin-gonic/gin" "github.com/prometheus/common/model" "github.com/toolkits/pkg/ginx" + "github.com/toolkits/pkg/logger" ) type queryFormItem struct { @@ -32,10 +33,14 @@ type batchQueryForm struct { func (rt *Router) promBatchQueryRange(c *gin.Context) { var f batchQueryForm ginx.Dangerous(c.BindJSON(&f)) + var lst []model.Value cli := rt.PromClients.GetCli(f.DatasourceId) - - var lst []model.Value + if cli == nil { + logger.Warningf("no such datasource id: %d", f.DatasourceId) + ginx.NewRender(c).Data(lst, nil) + return + } for _, item := range f.Queries { r := pkgprom.Range{ @@ -67,10 +72,15 @@ func (rt *Router) promBatchQueryInstant(c *gin.Context) { var f batchInstantForm ginx.Dangerous(c.BindJSON(&f)) - cli := rt.PromClients.GetCli(f.DatasourceId) - var lst []model.Value + cli := rt.PromClients.GetCli(f.DatasourceId) + if cli == nil { + logger.Warningf("no such datasource id: %d", f.DatasourceId) + ginx.NewRender(c).Data(lst, nil) + return + } + for _, item := range f.Queries { resp, _, err := cli.Query(context.Background(), item.Query, time.Unix(item.Time, 0)) ginx.Dangerous(err)