@@ -20,9 +20,9 @@ import (
20
20
semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
21
21
)
22
22
23
- func RegisterTracing (ctx context.Context , log logr.Logger ) error {
23
+ func RegisterTracing (ctx context.Context , samplingRate float64 , log logr.Logger ) error {
24
24
25
- tracerProvider , err := SetUpTracing (ctx )
25
+ tracerProvider , err := SetUpTracing (ctx , samplingRate )
26
26
if err != nil {
27
27
return err
28
28
}
@@ -64,7 +64,7 @@ func newExporter(ctx context.Context) (*otlptrace.Exporter, error) {
64
64
return traceExporter , nil
65
65
}
66
66
67
- func SetUpTracing (ctx context.Context ) (* trace.TracerProvider , error ) {
67
+ func SetUpTracing (ctx context.Context , samplingRate float64 ) (* trace.TracerProvider , error ) {
68
68
69
69
traceExporter , err := newExporter (ctx )
70
70
@@ -89,9 +89,8 @@ func SetUpTracing(ctx context.Context) (*trace.TracerProvider, error) {
89
89
traceProvider := trace .NewTracerProvider (
90
90
trace .WithBatcher (traceExporter ),
91
91
trace .WithResource (resource ),
92
- // TODO: dynamic sampling rate?
93
- // sampling rate based on parent span = 60%
94
- trace .WithSampler (trace .ParentBased (trace .TraceIDRatioBased (0.6 ))),
92
+ // 0 < samplingRate <= 1 (< 0 -> be treated as 0; >= 1 -> always sample)
93
+ trace .WithSampler (trace .ParentBased (trace .TraceIDRatioBased (samplingRate ))),
95
94
)
96
95
97
96
otel .SetTracerProvider (traceProvider )
0 commit comments