使用github上的一個庫
1.安裝庫
go get github.com/prometheus/client_golang
2.導入
在import中導入,記得要在go.mod中更新一下
------------------------------------------------------------------------------------
Address: "http://xx.xx.xx:9090", 用你的prometheus的地址
result, warnings, err := v1api.Query(ctx, "node_cpu_info{instance=\"computer1\"}", time.Now(), proV1.WithTimeout(15*time.Second)) 這邊的用你的PROMQL查詢語句
可以參考https://prometheus.io/docs/prometheus/latest/querying/api/
package mainimport ("context""fmt""time""github.com/prometheus/client_golang/api"proV1 "github.com/prometheus/client_golang/api/prometheus/v1""github.com/prometheus/common/model"
)var Client api.Clientfunc init() {Client, _ = CreatClient()
}func CreatClient() (client api.Client, err error) {client, err = api.NewClient(api.Config{Address: "http://xx.xx.xx:9090",})if err != nil {fmt.Printf("Error creating client: %v\n", err)return nil, err}return client, nil
}func Query() (result model.Value, err error) {v1api := proV1.NewAPI(Client)ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)defer cancel()result, warnings, err := v1api.Query(ctx, "node_cpu_info{instance=\"computer1\"}", time.Now(), proV1.WithTimeout(15*time.Second))if err != nil {return nil, err}if len(warnings) > 0 {fmt.Printf("Warnings: %v\n", warnings)}return result, nil
}func main() {result, err := Label()if err != nil {fmt.Errorf("%q", err)}fmt.Printf("Result:\n%v\n", result)
}