无法将Prometheus中间件传递到httprouter
端点定义中。
我正在尝试将Prometheus中间件添加到我们的端点实现中。但是我们的端点正在使用名为mux
的第三方httprouter
软件包。然后,当我尝试将此中间件添加到现有代码库中时,我找不到将两者集成在一起的好方法。
router := httprouter.New()
router.GET("/hello", r.Hello)
func (r configuration) Hello(w http.ResponseWriter, req *http.Request, ps httprouter.Params)
func InstrumentHandlerFunc(name string, handler http.HandlerFunc) http.HandlerFunc {
counter := prometheus.NewCounterVec(
do something...
)
duration := prometheus.NewHistogramVec(
do something...
)
return promhttp.InstrumentHandlerDuration(duration,
promhttp.InstrumentHandlerCounter(counter, handler))
}
我的问题是我无法将Prometheus句柄作为参数传递给该httprouter端点函数
以下是我想做的事情:
func InstrumentHandlerFunc(name string, handler httprouter.Handle) httprouter.Handel {
}
router.Get("/hello", InstrumentHandlerFunc("/hello", r.Hello))
答案 0 :(得分:0)
如果您想在同一个项目中同时使用它们,则可以通过一种简单的方法来收听不同的<div id="wprm-recipe-container-26156" class="wprm-recipe-container" data-recipe-id="26156">
ports