Multiple Endpoints for Prometheus in Go
我目前正在编写一个由 Prometheus 监控的用
现在程序应该服务于两个端点
当 Prometheus 在
对于我创建的第一部分,例如通过
的计数器
1 2 3 4 5 6 | requestCount := kitprometheus.NewCounterFrom(stdprometheus.CounterOpts{ Namespace:"SERVICE", Subsystem:"service_metrics", Name: "request_count", Help: "Number of requests received.", }, fieldKeys) |
并通过以下方式提供这些东西:
1 2 | http.Handle("/metrics", promhttp.Handler()) http.ListenAndServe(":8090", nil) |
对于
更新不同的 Gauge
-
我如何在不同的端点上公开最后一个仪表而不
启动另一台服务器(不同的端口)? -
我是否必须创建自己的收集器(我没有自定义指标,所以
无权利?)?
您可以使用
将其公开给您想要的某个端点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | var ( // custom collector reg = prometheus.NewRegistry() // some metrics myGauge = prometheus.NewGaugeVec( prometheus.GaugeOpts{ Name:"gauge_name", Help:"guage_help", }, []string{"l"}, ) ) func init() { // register metrics to my collector reg.MustRegister(myGauge) } func main() { // instrument myGauge.WithLabelValues("l").Set(123) // expose endpoint http.Handle("/service", promhttp.HandlerFor(reg, promhttp.HandlerOpts{})) } |