From 832d0a388668c10df65f83a2e7a6126b8a0927db Mon Sep 17 00:00:00 2001 From: Wangjunqi123 Date: Tue, 13 Jun 2023 16:12:28 +0800 Subject: [PATCH] modify httphandler.targetslist and httphandler.cpuusagerate in galaops plugin --- gala-ops/server/httphandler/component.go | 2 ++ gala-ops/server/httphandler/metricdata.go | 26 +++++++++++------------ gala-ops/server/router/router.go | 1 + 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/gala-ops/server/httphandler/component.go b/gala-ops/server/httphandler/component.go index 6d022f96..44b4a54b 100644 --- a/gala-ops/server/httphandler/component.go +++ b/gala-ops/server/httphandler/component.go @@ -2,6 +2,7 @@ package httphandler import ( "encoding/json" + "fmt" "io" "net/http" "net/url" @@ -52,6 +53,7 @@ func (o *Opsclient) QueryMetric(endpoint string, querymethod string, param strin err = json.Unmarshal(bs, &data) if err != nil { logger.Error("unmarshal cpu usage rate error:%s", err.Error()) + return nil, fmt.Errorf("unmarshal cpu usage rate error:%s", err.Error()) } return data, nil } diff --git a/gala-ops/server/httphandler/metricdata.go b/gala-ops/server/httphandler/metricdata.go index 769209f0..02435dee 100644 --- a/gala-ops/server/httphandler/metricdata.go +++ b/gala-ops/server/httphandler/metricdata.go @@ -1,29 +1,25 @@ package httphandler import ( - "encoding/json" "fmt" "net/http" "gitee.com/openeuler/PilotGo-plugins/sdk/logger" - "gitee.com/openeuler/PilotGo-plugins/sdk/utils" "github.com/gin-gonic/gin" ) func TargetsList(ctx *gin.Context) { // 查询prometheus监控对象列表 promurl := Galaops.PromePlugin["url"].(string) - promsq := "/api/v1/query?query=up" - bs, err := utils.Request("GET", promurl+promsq) - if err != nil { - logger.Error("faild to get prometheus targets: ", err) - } - var data interface{} + param := map[string]string{ + "query": "up", + } - err = json.Unmarshal(bs, &data) + urlparam := fmt.Sprintf("?query=%v", param["query"]) + data, err := Galaops.QueryMetric(promurl, "query", urlparam) if err != nil { - logger.Error("unmarshal prometheus targets error:%s", err.Error()) + logger.Error("faild to querymetric from prometheus: ", err) } ctx.JSON(http.StatusOK, data) } @@ -31,16 +27,20 @@ func TargetsList(ctx *gin.Context) { func CPUusagerate(ctx *gin.Context) { promurl := Galaops.PromePlugin["url"].(string) start, end := Galaops.UnixTimeStartandEnd(-5) + job := ctx.Query("job") + if job == "" { + logger.Error("need job parameter in url: cpuusagerate") + ctx.JSON(http.StatusOK, "need job parameter in url: cpuusagerate") + } + param := map[string]string{ - //"query": `avg%20by(job)%20(gala_gopher_cpu_total_used_per%7Bjob%3D~%22192.168.75.132%22%7D)`, - "query": `avg by(job) (gala_gopher_cpu_total_used_per{job=~"192.168.75.132"})`, + "query": fmt.Sprintf("avg by(job) (gala_gopher_cpu_total_used_per{job=~\"%s\"})", job), "start": fmt.Sprint(start), "end": fmt.Sprint(end), "step": "15s", } urlparam := fmt.Sprintf("?query=%v&start=%v&end=%v&step=%v", param["query"], param["start"], param["end"], param["step"]) - logger.Debug(urlparam) data, err := Galaops.QueryMetric(promurl, "query_range", urlparam) if err != nil { logger.Error("faild to querymetric from prometheus: ", err) diff --git a/gala-ops/server/router/router.go b/gala-ops/server/router/router.go index f3ef24b0..d3429737 100644 --- a/gala-ops/server/router/router.go +++ b/gala-ops/server/router/router.go @@ -19,6 +19,7 @@ func InitRouter(router *gin.Engine) { metrics := router.Group("plugin/gala-ops/api/metrics") { + // url?job=prometheusHOST metrics.GET("/targets_list", httphandler.TargetsList) metrics.GET("/cpu_usage_rate", httphandler.CPUusagerate) } -- Gitee