为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用杜松子酒作为服务器来编写普罗米修斯出口商指标

如何使用杜松子酒作为服务器来编写普罗米修斯出口商指标

Go
九州编程 2022-08-01 15:10:02
这是官方的prometheus golang-client示例:package mainimport (    "log"    "net/http"    "github.com/prometheus/client_golang/prometheus"    "github.com/prometheus/client_golang/prometheus/promhttp")var cpuTemp = prometheus.NewGauge(prometheus.GaugeOpts{        Name: "cpu_temperature_celsius",        Help: "Current temperature of the CPU.",    })func init() {    // Metrics have to be registered to be exposed:    prometheus.MustRegister(cpuTemp)}func main() {    cpuTemp.Set(65.3)    // 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(":8080", nil))}在此代码中,http 服务器使用该库。promhttp使用框架时如何修改指标处理程序?我没有在文档中找到答案。gin
查看完整描述

3 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

我们只是利用处理程序。promhttp


package main


import (

    "github.com/gin-gonic/gin"

    "github.com/prometheus/client_golang/prometheus"

    "github.com/prometheus/client_golang/prometheus/promhttp"

)


var cpuTemp = prometheus.NewGauge(prometheus.GaugeOpts{

    Name: "cpu_temperature_celsius",

    Help: "Current temperature of the CPU.",

})


func init() {

    prometheus.MustRegister(cpuTemp)

}


func prometheusHandler() gin.HandlerFunc {

    h := promhttp.Handler()


    return func(c *gin.Context) {

        h.ServeHTTP(c.Writer, c.Request)

    }

}


func main() {

    cpuTemp.Set(65.3)


    r := gin.New()


    r.GET("/", func(c *gin.Context) {

        c.JSON(200, "Hello world!")

    })


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


    r.Run()

}

或者我们总是可以切换到普罗米修斯中间件 - https://github.com/zsais/go-gin-prometheus


查看完整回答
反对 回复 2022-08-01
?
温温酱

TA贡献1752条经验 获得超4个赞

使用杜松子酒包装机

router.GET("/metrics", gin.WrapH(promhttp.Handler()))


查看完整回答
反对 回复 2022-08-01
?
HUWWW

TA贡献1874条经验 获得超12个赞

我正在将普罗米修斯与其他库 https://github.com/Depado/ginprom 一起使用:


package main


import (

    "github.com/Depado/ginprom"

    "github.com/gin-gonic/gin"

)


func main() {

    r := gin.Default()

    p := ginprom.New(

        ginprom.Engine(r),

        ginprom.Subsystem("gin"),

        ginprom.Path("/metrics"),

    )

    r.Use(p.Instrument())


    r.GET("/hello/:id", func(c *gin.Context) {})

    r.GET("/world/:id", func(c *gin.Context) {})

    r.Run("127.0.0.1:8080")

}


查看完整回答
反对 回复 2022-08-01
  • 3 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信