如何使用 client_golang 将指标推送到 prometheus?

我还没有找到一些在 prometheus 中使用 Gauge、Counter 和 Histogram 的好例子。对此有任何帮助。我尝试使用文档,但无法成功创建工作应用程序。


偶然的你
浏览 489回答 3
3回答

慕尼黑的夜晚无繁华

您可以从prometheus/client_golang中找到示例。为了让你开始,你可以得到包:$ go get github.com/prometheus/client_golang/prometheus$ go get github.com/prometheus/client_golang/prometheus/push您可以通过设置正确的推送网关地址来运行以下示例,在此示例中为http://localhost:9091/ :package mainimport (        "fmt"        "github.com/prometheus/client_golang/prometheus"        "github.com/prometheus/client_golang/prometheus/push")func ExamplePusher_Push() {        completionTime := prometheus.NewGauge(prometheus.GaugeOpts{                Name: "db_backup_last_completion_timestamp_seconds",                Help: "The timestamp of the last successful completion of a DB backup.",        })        completionTime.SetToCurrentTime()        if err := push.New("http://localhost:9091/", "db_backup").                Collector(completionTime).                Grouping("db", "customers").                Push(); err != nil {                fmt.Println("Could not push completion time to Pushgateway:", err)        }}func main() {        ExamplePusher_Push()}运行你的脚本:$ go run pushExample.go运行代码后,您应该会在网关 ( http://localhost:9091/ ) 上看到指标。界面如下所示:

守候你守候我

我找到了这个`package mainimport (    "net/http"    "github.com/prometheus/client_golang/prometheus")var (cpuTemp = prometheus.NewGauge(prometheus.GaugeOpts{    Name: "cpu_temperature_celsius",    Help: "Current temperature of the CPU.", })hdFailures = prometheus.NewCounter(prometheus.CounterOpts{    Name: "hd_errors_total",    Help: "Number of hard-disk errors.",}))func init() {    prometheus.MustRegister(cpuTemp)    prometheus.MustRegister(hdFailures)}func main() {    cpuTemp.Set(65.3)    hdFailures.Inc()    http.Handle("/metrics", prometheus.Handler())    http.ListenAndServe(":8080", nil)}`这可能对某些人有用。

撒科打诨

Prometheus 是一个基于拉的系统,如果你想要基于推送的监控,你需要使用某种网关。一个最小的例子(实际上没有做任何有用的事情,比如启动一个 HTTP 监听器,或者实际上对一个指标做任何事情)如下:import (        "github.com/prometheus/client_golang/prometheus"        "net/http")var responseMetric = prometheus.NewHistogram(        prometheus.HistogramOpts{                Name: "request_duration_milliseconds",                Help: "Request latency distribution",                Buckets: prometheus.ExponentialBuckets(10.0, 1.13, 40),        })func main() {        prometheus.MustRegister(responseMetric)        http.Handle("/metrics", prometheus.Handler())        // Any other setup, then an http.ListenAndServe here}然后,您需要配置 Prometheus 以抓取/metrics您的二进制文件提供的页面。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go