in

A simple wrapper around resty to report HTTP calls metrics to prometheus


a simple wrapper around resty to report HTTP calls metrics to prometheus

If you’re using resty and want to have metrics of your HTTP calls, restyprom is here for you.

For now, these are the metrics available:

  • Response time of called URLs
  • Total of calls per URL and status code
  • Total of success calls per URL
  • Total of failure calls per URL

Install

go get github.com/felipevolpone/restyprom

Getting Started

client := resty.New()
client.OnAfterResponse(func(c *resty.Client, r *resty.Response) error {
    restyprom.Collect(r)
    return nil
})
restyprom.Init() // to register your metrics

resp, err := client.R().Get("https://httpbin.org/get")

If you’re creating simple resty clients, you can use the NewBasicClient func to wrap that code and use it in a simpler way, just like that:

client := restyprom.NewBasicClient()
restyprom.Init() // to register your metrics

resp, err := client.R().Get("https://httpbin.org/get")

Example with Gin

client := restyprom.NewBasicClient()
restyprom.Init()

r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
    resp, _ := client.R().Get("https://httpbin.org/get")
    c.JSON(200, gin.H{
        "message": resp.Body(),
    })
})

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

Details

If you’re not using prometheus.DefaulRegister you can use it this way:

restyprom.InitWithRegister(yourRegister)

GitHub

https://github.com/felipevolpone/restyprom




Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

GIPHY App Key not set. Please check settings

Linux Release Roundup #21.38: RetroArch on Steam, Kali Linux 2021.3, and More New Releases

Apple Relents on New Surveillance Measures