https://github.com/ansrivas/fiberprometheus
prometheus middleware for Fiber
https://github.com/ansrivas/fiberprometheus
Last synced: 15 days ago
JSON representation
prometheus middleware for Fiber
- Host: GitHub
- URL: https://github.com/ansrivas/fiberprometheus
- Owner: ansrivas
- License: mit
- Created: 2020-07-02T23:57:00.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-03-10T14:57:10.000Z (about 1 month ago)
- Last Synced: 2025-03-31T23:33:37.522Z (22 days ago)
- Language: Go
- Homepage:
- Size: 197 KB
- Stars: 188
- Watchers: 3
- Forks: 41
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-fiber - ansrivas/fiberprometheus - Prometheus middleware for gofiber. (⚙️ Middlewares / 🌱 Third Party)
README
**NOTE**: 🚨 We are currently migrating this middleware to the official gofiber/contrib repo, official link etc. will be posted soon.
# fiberprometheus
Prometheus middleware for [Fiber](https://github.com/gofiber/fiber).
**Note: Requires Go 1.22 and above**

[](https://gofiber.io/discord)


Following metrics are available by default:
```text
http_requests_total
http_request_duration_seconds
http_requests_in_progress_total
```### Install v2
```console
go get -u github.com/gofiber/fiber/v2
go get -u github.com/ansrivas/fiberprometheus/v2
```### Example using v2
```go
package mainimport (
"github.com/ansrivas/fiberprometheus/v2"
"github.com/gofiber/fiber/v2"
)func main() {
app := fiber.New()// This here will appear as a label, one can also use
// fiberprometheus.NewWith(servicename, namespace, subsystem )
// or
// labels := map[string]string{"custom_label1":"custom_value1", "custom_label2":"custom_value2"}
// fiberprometheus.NewWithLabels(labels, namespace, subsystem )
prometheus := fiberprometheus.New("my-service-name")
prometheus.RegisterAt(app, "/metrics")
prometheus.SetSkipPaths([]string{"/ping"}) // Optional: Remove some paths from metrics
app.Use(prometheus.Middleware)app.Get("/", func(c *fiber.Ctx) error {
return c.SendString("Hello World")
})app.Get("/ping", func(c *fiber.Ctx) error {
return c.SendString("pong")
})app.Post("/some", func(c *fiber.Ctx) error {
return c.SendString("Welcome!")
})app.Listen(":3000")
}
```### Result
- Hit the default url at http://localhost:3000
- Navigate to http://localhost:3000/metrics### Grafana Dashboard
- https://grafana.com/grafana/dashboards/14331