fix(fiber): set telemetry on context
This commit is contained in:
parent
62f70ab0c9
commit
0338be0407
2 changed files with 9 additions and 5 deletions
|
@ -105,6 +105,10 @@ func (t *Telemetry) FiberMiddleware(config ...FiberMiddlewareConfig) fiber.Handl
|
|||
}
|
||||
|
||||
return func(c *fiber.Ctx) error {
|
||||
ctx := c.UserContext()
|
||||
ctx = SetOnContext(t, ctx)
|
||||
c.SetUserContext(ctx)
|
||||
|
||||
// Skip ignored routes (/ping for example)
|
||||
if slices.Contains(cfg.IgnoredRoutes, c.Path()) {
|
||||
return c.Next()
|
||||
|
@ -113,7 +117,7 @@ func (t *Telemetry) FiberMiddleware(config ...FiberMiddlewareConfig) fiber.Handl
|
|||
start := time.Now()
|
||||
|
||||
requestMetricsAttrs := httpServerTraceAttributesFromRequest(c)
|
||||
mActiveRequests.Add(c.Context(), 1, metric.WithAttributes(requestMetricsAttrs...))
|
||||
mActiveRequests.Add(ctx, 1, metric.WithAttributes(requestMetricsAttrs...))
|
||||
|
||||
responseMetricAttrs := make([]attribute.KeyValue, len(requestMetricsAttrs))
|
||||
copy(responseMetricAttrs, requestMetricsAttrs)
|
||||
|
@ -123,7 +127,7 @@ func (t *Telemetry) FiberMiddleware(config ...FiberMiddlewareConfig) fiber.Handl
|
|||
return err
|
||||
}
|
||||
|
||||
ctx := t.propagator.Extract(c.UserContext(), propagation.HeaderCarrier(stdRequest.Header))
|
||||
ctx = t.propagator.Extract(ctx, propagation.HeaderCarrier(stdRequest.Header))
|
||||
|
||||
hub := sentry.CurrentHub().Clone()
|
||||
if client := hub.Client(); client != nil {
|
||||
|
|
|
@ -22,7 +22,7 @@ import (
|
|||
"go.opentelemetry.io/otel/trace/noop"
|
||||
)
|
||||
|
||||
type otlpContextKey struct{}
|
||||
type telemetryContextKey struct{}
|
||||
|
||||
type Opts struct {
|
||||
Environment string
|
||||
|
@ -70,10 +70,10 @@ func (o *Telemetry) Shutdown(ctx context.Context) {
|
|||
}
|
||||
|
||||
func SetOnContext(o *Telemetry, ctx context.Context) context.Context {
|
||||
return context.WithValue(ctx, otlpContextKey{}, o)
|
||||
return context.WithValue(ctx, telemetryContextKey{}, o)
|
||||
}
|
||||
func FromContext(ctx context.Context) *Telemetry {
|
||||
return ctx.Value(otlpContextKey{}).(*Telemetry)
|
||||
return ctx.Value(telemetryContextKey{}).(*Telemetry)
|
||||
}
|
||||
|
||||
func newSpanExporter(ctx context.Context, opts Opts) (sdktrace.SpanExporter, error) {
|
||||
|
|
Loading…
Reference in a new issue