نظارت
با استفاده از 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,
}),
}