bilibili-backup/app/admin/main/apm/dao/pprof.go

43 lines
1.0 KiB
Go
Raw Permalink Normal View History

2019-04-22 10:59:20 +08:00
package dao
import (
"context"
"fmt"
"net/http"
"net/url"
"go-common/app/admin/main/apm/model/pprof"
"go-common/library/conf/env"
"go-common/library/log"
)
// Instances get instances
func (d *Dao) Instances(c context.Context, appName string) (ins *pprof.Ins, err error) {
var (
req *http.Request
uri = d.c.Host.SVENCo + "/x/admin/apm/noauth/discovery/fetch"
ret = &pprof.Response{}
params = url.Values{}
)
params.Add("zone", env.Zone)
params.Add("env", env.DeployEnv)
params.Add("region", env.Region)
params.Add("appid", appName)
params.Add("status", "3")
if req, err = d.client.NewRequest(http.MethodGet, uri, "", params); err != nil {
log.Error("d.Instances http.NewRequest error(%v)", err)
return
}
if err = d.client.Do(c, req, ret); err != nil {
log.Error("d.Instances client Do error(%v)", err)
return
}
if ret.Code != 0 {
err = fmt.Errorf("%s params(%s) response return_code(%d)", uri, params.Encode(), ret.Code)
log.Error("d.Instance error(%v)", err)
return
}
ins = ret.Data
return
}