mirror of
https://github.com/gofiber/fiber.git
synced 2025-05-12 10:48:04 +00:00
113 lines
2.6 KiB
Markdown
113 lines
2.6 KiB
Markdown
---
|
|
id: monitor
|
|
title: Monitor
|
|
---
|
|
|
|
Monitor middleware for [Fiber](https://github.com/gofiber/fiber) that reports server metrics, inspired by [express-status-monitor](https://github.com/RafalWilinski/express-status-monitor)
|
|
|
|
:::caution
|
|
|
|
Monitor is still in beta, API might change in the future!
|
|
|
|
:::
|
|
|
|

|
|
|
|
### Signatures
|
|
```go
|
|
func New() fiber.Handler
|
|
```
|
|
|
|
### Examples
|
|
Import the middleware package that is part of the Fiber web framework
|
|
|
|
```go
|
|
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:
|
|
```go
|
|
// 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:
|
|
```json
|
|
{"pid":{ "cpu":0.4568381746582226, "ram":20516864, "conns":3 },
|
|
"os": { "cpu":8.759124087593099, "ram":3997155328, "conns":44,
|
|
"total_ram":8245489664, "load_avg":0.51 }}
|
|
```
|
|
|
|
## Config
|
|
|
|
```go
|
|
// Config defines the config for middleware.
|
|
type Config struct {
|
|
// Metrics page title
|
|
//
|
|
// Optional. Default: "Fiber Monitor"
|
|
Title string
|
|
|
|
// Refresh period
|
|
//
|
|
// Optional. Default: 3 seconds
|
|
Refresh time.Duration
|
|
|
|
// Whether the service should expose only the monitoring API.
|
|
//
|
|
// Optional. Default: false
|
|
APIOnly bool
|
|
|
|
// Next defines a function to skip this middleware when returned true.
|
|
//
|
|
// Optional. Default: nil
|
|
Next func(c *fiber.Ctx) bool
|
|
|
|
// Custom HTML Code to Head Section(Before End)
|
|
//
|
|
// Optional. Default: empty
|
|
CustomHead string
|
|
|
|
// FontURL for specify font resource path or URL . also you can use relative path
|
|
//
|
|
// Optional. Default: https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap
|
|
FontURL string
|
|
|
|
// ChartJsURL for specify ChartJS library path or URL . also you can use relative path
|
|
//
|
|
// Optional. Default: https://cdn.jsdelivr.net/npm/chart.js@2.9/dist/Chart.bundle.min.js
|
|
ChartJsURL string
|
|
|
|
index string
|
|
}
|
|
```
|
|
|
|
## Default Config
|
|
|
|
```go
|
|
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,
|
|
}),
|
|
}
|
|
```
|