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