in xray/config.go [133:174]
func ContextWithConfig(ctx context.Context, c Config) (context.Context, error) {
var errors exception.MultiError
daemonEndpoints, er := daemoncfg.GetDaemonEndpointsFromString(c.DaemonAddr)
if daemonEndpoints != nil {
if c.Emitter != nil {
c.Emitter.RefreshEmitterWithAddress(daemonEndpoints.UDPAddr)
}
if c.SamplingStrategy != nil {
configureStrategy(c.SamplingStrategy, daemonEndpoints)
}
} else if er != nil {
errors = append(errors, er)
}
cms := os.Getenv("AWS_XRAY_CONTEXT_MISSING")
if cms != "" {
if cms == ctxmissing.RuntimeErrorStrategy {
cm := ctxmissing.NewDefaultRuntimeErrorStrategy()
c.ContextMissingStrategy = cm
} else if cms == ctxmissing.LogErrorStrategy {
cm := ctxmissing.NewDefaultLogErrorStrategy()
c.ContextMissingStrategy = cm
} else if cms == ctxmissing.IgnoreErrorStrategy {
cm := ctxmissing.NewDefaultIgnoreErrorStrategy()
c.ContextMissingStrategy = cm
}
}
var err error
switch len(errors) {
case 0:
err = nil
case 1:
err = errors[0]
default:
err = errors
}
return context.WithValue(ctx, RecorderContextKey{}, &c), err
}