mirror of https://github.com/gofiber/fiber.git
3.3 KiB
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,
}),
}