package main //自己动手编写一个Exporter //一般来说,绝大多数Exporter都是基于Go语言编写的,一小部分是基于Python语言编写的,还有很小一部分是使用Java语言编写的。比如官方提供的Consul Metrics自定义采集器Exporter,如果是在Go语言的运行环境下,需要按照如下所示代码运行这个Exporter。 import ( "log" "net/http" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" ) var ( cpuTemp = prometheus.NewGauge(prometheus.GaugeOpts{ Namespace: "our_idc", Subsystem: "k8s", Name: "cpu_temperature_celsius", Help: "Current temperature of the CPU.", }) hdFailures = prometheus.NewCounterVec( prometheus.CounterOpts{ Namespace: "our_idc", Subsystem: "k8s", Name: "hd_errors_total", Help: "Number of hard-disk errors.", }, []string{"device"}, ) ) func init() { // Metrics have to be registered to be exposed: prometheus.MustRegister(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(":9105", nil)) }