feat: add observability metrics

This commit is contained in:
2026-05-23 17:13:13 +02:00
parent 767e056aad
commit c2e4cae253
12 changed files with 441 additions and 19 deletions

View File

@@ -3,6 +3,7 @@ package server
import (
"context"
"log"
"mal/internal/observability"
"net/http"
"os"
"time"
@@ -13,18 +14,20 @@ import (
)
var Module = fx.Options(
fx.Provide(observability.NewMetrics),
fx.Provide(ProvideRouter),
fx.Invoke(RunServer),
)
func ProvideRouter(htmlRender render.HTMLRender) *gin.Engine {
func ProvideRouter(htmlRender render.HTMLRender, metrics *observability.Metrics) *gin.Engine {
if os.Getenv("GIN_MODE") == "" {
gin.SetMode(gin.ReleaseMode)
}
r := gin.New()
r.Use(CORSMiddleware(), RequestLogger(), gin.Recovery())
r.Use(CORSMiddleware(), RequestLogger(metrics), gin.Recovery())
r.Static("/static", "./static")
r.Static("/dist", "./dist")
r.GET("/metrics", gin.WrapH(metrics.Handler()))
r.HTMLRender = htmlRender
return r
}