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