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