Monitoramento

Usando o middleware de monitoramento do Fiber, você pode relatar as métricas do servidor, inspirado no express-status-monitor, que pode monitorar CPU, memória, tempo de resposta de solicitação, contagem de conexões concorrentes e muito mais em tempo real.

Nota: O Monitor ainda está na fase de testes, e a API pode mudar no futuro!

Assinatura

func New() fiber.Handler

Exemplo

Importe o pacote de middleware do framework web Fiber

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

Após inicializar seu aplicativo Fiber, você pode usar as seguintes opções:

// Inicialize com a configuração padrão (atribua o middleware a /metrics)
app.Get("/metrics", monitor.New())

// Ou estenda com configuração personalizada
// Atribua o middleware a /metrics
// e altere o título para "Página de Métricas do MeuServiço"
app.Get("/metrics", monitor.New(monitor.Config{Title: "Página de Métricas do MeuServiço"}))

Você também pode acessar o endpoint da API usando curl -X GET -H "Accept: application/json" http://localhost:3000/metrics, que irá retornar:

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

Configuração

Propriedade Tipo Descrição Padrão
Title string Título da página de métricas "Monitor do Fiber"
Refresh time.Duration Período de atualização 3 segundos
APIOnly bool Se o serviço expõe apenas a API de monitoramento false
Next func(*fiber.Ctx) bool Next define uma função que pula este middleware quando retorna true nil
CustomHead string Código HTML personalizado para adicionar ao cabeçalho (finalizando antes) Vazio
FontURL string Caminho do recurso da fonte ou URL especificado por FontURL https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap
ChartJsURL string Caminho da biblioteca ChartJS ou URL especificado por ChartJsURL https://cdn.jsdelivr.net/npm/[email protected]/dist/Chart.bundle.min.js

Configuração Padrão

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