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