40 lines
964 B
Go
40 lines
964 B
Go
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())
|
|
}
|