Skip to main content
Version: v2.x

Monitor

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

caution

Monitor is still in beta, API might change in the future!

Signatures

func New() fiber.Handler

Examples

Import the middleware package that is part of the Fiber web framework

import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/monitor"
)

After you initiate your Fiber app, you can use the following possibilities:

// 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"}))

You can also access the API endpoint with curl -X GET -H "Accept: application/json" http://localhost:3000/metrics which returns:

{"pid":{ "cpu":0.4568381746582226, "ram":20516864,   "conns":3 },
"os": { "cpu":8.759124087593099, "ram":3997155328, "conns":44,
"total_ram":8245489664, "load_avg":0.51 }}

Config

PropertyTypeDescriptionDefault
TitlestringMetrics page title"Fiber Monitor"
Refreshtime.DurationRefresh period3 seconds
APIOnlyboolWhether the service should expose only the monitoring APIfalse
Nextfunc(*fiber.Ctx) boolNext defines a function to skip this middleware when returned true.nil
CustomHeadstringCustom HTML Code to Head Section(Before End)empty
FontURLstringFontURL for specify font resource path or URL"https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap"
ChartJsURLstringChartJsURL for specify ChartJS library path or URL"https://cdn.jsdelivr.net/npm/chart.js@2.9/dist/Chart.bundle.min.js"

Default Config

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