Giám sát

Sử dụng middleware giám sát của Fiber, bạn có thể báo cáo các chỉ số của máy chủ, lấy cảm hứng từ express-status-monitor, có thể giám sát CPU, bộ nhớ, thời gian phản hồi yêu cầu, số kết nối đồng thời, và nhiều hơn nữa trong thời gian thực.

Lưu ý: Giám sát vẫn đang trong giai đoạn thử nghiệm, và API có thể thay đổi trong tương lai!

Chữ ký

func New() fiber.Handler

Ví dụ

Nhập gói middleware của framework web Fiber

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

Sau khi khởi tạo ứng dụng Fiber của bạn, bạn có thể sử dụng các tùy chọn sau:

// Khởi tạo với cấu hình mặc định (gán middleware vào /metrics)
app.Get("/metrics", monitor.New())

// Hoặc mở rộng với cấu hình tùy chỉnh
// Gán middleware vào /metrics
// và thay đổi tiêu đề thành "Trang Chỉ số Thương mại Của Dịch Vụ Của Tôi"
app.Get("/metrics", monitor.New(monitor.Config{Title: "Trang Chỉ số Thương mại Của Dịch Vụ Của Tôi"}))

Bạn cũng có thể truy cập vào điểm cuối API bằng cách sử dụng curl -X GET -H "Chấp nhận: application/json" http://localhost:3000/metrics, sẽ trả về:

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

Cấu hình

Thuộc tính Kiểu Mô tả Mặc định
Title string Tiêu đề của trang chỉ số "Fiber Monitor"
Refresh time.Duration Thời gian làm mới 3 giây
APIOnly bool Dịch vụ chỉ tiếp xúc với API giám sát false
Next func(*fiber.Ctx) bool Next xác định một hàm bỏ qua middleware này khi trả về true nil
CustomHead string Mã HTML tùy chỉnh để thêm vào phần header (kết thúc trước) Rỗng
FontURL string Đường dẫn tài nguyên hoặc URL phông chữ được chỉ định bởi FontURL https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap
ChartJsURL string Đường dẫn thư viện ChartJS hoặc URL được chỉ định bởi ChartJsURL https://cdn.jsdelivr.net/npm/[email protected]/dist/Chart.bundle.min.js

Cấu hình Mặc định

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