package unitel import ( "context" "github.com/getsentry/sentry-go" "github.com/gofiber/fiber/v2" ) func GetHubFromFiberContext(ctx *fiber.Ctx) *sentry.Hub { return sentry.GetHubFromContext(ctx.UserContext()) } func MustGetHubFromContext(ctx context.Context) *sentry.Hub { hub := sentry.GetHubFromContext(ctx) if hub == nil { panic("sentry hub not found in context") } return hub } func AddBreadcrumbToFiberCtx(c *fiber.Ctx, breadcrumb *sentry.Breadcrumb, hint *sentry.BreadcrumbHint) { if hub := GetHubFromFiberContext(c); hub != nil { hub.AddBreadcrumb(breadcrumb, hint) } } func AddBreadcrumbToContext(c context.Context, breadcrumb *sentry.Breadcrumb) { if hub := sentry.GetHubFromContext(c); hub != nil { hub.AddBreadcrumb(breadcrumb, nil) } } func (o *Telemetry) Trace(ctx context.Context, op string, options []SpanStartOpt, fn func(context.Context)) { tx := o.StartSpan(ctx, op, op, options...) defer tx.End() fn(tx.Context()) }