Skip to main content
Version: Next

Monitor

Release Discord Test Security Linter

Monitor middleware for Fiber that reports server metrics, inspired by express-status-monitor

Install

This middleware supports Fiber v3.

go get -u github.com/gofiber/fiber/v3
go get -u github.com/gofiber/contrib/monitor

Signature

monitor.New(config ...monitor.Config) fiber.Handler

Config

PropertyTypeDescriptionDefault
TitlestringMetrics page title.Fiber Monitor
Refreshtime.DurationRefresh period.3 seconds
APIOnlyboolWhether the service should expose only the montioring API.false
Nextfunc(c *fiber.Ctx) boolDefine a function to add custom fields.nil
CustomHeadstringCustom HTML code to Head Section(Before End).empty
FontURLstringFontURL for specilt font resource path or URL. also you can use relative path.https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap
ChartJsURLstringChartJsURL for specilt chartjs library, path or URL, also you can use relative path.https://cdn.jsdelivr.net/npm/chart.js@2.9/dist/Chart.bundle.min.js

Example

package main

import (
"log"

"github.com/gofiber/fiber/v3"
"github.com/gofiber/contrib/monitor"
)

func main() {
app := fiber.New()

// Initialize default config (Assign the middleware to /metrics)
app.Get("/metrics", monitor.New())

// Or extend your config for customization
// Assign the middleware to /metrics
// and change the Title to `MyService Metrics Page`
app.Get("/metrics", monitor.New(monitor.Config{Title: "MyService Metrics Page"}))

log.Fatal(app.Listen(":3000"))
}

Default Config

var ConfigDefault = Config{
Title: defaultTitle,
Refresh: defaultRefresh,
FontURL: defaultFontURL,
ChartJsURL: defaultChartJSURL,
CustomHead: defaultCustomHead,
APIOnly: false,
Next: nil,
}