Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions ddtrace/tracer/option.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import (
"github.com/DataDog/dd-trace-go/v2/ddtrace/ext"
"github.com/DataDog/dd-trace-go/v2/internal"
appsecconfig "github.com/DataDog/dd-trace-go/v2/internal/appsec/config"
"github.com/DataDog/dd-trace-go/v2/internal/civisibility/constants"
internalconfig "github.com/DataDog/dd-trace-go/v2/internal/config"
"github.com/DataDog/dd-trace-go/v2/internal/env"
"github.com/DataDog/dd-trace-go/v2/internal/globalconfig"
Expand Down Expand Up @@ -319,9 +318,6 @@ type config struct {
// ciVisibilityAgentless controls if the tracer is loaded with CI Visibility agentless mode. default false
ciVisibilityAgentless bool

// ciVisibilityNoopTracer controls if CI Visibility must set a wrapper to behave like a noop tracer. default false
ciVisibilityNoopTracer bool

// logDirectory is directory for tracer logs specified by user-setting DD_TRACE_LOG_DIRECTORY. default empty/unused
logDirectory string

Expand Down Expand Up @@ -619,7 +615,6 @@ func newConfig(opts ...StartOption) (*config, error) {
ciTransport := newCiVisibilityTransport(c) // Create a default CI Visibility Transport
c.transport = ciTransport // Replace the default transport with the CI Visibility transport
c.ciVisibilityAgentless = ciTransport.agentless
c.ciVisibilityNoopTracer = internal.BoolEnv(constants.CIVisibilityUseNoopTracer, false)
}

// if using stdout or traces are disabled or we are in ci visibility agentless mode, agent is disabled
Expand Down
2 changes: 1 addition & 1 deletion ddtrace/tracer/tracer.go
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ func Start(opts ...StartOption) error {
t.Stop()
return nil
}
if t.config.internalConfig.CiVisibilityEnabled() && t.config.ciVisibilityNoopTracer {
if t.config.internalConfig.CiVisibilityEnabled() && t.config.internalConfig.CiVisibilityNoopTracer() {
setGlobalTracer(wrapWithCiVisibilityNoopTracer(t))
} else {
setGlobalTracer(t)
Expand Down
20 changes: 18 additions & 2 deletions internal/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,10 @@ type Config struct {
dynamicInstrumentationEnabled bool
globalSampleRate float64
// ciVisibilityEnabled controls if the tracer is loaded with CI Visibility mode. default false
ciVisibilityEnabled bool
ciVisibilityAgentless bool
ciVisibilityEnabled bool
ciVisibilityAgentless bool
// ciVisibilityNoopTracer controls if CI Visibility must set a wrapper to behave like a noop tracer
ciVisibilityNoopTracer bool
logDirectory string
traceRateLimitPerSecond float64
}
Expand Down Expand Up @@ -98,6 +100,7 @@ func loadConfig() *Config {
cfg.globalSampleRate = provider.getFloat("DD_TRACE_SAMPLE_RATE", 0.0)
cfg.ciVisibilityEnabled = provider.getBool(constants.CIVisibilityEnabledEnvironmentVariable, false)
cfg.ciVisibilityAgentless = provider.getBool(constants.CIVisibilityAgentlessEnabledEnvironmentVariable, false)
cfg.ciVisibilityNoopTracer = provider.getBool(constants.CIVisibilityUseNoopTracer, false)
cfg.logDirectory = provider.getString("DD_TRACE_LOG_DIRECTORY", "")
cfg.traceRateLimitPerSecond = provider.getFloat("DD_TRACE_RATE_LIMIT", 0.0)

Expand Down Expand Up @@ -149,3 +152,16 @@ func (c *Config) SetCiVisibilityEnabled(enabled bool, origin telemetry.Origin) {
c.ciVisibilityEnabled = enabled
telemetry.RegisterAppConfig(constants.CIVisibilityEnabledEnvironmentVariable, enabled, origin)
}

func (c *Config) CiVisibilityNoopTracer() bool {
c.mu.RLock()
defer c.mu.RUnlock()
return c.ciVisibilityNoopTracer
}

func (c *Config) SetCiVisibilityNoopTracer(enabled bool, origin telemetry.Origin) {
c.mu.Lock()
defer c.mu.Unlock()
c.ciVisibilityNoopTracer = enabled
telemetry.RegisterAppConfig(constants.CIVisibilityUseNoopTracer, enabled, origin)
}
Loading