Мониторинг

Используя промежуточное ПО мониторинга Fiber, вы можете отображать метрики сервера, вдохновленные express-status-monitor, которые могут отслеживать загрузку ЦП, память, время отклика запросов, количество одновременных соединений и многое другое в реальном времени.

Примечание: Монитор находится в стадии тестирования, поэтому в будущем API может измениться!

Подпись

func New() fiber.Handler

Пример

Импортируйте пакет промежуточного ПО веб-фреймворка Fiber

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

После инициализации вашего приложения Fiber, вы можете использовать следующие параметры:

// Инициализация с конфигурацией по умолчанию (присвоить промежуточное ПО в /metrics)
app.Get("/metrics", monitor.New())

// Или расширьте с пользовательской конфигурацией
// Присвоить промежуточное ПО в /metrics
// и изменить заголовок на "MyService Metrics Page"
app.Get("/metrics", monitor.New(monitor.Config{Title: "MyService Metrics Page"}))

Вы также можете получить доступ к конечной точке API, используя curl -X GET -H "Accept: application/json" http://localhost:3000/metrics, что вернет:

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

Конфигурация

Свойство Тип Описание По умолчанию
Title string Заголовок страницы метрик "Fiber Monitor"
Refresh time.Duration Период обновления 3 секунды
APIOnly bool Возвращает ли сервис только мониторинг API false
Next func(*fiber.Ctx) bool Next определяет функцию, которая пропускает это промежуточное ПО при возвращении true nil
CustomHead string Пользовательский HTML-код для добавления в заголовок (заканчивается перед) Пусто
FontURL string Путь к ресурсу шрифта или URL, указанный в FontURL https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap
ChartJsURL string Путь к библиотеке ChartJS или URL, указанный в ChartJsURL https://cdn.jsdelivr.net/npm/[email protected]/dist/Chart.bundle.min.js

Конфигурация по умолчанию

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