123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- package service
- import (
- "bytes"
- "context"
- "encoding/json"
- "fmt"
- "go-common/app/admin/main/apm/conf"
- "go-common/app/admin/main/apm/model/databus"
- "go-common/library/ecode"
- "go-common/library/log"
- "net/http"
- )
- //Alarm ...
- // func (s *Service) Alarm(c context.Context, group, action string) (result *databus.AlarmOpen, err error) {
- // url := conf.Conf.Alarm.DatabusURL
- // var jsonBytes []byte
- // body := &struct {
- // Action string `json:"Action"`
- // PublicKey string `json:"PublicKey"`
- // Signature int8 `json:"Signature"`
- // Group string `json:"Group"`
- // }{
- // Action: action,
- // PublicKey: conf.Conf.Alarm.DatabusKey,
- // Signature: 1,
- // Group: group,
- // }
- // if jsonBytes, err = json.Marshal(body); err != nil {
- // log.Error("json.Marshal(body) error(%v)", err)
- // return
- // }
- // req, err := http.NewRequest("POST", url, strings.NewReader(string(jsonBytes)))
- // if err != nil {
- // err = ecode.RequestErr
- // return
- // }
- // req.Header.Set("Content-Type", "application/json")
- // // req.Header.Set("Cookie", cookie)
- // result = &databus.AlarmOpen{}
- // if err = s.client.Do(c, req, result); err != nil {
- // fmt.Printf("result=(%v) error=(%v)", result, err)
- // log.Error("Alarm() error(%v)", err)
- // err = ecode.RequestErr
- // return
- // }
- // return
- // }
- //Opsmind ...
- func (s *Service) Opsmind(c context.Context, project, group, action, Owners string, percentage, fortime int64, silence bool) (result *databus.Res, err error) {
- var scopes []databus.Scope
- scopes = append(scopes, databus.Scope{Type: 0, Key: "group", Val: []string{group}})
- var owner databus.Owner
- owner.Owner = Owners
- owner.App = project
- url := conf.Conf.Alarm.DatabusURL
- body := &struct {
- Action string `json:"Action"`
- PublicKey string `json:"PublicKey"`
- Signature int8 `json:"Signature"`
- PolicyID string `json:"PolicyId"`
- CateGory string `json:"CateGory"`
- Silence bool `json:"Silence"`
- Scope []databus.Scope `json:"Scope"`
- TriggerName string `json:"TriggerName"`
- TriggerOperator string `json:"TriggerOperator"`
- TriggerLevel string `json:"TriggerLevel"`
- TriggerThreshold int64 `json:"TriggerThreshold"`
- TriggerFor int64 `json:"TriggerFor"`
- TriggerNoDataFor int64 `json:"TriggerNoDataFor"`
- TriggerNotes databus.Owner `json:"TriggerNotes"`
- }{
- Action: action,
- PublicKey: conf.Conf.Alarm.DatabusKey,
- Signature: 1,
- PolicyID: "3mwipx2caggxc",
- CateGory: "Databus",
- Silence: silence,
- Scope: scopes,
- TriggerName: fmt.Sprintf("%s消费落后告警", group),
- TriggerOperator: "<",
- TriggerLevel: "P3",
- TriggerThreshold: percentage,
- TriggerFor: fortime,
- TriggerNoDataFor: 300,
- TriggerNotes: owner,
- }
- // json.NewEncoder(os.Stdout).Encode(body)
- buf := &bytes.Buffer{}
- err = json.NewEncoder(buf).Encode(body)
- if err != nil {
- log.Error("json.Marshal(body) error(%v)", err)
- return
- }
- req, err := http.NewRequest("POST", url, buf)
- if err != nil {
- err = ecode.RequestErr
- return
- }
- req.Header.Set("Content-Type", "application/json")
- // req.Header.Set("Cookie", cookie)
- result = &databus.Res{}
- if err = s.client.Do(c, req, result); err != nil {
- log.Error("Alarm() error(%v)", err)
- err = ecode.RequestErr
- return
- }
- return
- }
- // OpsmindRemove ...
- func (s *Service) OpsmindRemove(c context.Context, adjustid, action string) (result *databus.Res, err error) {
- url := conf.Conf.Alarm.DatabusURL
- body := &struct {
- Action string `json:"Action"`
- PublicKey string `json:"PublicKey"`
- Signature int8 `json:"Signature"`
- PolicyID string `json:"PolicyId"`
- AdjustID string `json:"AdjustId"`
- }{
- Action: action,
- PublicKey: conf.Conf.Alarm.DatabusKey,
- Signature: 1,
- PolicyID: "3mwipx2caggxc",
- AdjustID: adjustid,
- }
- // json.NewEncoder(os.Stdout).Encode(body)
- buf := &bytes.Buffer{}
- err = json.NewEncoder(buf).Encode(body)
- if err != nil {
- log.Error("json.Marshal(body) error(%v)", err)
- return
- }
- req, err := http.NewRequest("POST", url, buf)
- if err != nil {
- err = ecode.RequestErr
- return
- }
- req.Header.Set("Content-Type", "application/json")
- // req.Header.Set("Cookie", cookie)
- result = &databus.Res{}
- if err = s.client.Do(c, req, result); err != nil {
- log.Error("Alarm() error(%v)", err)
- err = ecode.RequestErr
- return
- }
- return
- }
- //OpsmindQuery ...
- func (s *Service) OpsmindQuery(c context.Context, group, action string) (result *databus.ResQuery, err error) {
- var query []databus.Query
- query = append(query, databus.Query{Key: "group", Val: []string{group}})
- url := conf.Conf.Alarm.DatabusURL
- body := &struct {
- Action string `json:"Action"`
- PublicKey string `json:"PublicKey"`
- Signature int8 `json:"Signature"`
- Query []databus.Query `json:"Query"`
- }{
- Action: action,
- PublicKey: conf.Conf.Alarm.DatabusKey,
- Signature: 1,
- Query: query,
- }
- // json.NewEncoder(os.Stdout).Encode(body)
- buf := &bytes.Buffer{}
- err = json.NewEncoder(buf).Encode(body)
- if err != nil {
- log.Error("json.Marshal(body) error(%v)", err)
- return
- }
- req, err := http.NewRequest("POST", url, buf)
- if err != nil {
- err = ecode.RequestErr
- return
- }
- req.Header.Set("Content-Type", "application/json")
- // req.Header.Set("Cookie", cookie)
- result = &databus.ResQuery{}
- if err = s.client.Do(c, req, result); err != nil {
- log.Error("Alarm() error(%v)", err)
- err = ecode.RequestErr
- }
- return
- }
|