نظارت

با استفاده از middleware نظارتی Fiber، می‌توانید متریک‌های سرور را گزارش دهید، الهام گرفته شده از express-status-monitor که می‌تواند زمان اجرای CPU، حافظه، زمان پاسخ درخواست، تعداد اتصال همزمان و موارد دیگر را به صورت زمان واقعی نظارت کند.

توجه: این نظارت هنوز در مرحله آزمایشی است و API ممکن است در آینده تغییر کند!

امضا

func New() fiber.Handler

مثال

وارد کردن بسته middleware از چارچوب وب Fiber

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

پس از مقدمه‌ای برنامه Fiber خود، می‌توانید از گزینه‌های زیر استفاده کنید:

// مقدمه‌ای با پیکربندی پیش‌فرض (middleware را به /metrics اختصاص دهید)
app.Get("/metrics", monitor.New())

// یا گسترش با پیکربندی سفارشی
// middleware را به /metrics اختصاص دهید
// و عنوان را به "صفحه متریک MyService" تغییر دهید
app.Get("/metrics", monitor.New(monitor.Config{Title: "صفحه متریک MyService"}))

همچنین می‌توانید از نقطه پایانی 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 تعریف می‌کند یک تابع است که این middleware را ترک می‌کند وقتی مقدار true بازگردانده می‌شود nil
CustomHead string کد HTML سفارشی برای افزودن به هدر (به اتمام رسیدن قبل از) خالی
FontURL string مسیر یا URL منبع فونت مشخص شده توسط FontURL https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap
ChartJsURL string مسیر یا URL کتابخانه ChartJS مشخص شده توسط 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,
    }),
}