Skip to content

Commit eb7f97f

Browse files
nipsufnory-bot
authored andcommitted
fix: otlp sampling rate default
GitOrigin-RevId: 8a01bded7d8eca0ac3a81de793286144aab16426
1 parent 2a9de87 commit eb7f97f

File tree

7 files changed

+39
-18
lines changed

7 files changed

+39
-18
lines changed

oryx/configx/provider.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,17 @@ func (p *Provider) Float64F(key string, fallback float64) (val float64) {
412412
return p.Float64(key)
413413
}
414414

415+
func (p *Provider) Float64PtrF(key string, fallback float64) (val *float64) {
416+
p.l.RLock()
417+
defer p.l.RUnlock()
418+
419+
if !p.Koanf.Exists(key) {
420+
return &fallback
421+
}
422+
out := p.Float64(key)
423+
return &out
424+
}
425+
415426
func (p *Provider) DurationF(key string, fallback time.Duration) (val time.Duration) {
416427
p.l.RLock()
417428
defer p.l.RUnlock()
@@ -471,21 +482,21 @@ func (p *Provider) TracingConfig(serviceName string) *otelx.Config {
471482
Jaeger: otelx.JaegerConfig{
472483
Sampling: otelx.JaegerSampling{
473484
ServerURL: p.String("tracing.providers.jaeger.sampling.server_url"),
474-
TraceIdRatio: p.Float64F("tracing.providers.jaeger.sampling.trace_id_ratio", 1),
485+
TraceIdRatio: p.Float64PtrF("tracing.providers.jaeger.sampling.trace_id_ratio", 1.0),
475486
},
476487
LocalAgentAddress: p.String("tracing.providers.jaeger.local_agent_address"),
477488
},
478489
Zipkin: otelx.ZipkinConfig{
479490
ServerURL: p.String("tracing.providers.zipkin.server_url"),
480491
Sampling: otelx.ZipkinSampling{
481-
SamplingRatio: p.Float64("tracing.providers.zipkin.sampling.sampling_ratio"),
492+
SamplingRatio: p.Float64PtrF("tracing.providers.zipkin.sampling.sampling_ratio",0.0),
482493
},
483494
},
484495
OTLP: otelx.OTLPConfig{
485496
ServerURL: p.String("tracing.providers.otlp.server_url"),
486497
Insecure: p.Bool("tracing.providers.otlp.insecure"),
487498
Sampling: otelx.OTLPSampling{
488-
SamplingRatio: p.Float64F("tracing.providers.otlp.sampling.sampling_ratio", 1),
499+
SamplingRatio: p.Float64PtrF("tracing.providers.otlp.sampling.sampling_ratio", 1.0),
489500
},
490501
AuthorizationHeader: p.String("tracing.providers.otlp.authorization_header"),
491502
},

oryx/go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ require (
209209
google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4 // indirect
210210
gopkg.in/yaml.v2 v2.4.0 // indirect
211211
gopkg.in/yaml.v3 v3.0.1 // indirect
212+
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397
212213
sigs.k8s.io/yaml v1.4.0 // indirect
213214
)
214215

oryx/go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -724,5 +724,7 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
724724
gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
725725
gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
726726
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
727+
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y=
728+
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
727729
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
728730
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=

oryx/otelx/config.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,16 @@ type OTLPConfig struct {
2727
}
2828

2929
type JaegerSampling struct {
30-
ServerURL string `json:"server_url"`
31-
TraceIdRatio float64 `json:"trace_id_ratio"`
30+
ServerURL string `json:"server_url"`
31+
TraceIdRatio *float64 `json:"trace_id_ratio"`
3232
}
3333

3434
type ZipkinSampling struct {
35-
SamplingRatio float64 `json:"sampling_ratio"`
35+
SamplingRatio *float64 `json:"sampling_ratio"`
3636
}
3737

3838
type OTLPSampling struct {
39-
SamplingRatio float64 `json:"sampling_ratio"`
39+
SamplingRatio *float64 `json:"sampling_ratio"`
4040
}
4141

4242
type ProvidersConfig struct {
@@ -61,6 +61,7 @@ const ConfigSchemaID = "ory://tracing-config"
6161
// The interface is specified instead of `jsonschema.Compiler` to allow the use of any jsonschema library fork or version.
6262
func AddConfigSchema(c interface {
6363
AddResource(url string, r io.Reader) error
64-
}) error {
64+
},
65+
) error {
6566
return c.AddResource(ConfigSchemaID, bytes.NewBufferString(ConfigSchema))
6667
}

oryx/otelx/jaeger.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,13 @@ func SetupJaeger(t *Tracer, tracerName string, c *Config) (trace.Tracer, error)
5151
}
5252

5353
samplingServerURL := c.Providers.Jaeger.Sampling.ServerURL
54-
traceIdRatio := c.Providers.Jaeger.Sampling.TraceIdRatio
55-
56-
sampler := sdktrace.TraceIDRatioBased(traceIdRatio)
5754

55+
var sampler sdktrace.Sampler
56+
if c.Providers.Jaeger.Sampling.TraceIdRatio != nil {
57+
sampler = sdktrace.TraceIDRatioBased(*c.Providers.Jaeger.Sampling.TraceIdRatio)
58+
} else {
59+
sampler = sdktrace.TraceIDRatioBased(1)
60+
}
5861
if samplingServerURL != "" {
5962
sampler = jaegerremote.New(
6063
"jaegerremote",

oryx/otelx/otlp.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,18 @@ func SetupOTLP(t *Tracer, tracerName string, c *Config) (trace.Tracer, error) {
4141
if err != nil {
4242
return nil, err
4343
}
44-
44+
var sampler sdktrace.Sampler
45+
if c.Providers.OTLP.Sampling.SamplingRatio != nil {
46+
sampler = sdktrace.ParentBased(sdktrace.TraceIDRatioBased(*c.Providers.OTLP.Sampling.SamplingRatio))
47+
}
4548
tpOpts := []sdktrace.TracerProviderOption{
4649
sdktrace.WithBatcher(exp),
4750
sdktrace.WithResource(resource.NewWithAttributes(
4851
semconv.SchemaURL,
4952
semconv.ServiceName(c.ServiceName),
5053
semconv.DeploymentEnvironmentName(c.DeploymentEnvironment),
5154
)),
52-
sdktrace.WithSampler(sdktrace.ParentBased(sdktrace.TraceIDRatioBased(
53-
c.Providers.OTLP.Sampling.SamplingRatio,
54-
))),
55+
sdktrace.WithSampler(sampler),
5556
}
5657

5758
tp := sdktrace.NewTracerProvider(tpOpts...)

oryx/otelx/zipkin.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,18 @@ func SetupZipkin(t *Tracer, tracerName string, c *Config) (trace.Tracer, error)
1818
return nil, err
1919
}
2020

21+
var sampler sdktrace.Sampler
22+
if c.Providers.Zipkin.Sampling.SamplingRatio != nil {
23+
sampler = sdktrace.ParentBased(sdktrace.TraceIDRatioBased(*c.Providers.Zipkin.Sampling.SamplingRatio))
24+
}
2125
tpOpts := []sdktrace.TracerProviderOption{
2226
sdktrace.WithBatcher(exp),
2327
sdktrace.WithResource(resource.NewWithAttributes(
2428
semconv.SchemaURL,
2529
semconv.ServiceName(c.ServiceName),
2630
semconv.DeploymentEnvironmentName(c.DeploymentEnvironment),
2731
)),
28-
sdktrace.WithSampler(sdktrace.ParentBased(sdktrace.TraceIDRatioBased(
29-
c.Providers.Zipkin.Sampling.SamplingRatio,
30-
))),
32+
sdktrace.WithSampler(sampler),
3133
}
3234

3335
tp := sdktrace.NewTracerProvider(tpOpts...)

0 commit comments

Comments
 (0)