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