fiber/docs/middleware/monitor.md

3.6 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 "fonts.googleapis.com"
ChartJsURL string ChartJsURL for specify ChartJS library path or URL "cdn.jsdelivr.net"

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,
    }),
}