fiber/docs/middleware/monitor.md

3.3 KiB

id
monitor

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/v3"
  "github.com/gofiber/fiber/v3/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

Property Type Description Default
Title string Metrics page title "Fiber Monitor"
Refresh time.Duration Refresh period 3 seconds
APIOnly bool Whether the service should expose only the monitoring API false
Next func(fiber.Ctx) bool Next defines a function to skip this middleware when returned true. nil
CustomHead string Custom HTML Code to Head Section(Before End) empty
FontURL string FontURL for specify font resource path or URL "https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap"
ChartJsURL string ChartJsURL 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,
	}),
}