Monitoreo
Utilizando el middleware de monitoreo de Fiber, puedes informar las métricas del servidor, inspirado en express-status-monitor, el cual puede monitorear la CPU, memoria, tiempo de respuesta de la solicitud, cantidad de conexiones concurrentes, y más en tiempo real.
Nota: ¡El monitor todavía está en fase de pruebas, y es posible que la API cambie en el futuro!
Firma
func New() fiber.Handler
Ejemplo
Importa el paquete de middleware del framework web Fiber
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/monitor"
)
Después de inicializar tu aplicación de Fiber, puedes utilizar las siguientes opciones:
// Inicializa con la configuración predeterminada (asigna el middleware a /metrics)
app.Get("/metrics", monitor.New())
// O extiende con configuración personalizada
// Asigna el middleware a /metrics
// y cambia el título a "Página de métricas de MyService"
app.Get("/metrics", monitor.New(monitor.Config{Title: "Página de métricas de MyService"}))
También puedes acceder al punto final de la API usando curl -X GET -H "Accept: application/json" http://localhost:3000/metrics
, lo cual devolverá:
{"pid":{ "cpu":0.4568381746582226, "ram":20516864, "conns":3 },
"os": { "cpu":8.759124087593099, "ram":3997155328, "conns":44,
"total_ram":8245489664, "load_avg":0.51 }}
Configuración
Propiedad | Tipo | Descripción | Predeterminado |
---|---|---|---|
Title | string |
Título de la página de métricas | "Monitor de Fiber" |
Refresh | time.Duration |
Período de actualización | 3 segundos |
APIOnly | bool |
Si el servicio solo expone la API de monitoreo | false |
Next | func(*fiber.Ctx) bool |
Next define una función que omite este middleware cuando devuelve true | nil |
CustomHead | string |
Código HTML personalizado para agregar al encabezado (terminando antes) | Vacío |
FontURL | string |
Ruta del recurso de fuente o URL especificada por FontURL | https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap |
ChartJsURL | string |
Ruta de la biblioteca ChartJS o URL especificada por ChartJsURL | https://cdn.jsdelivr.net/npm/[email protected]/dist/Chart.bundle.min.js |
Configuración Predeterminada
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,
}),
}