master
李伟乐 1 year ago
parent 7086f0bf01
commit 94791bf585
  1. 42
      middleware/prome/prometheus.go

@ -54,28 +54,30 @@ func recordUptime() {
} }
} }
func Prometheus(handler middleware.Handler) middleware.Handler { func Prometheus(handler middleware.Handler) middleware.Middleware {
return func(ctx context.Context, a any) (any, error) { return func(handler middleware.Handler) middleware.Handler {
tr, ok := transport.FromServerContext(ctx) return func(ctx context.Context, a any) (any, error) {
if !ok { tr, ok := transport.FromServerContext(ctx)
return handler(ctx, a) 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"
} }
} start := time.Now()
lvs := []string{code, tr.Endpoint(), tr.Operation()} 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() reqCount.WithLabelValues(lvs...).Inc()
reqDuration.WithLabelValues(lvs...).Observe(time.Since(start).Seconds()) reqDuration.WithLabelValues(lvs...).Observe(time.Since(start).Seconds())
return resp, err return resp, err
}
} }
} }

Loading…
Cancel
Save