prometheus

package main

import (
"log"
"net/http"

"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
)

var (
cpuTemp = prometheus.NewGauge(prometheus.GaugeOpts{
Name: "cpu_temperature_celsius",
Help: "Current temperature of the CPU.",
})
hdFailures = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "hd_errors_total",
Help: "Number of hard-disk errors.",
},
[]string{"device"},
)
)

func init() {
// Metrics have to be registered to be exposed:
prometheus.Register(cpuTemp)
prometheus.MustRegister(hdFailures)
}

func main() {
cpuTemp.Set(65.3)
hdFailures.With(prometheus.Labels{"device": "/dev/sda"}).Inc()

// The Handler function provides a default handler to expose metrics
// via an HTTP server. "/metrics" is the usual endpoint for that.
http.Handle("/metrics", promhttp.Handler())
log.Fatal(http.ListenAndServe(":8888", nil))
}
posted @ 2021-07-29 17:27  zJanly  阅读(55)  评论(0)    收藏  举报