การตรวจสอบ
การใช้ 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 Metrics Page"
app.Get("/metrics", monitor.New(monitor.Config{Title: "MyService Metrics Page"}))
คุณยังสามารถเข้าถึง API endpoint โดยใช้ 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 ตรวจสอบเท่านั้นหรือไม่ | เท็จ |
Next | func(*fiber.Ctx) bool |
Next กำหนดฟังก์ชันที่ข้าม middleware นี้เมื่อคืนค่าเป็นจริง | 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,
}),
}