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
2 changes: 1 addition & 1 deletion ddtrace/tracer/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ func logStartup(t *tracer) {
Lang: "Go",
LangVersion: runtime.Version(),
Env: t.config.internalConfig.Env(),
Service: t.config.serviceName,
Service: t.config.internalConfig.ServiceName(),
AgentURL: agentURL,
Debug: t.config.internalConfig.Debug(),
AnalyticsEnabled: !math.IsNaN(globalconfig.AnalyticsRate()),
Expand Down
33 changes: 14 additions & 19 deletions ddtrace/tracer/option.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,9 +163,6 @@ type config struct {
// failure.
sendRetries int

// serviceName specifies the name of this application.
serviceName string

// universalVersion, reports whether span service name and config service name
// should match to set application version tag. False by default
universalVersion bool
Expand Down Expand Up @@ -310,10 +307,6 @@ func newConfig(opts ...StartOption) (*config, error) {
return c, fmt.Errorf("unable to look up hostname: %s", err.Error())
}
}
if v := getDDorOtelConfig("service"); v != "" {
c.serviceName = v
globalconfig.SetServiceName(v)
}
c.headerAsTags = newDynamicConfig("trace_header_tags", nil, setHeaderTags, equalSlice[string])
if v := env.Get("DD_TRACE_HEADER_TAGS"); v != "" {
c.headerAsTags.update(strings.Split(v, ","), telemetry.OriginEnvVar)
Expand Down Expand Up @@ -410,17 +403,19 @@ func newConfig(opts ...StartOption) (*config, error) {
}
}
}
if c.serviceName == "" {
if c.internalConfig.ServiceName() == "" {
if v, ok := globalTags["service"]; ok {
if s, ok := v.(string); ok {
c.serviceName = s
c.internalConfig.SetServiceName(s, c.globalTags.Origin())
globalconfig.SetServiceName(s)
}
} else {
// There is not an explicit service set, default to binary name.
// In this case, don't set a global service name so the contribs continue using their defaults.
c.serviceName = filepath.Base(os.Args[0])
c.internalConfig.SetServiceName(filepath.Base(os.Args[0]), internalconfig.OriginDefault)
}
} else {
globalconfig.SetServiceName(c.internalConfig.ServiceName())
}
if c.transport == nil {
c.transport = newHTTPTransport(c.internalConfig.AgentURL().String(), c.httpClient)
Expand Down Expand Up @@ -494,7 +489,7 @@ func newConfig(opts ...StartOption) (*config, error) {
c.llmobs.TracerConfig = llmobsconfig.TracerConfig{
DDTags: c.globalTags.get(),
Env: c.internalConfig.Env(),
Service: c.serviceName,
Service: c.internalConfig.ServiceName(),
Version: c.internalConfig.Version(),
AgentURL: c.internalConfig.AgentURL(),
APIKey: env.Get("DD_API_KEY"),
Expand Down Expand Up @@ -851,11 +846,11 @@ func statsTags(c *config) []string {
"lang:go",
"lang_version:" + runtime.Version(),
}
if c.internalConfig.Env() != "" {
tags = append(tags, "env:"+c.internalConfig.Env())
if v := c.internalConfig.Env(); v != "" {
tags = append(tags, "env:"+v)
}
if hostname := c.internalConfig.Hostname(); hostname != "" {
tags = append(tags, "host:"+hostname)
if v := c.internalConfig.Hostname(); v != "" {
tags = append(tags, "host:"+v)
}
for k, v := range c.globalTags.get() {
if vstr, ok := v.(string); ok {
Expand All @@ -864,8 +859,8 @@ func statsTags(c *config) []string {
}
globalconfig.SetStatsTags(tags)
tags = append(tags, "tracer_version:"+version.Tag)
if c.serviceName != "" {
tags = append(tags, "service:"+c.serviceName)
if v := c.internalConfig.ServiceName(); v != "" {
tags = append(tags, "service:"+v)
}
return tags
}
Expand Down Expand Up @@ -967,8 +962,8 @@ func WithPropagator(p Propagator) StartOption {
// WithService sets the default service name for the program.
func WithService(name string) StartOption {
return func(c *config) {
c.serviceName = name
globalconfig.SetServiceName(c.serviceName)
c.internalConfig.SetServiceName(name, internalconfig.OriginCode)
globalconfig.SetServiceName(name)
}
}

Expand Down
28 changes: 14 additions & 14 deletions ddtrace/tracer/option_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,7 @@ func TestTracerOptionsDefaults(t *testing.T) {
c, err := newTestConfig()
assert.NoError(err)
assert.Equal(float64(1), c.sampler.Rate())
assert.Regexp(`tracer\.test(\.exe)?`, c.serviceName)
assert.Regexp(`tracer\.test(\.exe)?`, c.internalConfig.ServiceName())
assert.Equal(&url.URL{Scheme: "http", Host: "localhost:8126"}, c.internalConfig.RawAgentURL())
assert.Equal("localhost:8125", c.dogstatsdAddr)
assert.Nil(nil, c.httpClient)
Expand Down Expand Up @@ -1106,7 +1106,7 @@ func TestServiceName(t *testing.T) {
WithService("api-intake"),
)
assert.NoError(err)
assert.Equal("api-intake", c.serviceName)
assert.Equal("api-intake", c.internalConfig.ServiceName())
assert.Equal("api-intake", globalconfig.ServiceName())
})

Expand All @@ -1117,7 +1117,7 @@ func TestServiceName(t *testing.T) {
c, err := newTestConfig()

assert.NoError(err)
assert.Equal("api-intake", c.serviceName)
assert.Equal("api-intake", c.internalConfig.ServiceName())
assert.Equal("api-intake", globalconfig.ServiceName())
})

Expand All @@ -1130,7 +1130,7 @@ func TestServiceName(t *testing.T) {
c, err := newTestConfig()
assert.NoError(err)

assert.Equal("api-intake", c.serviceName)
assert.Equal("api-intake", c.internalConfig.ServiceName())
assert.Equal("api-intake", globalconfig.ServiceName())
})

Expand All @@ -1139,7 +1139,7 @@ func TestServiceName(t *testing.T) {
assert := assert.New(t)
c, err := newTestConfig(WithGlobalTag("service", "api-intake"))
assert.NoError(err)
assert.Equal("api-intake", c.serviceName)
assert.Equal("api-intake", c.internalConfig.ServiceName())
assert.Equal("api-intake", globalconfig.ServiceName())
})

Expand All @@ -1152,7 +1152,7 @@ func TestServiceName(t *testing.T) {
c, err := newTestConfig()
assert.NoError(err)

assert.Equal("api-intake", c.serviceName)
assert.Equal("api-intake", c.internalConfig.ServiceName())
assert.Equal("api-intake", globalconfig.ServiceName())
})

Expand All @@ -1163,7 +1163,7 @@ func TestServiceName(t *testing.T) {
c, err := newTestConfig()
assert.NoError(err)

assert.Equal("api-intake", c.serviceName)
assert.Equal("api-intake", c.internalConfig.ServiceName())
assert.Equal("api-intake", globalconfig.ServiceName())
})

Expand All @@ -1175,47 +1175,47 @@ func TestServiceName(t *testing.T) {
globalconfig.SetServiceName("")
c, err := newTestConfig()
assert.NoError(err)
assert.Equal(c.serviceName, filepath.Base(os.Args[0]))
assert.Equal(c.internalConfig.ServiceName(), filepath.Base(os.Args[0]))
assert.Equal("", globalconfig.ServiceName())

t.Setenv("OTEL_RESOURCE_ATTRIBUTES", "service.name=testService6")
globalconfig.SetServiceName("")
c, err = newTestConfig()
assert.NoError(err)
assert.Equal(c.serviceName, "testService6")
assert.Equal(c.internalConfig.ServiceName(), "testService6")
assert.Equal("testService6", globalconfig.ServiceName())

t.Setenv("DD_TAGS", "service:testService")
globalconfig.SetServiceName("")
c, err = newTestConfig()
assert.NoError(err)
assert.Equal(c.serviceName, "testService")
assert.Equal(c.internalConfig.ServiceName(), "testService")
assert.Equal("testService", globalconfig.ServiceName())

globalconfig.SetServiceName("")
c, err = newTestConfig(WithGlobalTag("service", "testService2"))
assert.NoError(err)
assert.Equal(c.serviceName, "testService2")
assert.Equal(c.internalConfig.ServiceName(), "testService2")
assert.Equal("testService2", globalconfig.ServiceName())

t.Setenv("OTEL_SERVICE_NAME", "testService3")
globalconfig.SetServiceName("")
c, err = newTestConfig(WithGlobalTag("service", "testService2"))
assert.NoError(err)
assert.Equal(c.serviceName, "testService3")
assert.Equal(c.internalConfig.ServiceName(), "testService3")
assert.Equal("testService3", globalconfig.ServiceName())

t.Setenv("DD_SERVICE", "testService4")
globalconfig.SetServiceName("")
c, err = newTestConfig(WithGlobalTag("service", "testService2"), WithService("testService4"))
assert.NoError(err)
assert.Equal(c.serviceName, "testService4")
assert.Equal(c.internalConfig.ServiceName(), "testService4")
assert.Equal("testService4", globalconfig.ServiceName())

globalconfig.SetServiceName("")
c, err = newTestConfig(WithGlobalTag("service", "testService2"), WithService("testService5"))
assert.NoError(err)
assert.Equal(c.serviceName, "testService5")
assert.Equal(c.internalConfig.ServiceName(), "testService5")
assert.Equal("testService5", globalconfig.ServiceName())
})
}
Expand Down
4 changes: 2 additions & 2 deletions ddtrace/tracer/telemetry.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func startTelemetry(c *config) telemetry.Client {
{Name: "send_retries", Value: c.sendRetries},
{Name: "retry_interval", Value: c.internalConfig.RetryInterval()},
{Name: "trace_startup_logs_enabled", Value: c.internalConfig.LogStartup()},
{Name: "service", Value: c.serviceName},
{Name: "service", Value: c.internalConfig.ServiceName()},
{Name: "universal_version", Value: c.universalVersion},
{Name: "env", Value: c.internalConfig.Env()},
{Name: "version", Value: c.internalConfig.Version()},
Expand Down Expand Up @@ -125,7 +125,7 @@ func startTelemetry(c *config) telemetry.Client {
if c.internalConfig.LogToStdout() || c.ciVisibilityAgentless {
cfg.APIKey = env.Get("DD_API_KEY")
}
client, err := telemetry.NewClient(c.serviceName, c.internalConfig.Env(), c.internalConfig.Version(), cfg)
client, err := telemetry.NewClient(c.internalConfig.ServiceName(), c.internalConfig.Env(), c.internalConfig.Version(), cfg)
if err != nil {
log.Debug("tracer: failed to create telemetry client: %s", err.Error())
return nil
Expand Down
14 changes: 7 additions & 7 deletions ddtrace/tracer/tracer.go
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ func Start(opts ...StartOption) error {
cfg.AppVersion = t.config.internalConfig.Version()
cfg.Env = t.config.internalConfig.Env()
cfg.HTTP = t.config.httpClient
cfg.ServiceName = t.config.serviceName
cfg.ServiceName = t.config.internalConfig.ServiceName()
if t.config.agent.load().hasRemoteConfig {
if err := t.startRemoteConfig(cfg); err != nil {
log.Warn("Remote config startup error: %s", err.Error())
Expand Down Expand Up @@ -325,7 +325,7 @@ func storeConfig(c *config) {
Language: "go",
Version: version.Tag,
Hostname: c.internalConfig.Hostname(),
ServiceName: c.serviceName,
ServiceName: c.internalConfig.ServiceName(),
ServiceEnvironment: c.internalConfig.Env(),
ServiceVersion: c.internalConfig.Version(),
ProcessTags: processtags.GlobalTags().String(),
Expand All @@ -342,7 +342,7 @@ func storeConfig(c *config) {
DeploymentEnvironmentName: c.internalConfig.Env(),
HostName: c.internalConfig.Hostname(),
ServiceInstanceID: globalconfig.RuntimeID(),
ServiceName: c.serviceName,
ServiceName: c.internalConfig.ServiceName(),
ServiceVersion: c.internalConfig.Version(),
TelemetrySDKLanguage: "go",
TelemetrySDKVersion: version.Tag,
Expand Down Expand Up @@ -452,7 +452,7 @@ func newUnstartedTracer(opts ...StartOption) (t *tracer, err error) {
rulesSampler.traces.setTraceSampleRules, EqualsFalseNegative)
var dataStreamsProcessor *datastreams.Processor
if c.internalConfig.DataStreamsMonitoringEnabled() {
dataStreamsProcessor = datastreams.NewProcessor(statsd, c.internalConfig.Env(), c.serviceName, c.internalConfig.Version(), c.internalConfig.AgentURL(), c.httpClient)
dataStreamsProcessor = datastreams.NewProcessor(statsd, c.internalConfig.Env(), c.internalConfig.ServiceName(), c.internalConfig.Version(), c.internalConfig.AgentURL(), c.httpClient)
}
var logFile *log.ManagedFile
if v := c.internalConfig.LogDirectory(); v != "" {
Expand Down Expand Up @@ -858,7 +858,7 @@ func (t *tracer) StartSpan(operationName string, options ...StartSpanOption) *Sp
}
span := spanStart(operationName, options...)
if span.service == "" {
span.service = t.config.serviceName
span.service = t.config.internalConfig.ServiceName()
}

cfg := t.config.internalConfig
Expand All @@ -877,7 +877,7 @@ func (t *tracer) StartSpan(operationName string, options ...StartSpanOption) *Sp
}

if ver := cfg.Version(); ver != "" {
if t.config.universalVersion || (!t.config.universalVersion && span.service == t.config.serviceName) {
if t.config.universalVersion || (!t.config.universalVersion && span.service == t.config.internalConfig.ServiceName()) {
span.setMetaInit(ext.Version, ver)
}
}
Expand Down Expand Up @@ -1073,7 +1073,7 @@ func (t *tracer) TracerConf() TracerConf {
PeerServiceMappings: t.config.peerServiceMappings,
EnvTag: t.config.internalConfig.Env(),
VersionTag: t.config.internalConfig.Version(),
ServiceTag: t.config.serviceName,
ServiceTag: t.config.internalConfig.ServiceName(),
TracingAsTransport: t.config.tracingAsTransport,
isLambdaFunction: t.config.internalConfig.IsLambdaFunction(),
}
Expand Down
Loading
Loading