frostfs-http-gw/utils/util.go
Roman Loginov e124c8fd2d
All checks were successful
/ DCO (pull_request) Successful in 35s
/ Vulncheck (pull_request) Successful in 1m2s
/ Builds (pull_request) Successful in 1m28s
/ Lint (pull_request) Successful in 2m45s
/ Tests (pull_request) Successful in 1m27s
[#148] Add trace_id to logs
Signed-off-by: Roman Loginov <r.loginov@yadro.com>
2024-10-09 12:22:17 +03:00

28 lines
774 B
Go

package utils
import (
"context"
"github.com/valyala/fasthttp"
"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"
)
// SetContextToRequest adds new context to fasthttp request.
func SetContextToRequest(ctx context.Context, c *fasthttp.RequestCtx) {
c.SetUserValue("context", ctx)
}
// GetContextFromRequest returns main context from fasthttp request context.
func GetContextFromRequest(c *fasthttp.RequestCtx) context.Context {
return c.UserValue("context").(context.Context)
}
// WithTracing adds trace_id field to logs.
func WithRequestTracing(ctx context.Context, log *zap.Logger) *zap.Logger {
if traceID := trace.SpanFromContext(ctx).SpanContext().TraceID(); traceID.IsValid() {
return log.With(zap.String("trace_id", traceID.String()))
}
return log
}