Total Lines | 48 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | package infrastructures |
||
2 | |||
3 | import ( |
||
4 | "context" |
||
5 | |||
6 | "github.com/getsentry/sentry-go" |
||
7 | sentryotel "github.com/getsentry/sentry-go/otel" |
||
8 | "github.com/memnix/memnix-rest/config" |
||
9 | "github.com/uptrace/opentelemetry-go-extra/otelzap" |
||
10 | "go.opentelemetry.io/otel" |
||
11 | sdktrace "go.opentelemetry.io/otel/sdk/trace" |
||
12 | "go.opentelemetry.io/otel/trace" |
||
13 | "go.uber.org/zap" |
||
14 | ) |
||
15 | |||
16 | var fiberTracer = otel.Tracer("fiber-server") |
||
17 | |||
18 | func InitTracer(cfg config.SentryConfigStruct) error { |
||
19 | initSentry(cfg) |
||
20 | |||
21 | tp := sdktrace.NewTracerProvider( |
||
22 | sdktrace.WithSpanProcessor(sentryotel.NewSentrySpanProcessor()), |
||
23 | ) |
||
24 | otel.SetTracerProvider(tp) |
||
25 | otel.SetTextMapPropagator(sentryotel.NewSentryPropagator()) |
||
26 | |||
27 | return nil |
||
28 | } |
||
29 | |||
30 | func ShutdownTracer() error { |
||
31 | return nil |
||
32 | } |
||
33 | |||
34 | func GetFiberTracer() trace.Tracer { |
||
35 | return fiberTracer |
||
36 | } |
||
37 | |||
38 | func initSentry(cfg config.SentryConfigStruct) { |
||
39 | otelzap.Ctx(context.Background()).Info("Initializing Sentry :", zap.Float64("traces_sample_rate", cfg.TracesSampleRate), zap.Float64("profiles_sample_rate", cfg.ProfilesSampleRate)) |
||
40 | _ = sentry.Init(sentry.ClientOptions{ |
||
41 | Dsn: cfg.DSN, |
||
42 | Debug: cfg.Debug, |
||
43 | AttachStacktrace: true, |
||
44 | Environment: cfg.Environment, |
||
45 | Release: cfg.Release, |
||
46 | EnableTracing: true, |
||
47 | TracesSampleRate: cfg.TracesSampleRate, |
||
48 | ProfilesSampleRate: cfg.ProfilesSampleRate, |
||
49 | }) |
||
51 |