İzleme
Fiber'ın izleme ara katmanını kullanarak sunucunun metriklerini raporlayabilirsiniz. express-status-monitor'dan esinlenen bu araç, gerçek zamanlı olarak CPU, bellek, istek cevap süresi, eşzamanlı bağlantı sayısı ve daha fazlasını izleyebilir.
Not: Monitör hala test aşamasında ve API ileride değişebilir!
İmza
func New() fiber.Handler
Örnek
Fiber web çatısının izleme paketini içe aktarın
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/monitor"
)
Fiber uygulamanızı başlattıktan sonra aşağıdaki seçenekleri kullanabilirsiniz:
// Varsayılan yapılandırmayla başlat (ara katmanı /metriklere atayın)
app.Get("/metrikler", monitor.New())
// Veya özel yapılandırmayla genişletin
// Ara katmanı /metriklere atayın
// ve başlığı "BenimServis Metrikleri Sayfası" olarak değiştirin
app.Get("/metrikler", monitor.New(monitor.Config{Title: "BenimServis Metrikleri Sayfası"}))
Ayrıca curl -X GET -H "Accept: application/json" http://localhost:3000/metrics
kullanarak API uç noktasına erişebilirsiniz, bu size şunu döndürecektir:
{"pid":{ "cpu":0.4568381746582226, "ram":20516864, "conns":3 },
"os": { "cpu":8.759124087593099, "ram":3997155328, "conns":44,
"total_ram":8245489664, "load_avg":0.51 }}
Yapılandırma
Özellik | Tür | Açıklama | Varsayılan |
---|---|---|---|
Title | string |
Metrikler sayfasının başlığı | "Fiber Monitor" |
Refresh | time.Duration |
Yenileme periyodu | 3 saniye |
APIOnly | bool |
Hizmetin yalnızca izleme API'sini sunup sunmadığı | false |
Next | func(*fiber.Ctx) bool |
Eğer true döndürdüğünde bu ara katmanı atlayan bir işlev tanımlar | nil |
CustomHead | string |
Başlık (son kısmın başında biten) için özel HTML kodu | Boş |
FontURL | string |
Font kaynağının yolu veya URL'si FontURL tarafından belirtilir | https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap |
ChartJsURL | string |
ChartJS kütüphanesi yolu veya URL'si ChartJsURL tarafından belirtilir | https://cdn.jsdelivr.net/npm/[email protected]/dist/Chart.bundle.min.js |
Varsayılan Yapılandırma
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,
}),
}