Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chenjiandongx/ginprom
π‘ Prometheus metrics exporter for Gin.
https://github.com/chenjiandongx/ginprom
gin prometheus
Last synced: 2 days ago
JSON representation
π‘ Prometheus metrics exporter for Gin.
- Host: GitHub
- URL: https://github.com/chenjiandongx/ginprom
- Owner: chenjiandongx
- License: mit
- Created: 2019-08-15T09:38:23.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-17T02:36:41.000Z (over 3 years ago)
- Last Synced: 2024-12-13T06:04:46.348Z (9 days ago)
- Topics: gin, prometheus
- Language: Go
- Homepage:
- Size: 25.4 KB
- Stars: 159
- Watchers: 3
- Forks: 54
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
π‘ ginprom
Prometheus metrics exporter for Gin. Inspired by Depado/ginprom.### π° Installation
```shell
$ go get -u github.com/chenjiandongx/ginprom
```### π Usage
It's easy to get started with ginprom, only a few lines of code needed.
```golang
import (
"github.com/chenjiandongx/ginprom"
"github.com/gin-gonic/gin"
"github.com/prometheus/client_golang/prometheus/promhttp"
)func main() {
r := gin.Default()
// use prometheus metrics exporter middleware.
//
// ginprom.PromMiddleware() expects a ginprom.PromOpts{} poniter.
// It is used for filtering labels by regex. `nil` will pass every requests.
//
// ginprom promethues-labels:
// `status`, `endpoint`, `method`
//
// for example:
// 1). I don't want to record the 404 status request. That's easy for it.
// ginprom.PromMiddleware(&ginprom.PromOpts{ExcludeRegexStatus: "404"})
//
// 2). And I wish to ignore endpoints started with `/prefix`.
// ginprom.PromMiddleware(&ginprom.PromOpts{ExcludeRegexEndpoint: "^/prefix"})
r.Use(ginprom.PromMiddleware(nil))// register the `/metrics` route.
r.GET("/metrics", ginprom.PromHandler(promhttp.Handler()))// your working routes
r.GET("/", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"message": "home"})
})
}
```### π Metrics
Details about exposed Prometheus metrics.
| Name | Type | Exposed Information |
| ---- | ---- | ---------------------|
| service_uptime | Counter | HTTP service uptime. |
| service_http_request_count_total | Counter | Total number of HTTP requests made. |
| service_http_request_duration_seconds | Histogram | HTTP request latencies in seconds. |
| service_http_request_size_bytes | Summary | HTTP request sizes in bytes. |
| service_http_response_size_bytes | Summary |HTTP response sizes in bytes. |### π Grafana
Although Promethues offers a simple dashboard, Grafana is clearly a better choice. [Grafana configuration](./ginprom-service.json).
![](https://user-images.githubusercontent.com/19553554/65812184-19a5a000-e1f6-11e9-8881-e0c260196bc9.png)
### π LICENSE
MIT [Β©chenjiandongx](https://github.com/chenjiandongx)