From 05caad5cf9c614a530fedd09f82e6c3f10fa8a9f Mon Sep 17 00:00:00 2001 From: Gzx1999 Date: Sun, 9 Apr 2023 22:00:32 +0800 Subject: [PATCH] add gala-gopher to prometheus monitor targets after install --- gala-ops/server/httphandler/agent.go | 13 ++++++-- gala-ops/server/plugin/prometheus.go | 48 ++++++++++++++++++++++++++++ sdk/plugin/client.go | 1 + 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 gala-ops/server/plugin/prometheus.go diff --git a/gala-ops/server/httphandler/agent.go b/gala-ops/server/httphandler/agent.go index 205fa845..7d165dc4 100644 --- a/gala-ops/server/httphandler/agent.go +++ b/gala-ops/server/httphandler/agent.go @@ -6,6 +6,7 @@ import ( "github.com/gin-gonic/gin" "openeuler.org/PilotGo/gala-ops-plugin/client" + "openeuler.org/PilotGo/gala-ops-plugin/plugin" ) func InstallGopher(ctx *gin.Context) { @@ -30,9 +31,11 @@ func InstallGopher(ctx *gin.Context) { } ret := []interface{}{} + monitorTargets := []string{} for _, result := range cmdResults { d := struct { MachineUUID string + MachineIP string InstallStatus string Error string }{ @@ -44,12 +47,18 @@ func InstallGopher(ctx *gin.Context) { if result.Code != 0 { d.InstallStatus = "error" d.Error = result.Stderr + } else { + // TODO: add gala-gopher to prometheus monitor target here + // default exporter port :8888 + monitorTargets = append(monitorTargets, result.MachineIP+":8888") } - // TODO: add gala-gopher to prometheus monitor target here - ret = append(ret, d) } + err = plugin.MonitorTargets(monitorTargets) + if err != nil { + fmt.Println("error: failed to add gala-gopher to prometheus monitor targets") + } ctx.JSON(http.StatusOK, gin.H{ "code": 0, diff --git a/gala-ops/server/plugin/prometheus.go b/gala-ops/server/plugin/prometheus.go new file mode 100644 index 00000000..1215aa0b --- /dev/null +++ b/gala-ops/server/plugin/prometheus.go @@ -0,0 +1,48 @@ +package plugin + +import ( + "openeuler.org/PilotGo/gala-ops-plugin/client" +) + +// 请求prometheus插件接口,将gala-ops targets添加到监控清单当中 +func addTargets(targets []string, url string) error { + // TODO: + // jobName := "gala-gopher" + // url := url+"/api/add_targets" + + return nil +} + +func MonitorTargets(targets []string) error { + c := client.Client() + plugin, err := c.GetPluginInfo("prometheus") + if err != nil { + return err + } + + if err := addTargets(targets, plugin.Url); err != nil { + return err + } + + return nil +} + +func deleteTargets(targets []string, url string) error { + // TODO: + + return nil +} + +func DeleteTargets(targets []string) error { + c := client.Client() + plugin, err := c.GetPluginInfo("prometheus") + if err != nil { + return err + } + + if err := deleteTargets(targets, plugin.Url); err != nil { + return err + } + + return nil +} diff --git a/sdk/plugin/client.go b/sdk/plugin/client.go index 457f15d8..050b0bfa 100644 --- a/sdk/plugin/client.go +++ b/sdk/plugin/client.go @@ -75,6 +75,7 @@ func (c *Client) Serve(url ...string) { type CmdResult struct { MachineUUID string + MachineIP string Code int Stdout string Stderr string -- Gitee