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 {
|
return func(c *fiber.Ctx) error {
|
||||||
|
ctx := c.UserContext()
|
||||||
|
ctx = SetOnContext(t, ctx)
|
||||||
|
c.SetUserContext(ctx)
|
||||||
|
|
||||||
// Skip ignored routes (/ping for example)
|
// Skip ignored routes (/ping for example)
|
||||||
if slices.Contains(cfg.IgnoredRoutes, c.Path()) {
|
if slices.Contains(cfg.IgnoredRoutes, c.Path()) {
|
||||||
return c.Next()
|
return c.Next()
|
||||||
|
@ -113,7 +117,7 @@ func (t *Telemetry) FiberMiddleware(config ...FiberMiddlewareConfig) fiber.Handl
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
|
|
||||||
requestMetricsAttrs := httpServerTraceAttributesFromRequest(c)
|
requestMetricsAttrs := httpServerTraceAttributesFromRequest(c)
|
||||||
mActiveRequests.Add(c.Context(), 1, metric.WithAttributes(requestMetricsAttrs...))
|
mActiveRequests.Add(ctx, 1, metric.WithAttributes(requestMetricsAttrs...))
|
||||||
|
|
||||||
responseMetricAttrs := make([]attribute.KeyValue, len(requestMetricsAttrs))
|
responseMetricAttrs := make([]attribute.KeyValue, len(requestMetricsAttrs))
|
||||||
copy(responseMetricAttrs, requestMetricsAttrs)
|
copy(responseMetricAttrs, requestMetricsAttrs)
|
||||||
|
@ -123,7 +127,7 @@ func (t *Telemetry) FiberMiddleware(config ...FiberMiddlewareConfig) fiber.Handl
|
||||||
return err
|
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()
|
hub := sentry.CurrentHub().Clone()
|
||||||
if client := hub.Client(); client != nil {
|
if client := hub.Client(); client != nil {
|
||||||
|
|
|
@ -22,7 +22,7 @@ import (
|
||||||
"go.opentelemetry.io/otel/trace/noop"
|
"go.opentelemetry.io/otel/trace/noop"
|
||||||
)
|
)
|
||||||
|
|
||||||
type otlpContextKey struct{}
|
type telemetryContextKey struct{}
|
||||||
|
|
||||||
type Opts struct {
|
type Opts struct {
|
||||||
Environment string
|
Environment string
|
||||||
|
@ -70,10 +70,10 @@ func (o *Telemetry) Shutdown(ctx context.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetOnContext(o *Telemetry, ctx context.Context) 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 {
|
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) {
|
func newSpanExporter(ctx context.Context, opts Opts) (sdktrace.SpanExporter, error) {
|
||||||
|
|
Loading…
Reference in a new issue