@@ -18,7 +18,7 @@ const otelEndpoint = "default-collector.opentelemetry-objects:4317"
18
18
19
19
// SetupOTelSDK bootstraps the OpenTelemetry pipeline.
20
20
// If it does not return an error, make sure to call shutdown for proper cleanup.
21
- func SetupOTelSDK (ctx context.Context ) (shutdown func (context.Context ) error , err error ) {
21
+ func SetupOTelSDK (ctx context.Context , traceSampleRate float64 ) (shutdown func (context.Context ) error , err error ) {
22
22
var shutdownFuncs []func (context.Context ) error
23
23
24
24
// shutdown calls cleanup functions registered via shutdownFuncs.
@@ -48,7 +48,7 @@ func SetupOTelSDK(ctx context.Context) (shutdown func(context.Context) error, er
48
48
shutdownFuncs = append (shutdownFuncs , meterProvider .Shutdown )
49
49
otel .SetMeterProvider (meterProvider )
50
50
51
- tracerProvider , err := newTracerProvider (ctx )
51
+ tracerProvider , err := newTracerProvider (ctx , traceSampleRate )
52
52
if err != nil {
53
53
handleErr (err )
54
54
return
@@ -73,7 +73,7 @@ func newMeterProvider() (*metric.MeterProvider, error) {
73
73
return meterProvider , nil
74
74
}
75
75
76
- func newTracerProvider (ctx context.Context ) (* trace.TracerProvider , error ) {
76
+ func newTracerProvider (ctx context.Context , traceSampleRate float64 ) (* trace.TracerProvider , error ) {
77
77
traceExporter , err := otlptracegrpc .New (ctx , otlptracegrpc .WithInsecure (),
78
78
otlptracegrpc .WithEndpoint (otelEndpoint ),
79
79
)
@@ -82,7 +82,7 @@ func newTracerProvider(ctx context.Context) (*trace.TracerProvider, error) {
82
82
return nil , err
83
83
}
84
84
return trace .NewTracerProvider (
85
- trace .WithSampler (trace .TraceIDRatioBased ( 1.0 )),
85
+ trace .WithSampler (trace .ParentBased ( trace . TraceIDRatioBased ( traceSampleRate ) )),
86
86
trace .WithSpanProcessor (trace .NewBatchSpanProcessor (traceExporter )),
87
87
), nil
88
88
}
0 commit comments