From 372f4367edfbe221f7cb0d0fb214e89fdef07a9e Mon Sep 17 00:00:00 2001 From: Natalia Goc Date: Mon, 20 May 2024 11:04:36 +0200 Subject: [PATCH] allow retrieving spans from fiber.Ctx --- example/main.go | 6 ++++++ pkg/fiber_tracing/fiber_tracing.go | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/example/main.go b/example/main.go index 5522b43..2e05b01 100644 --- a/example/main.go +++ b/example/main.go @@ -39,6 +39,12 @@ func main() { })) defer tracing.ShutdownTracer() + main.Use(func(c *fiber.Ctx) error { + span := tracing.SpanFromContext(c) + span.AddEvent("pushed into a span an event from middleware") + return c.Next() + }) + main.Get("/", Handler) // handle interrupts (shutdown) diff --git a/pkg/fiber_tracing/fiber_tracing.go b/pkg/fiber_tracing/fiber_tracing.go index fb9535c..3e9cf78 100644 --- a/pkg/fiber_tracing/fiber_tracing.go +++ b/pkg/fiber_tracing/fiber_tracing.go @@ -49,6 +49,12 @@ func FStart(c *fiber.Ctx, opts ...trace.SpanStartOption) (context.Context, trace return fiberOpentelemetry.Tracer.Start(ctx, c.Method()+" "+c.Path(), opts...) } +// Retrieve span using [fiber.Ctx] +func SpanFromContext(c *fiber.Ctx) trace.Span { + ctx := fiberOpentelemetry.FromCtx(c) + return trace.SpanFromContext(ctx) +} + func NewMiddleware(config Config) func(*fiber.Ctx) error { var tracerProviders []trc.TracerProviderOption