我目前正在编写一个Go (golang)
由 Prometheus 监控的程序。
现在程序应该服务于两个端点/metrics
和/service
. 当 Prometheus 在 上抓取时/metrics
,它应该公开它自己的指标(例如发出的请求、请求延迟……),当在 上抓取时/service
,它应该查询 API,从那里获取指标并将它们公开给 Prometheus。
对于第一部分,我创建了一个例如 Counter via
requestCount := kitprometheus.NewCounterFrom(stdprometheus.CounterOpts{
Namespace: "SERVICE",
Subsystem: "service_metrics",
Name: "request_count",
Help: "Number of requests received.",
}, fieldKeys)
并通过以下方式提供这些东西:
http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(":8090", nil)
对于这一/service
部分,我查询 API,提取值并通过以下方式更新不同的仪表Gauge.Set(value)
- 如何在不启动另一台服务器(不同端口)的情况下在不同端点上公开最后一个仪表?
- 我是否必须创建自己的收集器(我没有自定义指标,所以没有,对吧?)?