feat: backend core - auth, user, role, permission, device, webhook, monitoring, cache, repository, service, middleware, API handlers
This commit is contained in:
27
internal/monitoring/middleware.go
Normal file
27
internal/monitoring/middleware.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package monitoring
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// PrometheusMiddleware Prometheus监控中间件
|
||||
func PrometheusMiddleware(metrics *Metrics) gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
start := time.Now()
|
||||
|
||||
c.Next()
|
||||
|
||||
duration := time.Since(start)
|
||||
method := c.Request.Method
|
||||
path := c.FullPath()
|
||||
status := c.Writer.Status()
|
||||
|
||||
// 记录请求数
|
||||
metrics.IncHTTPRequest(method, path, status)
|
||||
|
||||
// 记录请求耗时
|
||||
metrics.ObserveHTTPRequestDuration(method, path, duration)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user