diff --git a/ddtrace/tracer/log.go b/ddtrace/tracer/log.go index 71dc2e9f74..e15e81c800 100644 --- a/ddtrace/tracer/log.go +++ b/ddtrace/tracer/log.go @@ -157,7 +157,7 @@ func logStartup(t *tracer) { PropagationStyleExtract: extractorNames, TracingAsTransport: t.config.tracingAsTransport, DogstatsdAddr: t.config.dogstatsdAddr, - DataStreamsEnabled: t.config.dataStreamsMonitoringEnabled, + DataStreamsEnabled: t.config.internalConfig.DataStreamsMonitoringEnabled(), } if _, _, err := samplingRulesFromEnv(); err != nil { info.SamplingRulesError = err.Error() diff --git a/ddtrace/tracer/option.go b/ddtrace/tracer/option.go index 0ce39ee3a7..de1359fc69 100644 --- a/ddtrace/tracer/option.go +++ b/ddtrace/tracer/option.go @@ -293,9 +293,6 @@ type config struct { // statsComputationEnabled enables client-side stats computation (aka trace metrics). statsComputationEnabled bool - // dataStreamsMonitoringEnabled specifies whether the tracer should enable monitoring of data streams - dataStreamsMonitoringEnabled bool - // orchestrionCfg holds Orchestrion (aka auto-instrumentation) configuration. // Only used for telemetry currently. orchestrionCfg orchestrionConfig @@ -501,7 +498,6 @@ func newConfig(opts ...StartOption) (*config, error) { c.spanTimeout = internal.DurationEnv("DD_TRACE_ABANDONED_SPAN_TIMEOUT", 10*time.Minute) } c.statsComputationEnabled = internal.BoolEnv("DD_TRACE_STATS_COMPUTATION_ENABLED", true) - c.dataStreamsMonitoringEnabled, _, _ = stableconfig.Bool("DD_DATA_STREAMS_ENABLED", false) c.partialFlushEnabled = internal.BoolEnv("DD_TRACE_PARTIAL_FLUSH_ENABLED", false) c.partialFlushMinSpans = internal.IntEnv("DD_TRACE_PARTIAL_FLUSH_MIN_SPANS", partialFlushMinSpansDefault) if c.partialFlushMinSpans <= 0 { diff --git a/ddtrace/tracer/tracer.go b/ddtrace/tracer/tracer.go index 33b0541830..a132067b1e 100644 --- a/ddtrace/tracer/tracer.go +++ b/ddtrace/tracer/tracer.go @@ -431,7 +431,7 @@ func newUnstartedTracer(opts ...StartOption) (t *tracer, err error) { c.traceSampleRules = newDynamicConfig("trace_sample_rules", c.traceRules, rulesSampler.traces.setTraceSampleRules, EqualsFalseNegative) var dataStreamsProcessor *datastreams.Processor - if c.dataStreamsMonitoringEnabled { + if c.internalConfig.DataStreamsMonitoringEnabled() { dataStreamsProcessor = datastreams.NewProcessor(statsd, c.env, c.serviceName, c.version, c.agentURL, c.httpClient) } var logFile *log.ManagedFile diff --git a/internal/config/config.go b/internal/config/config.go index 143e1adf78..b6ff17bafe 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -134,3 +134,16 @@ func (c *Config) SetDebug(enabled bool, origin telemetry.Origin) { c.debug = enabled telemetry.RegisterAppConfig("DD_TRACE_DEBUG", enabled, origin) } + +func (c *Config) DataStreamsMonitoringEnabled() bool { + c.mu.RLock() + defer c.mu.RUnlock() + return c.dataStreamsMonitoringEnabled +} + +func (c *Config) SetDataStreamsMonitoringEnabled(enabled bool, origin telemetry.Origin) { + c.mu.Lock() + defer c.mu.Unlock() + c.dataStreamsMonitoringEnabled = enabled + telemetry.RegisterAppConfig("DD_DATA_STREAMS_ENABLED", enabled, origin) +}