Go语言 普罗米修斯处理程序使用Gin奇怪输出

xdyibdwo  于 2023-01-10  发布在  Go
关注(0)|答案(1)|浏览(153)

基本上,我正在开发一个HTTP端点来从prometheus包中获取指标,按照这个链接[https://stackoverflow.com/a/65609042/17150602]中的说明,我创建了一个能够调用promhttp.Handler()的处理程序,如下所示:

g.GET("/metrics", prometheusHandler())

func prometheusHandler() gin.HandlerFunc {
        h := promhttp.Handler()
        return func(c *gin.Context) {
            h.ServeHTTP(c.Writer, c.Request)
        }
    }

问题是,当我调用localhost:1080/metrics时,输出如下所示(顺便说一句,我使用的是Postman):
Postman request to get metrics with wrong output
但是,如果我改变了端口,使用http而不是gin包,就像这样:

http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(promAddr, nil)

输出显示OK,如下所示:
Postman reuest to get metrics with correct output
这是什么,为什么会这样?谢谢

kx5bkwkv

kx5bkwkv1#

您可能忘记删除像gzip这样的压缩中间件。

相关问题