Monitoraggio

Utilizzando il middleware di monitoraggio di Fiber, è possibile visualizzare le metriche del server, ispirato a express-status-monitor, che può monitorare CPU, memoria, tempo di risposta della richiesta, conteggio delle connessioni simultanee e altro in tempo reale.

Nota: Il monitor è ancora nella fase di test e l'API potrebbe cambiare in futuro!

Firma

func New() fiber.Handler

Esempio

Importare il pacchetto middleware del framework web Fiber

import (
  "github.com/gofiber/fiber/v2"
  "github.com/gofiber/fiber/v2/middleware/monitor"
)

Dopo aver inizializzato l'applicazione Fiber, è possibile utilizzare le seguenti opzioni:

// Inizializza con la configurazione predefinita (assegnare il middleware a /metrics)
app.Get("/metrics", monitor.New())

// Oppure estendere con configurazione personalizzata
// Assegna il middleware a /metrics
// e cambia il titolo in "Pagina delle metriche del mio servizio"
app.Get("/metrics", monitor.New(monitor.Config{Title: "Pagina delle metriche del mio servizio"}))

È inoltre possibile accedere al punto finale API utilizzando curl -X GET -H "Accept: application/json" http://localhost:3000/metrics, che restituirà:

{"pid":{ "cpu":0.4568381746582226, "ram":20516864,   "conns":3 },
 "os": { "cpu":8.759124087593099,  "ram":3997155328, "conns":44,
    "total_ram":8245489664, "load_avg":0.51 }}

Configurazione

Proprietà Tipo Descrizione Predefinito
Title string Titolo della pagina delle metriche "Monitor Fiber"
Refresh time.Duration Periodo di aggiornamento 3 secondi
APIOnly bool Se il servizio espone solo l'API di monitoraggio false
Next func(*fiber.Ctx) bool Next definisce una funzione che salta questo middleware quando restituisce true nil
CustomHead string Codice HTML personalizzato da aggiungere all'intestazione (termina prima) Vuoto
FontURL string Percorso della risorsa del font o URL specificato da FontURL https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap
ChartJsURL string Percorso della libreria ChartJS o URL specificato da ChartJsURL https://cdn.jsdelivr.net/npm/[email protected]/dist/Chart.bundle.min.js

Configurazione predefinita

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