From 94791bf585b896f7f874ee07759fa660883a3073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BC=9F=E4=B9=90?= Date: Wed, 13 Sep 2023 17:37:33 +0800 Subject: [PATCH] promethues --- middleware/prome/prometheus.go | 42 ++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/middleware/prome/prometheus.go b/middleware/prome/prometheus.go index 380834b..0343adc 100644 --- a/middleware/prome/prometheus.go +++ b/middleware/prome/prometheus.go @@ -54,28 +54,30 @@ func recordUptime() { } } -func Prometheus(handler middleware.Handler) middleware.Handler { - return func(ctx context.Context, a any) (any, error) { - tr, ok := transport.FromServerContext(ctx) - if !ok { - return handler(ctx, a) - } - start := time.Now() - resp, err := handler(ctx, a) - code := "500" - if err != nil { - switch aerr := err.(type) { - case *errors.Error: - code = fmt.Sprintf("%d", aerr.Code) - default: - code = "500" +func Prometheus(handler middleware.Handler) middleware.Middleware { + return func(handler middleware.Handler) middleware.Handler { + return func(ctx context.Context, a any) (any, error) { + tr, ok := transport.FromServerContext(ctx) + if !ok { + return handler(ctx, a) } - } - lvs := []string{code, tr.Endpoint(), tr.Operation()} + start := time.Now() + resp, err := handler(ctx, a) + code := "500" + if err != nil { + switch aerr := err.(type) { + case *errors.Error: + code = fmt.Sprintf("%d", aerr.Code) + default: + code = "500" + } + } + lvs := []string{code, tr.Endpoint(), tr.Operation()} - reqCount.WithLabelValues(lvs...).Inc() - reqDuration.WithLabelValues(lvs...).Observe(time.Since(start).Seconds()) + reqCount.WithLabelValues(lvs...).Inc() + reqDuration.WithLabelValues(lvs...).Observe(time.Since(start).Seconds()) - return resp, err + return resp, err + } } }