Skip to content

Commit 0c18487

Browse files
committed
test changes
1 parent 807e89a commit 0c18487

File tree

1 file changed

+33
-7
lines changed

1 file changed

+33
-7
lines changed

internal/trace/listener.go

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"encoding/json"
1414
"fmt"
1515
"os"
16+
"strconv"
1617
"strings"
1718

1819
"github.com/DataDog/datadog-lambda-go/internal/extension"
@@ -55,36 +56,61 @@ var tracerInitialized = false
5556

5657
// MakeListener initializes a new trace lambda Listener
5758
func MakeListener(config Config, extensionManager *extension.ExtensionManager) Listener {
58-
fmt.Printf("MakeListener()")
59+
fmt.Printf("MakeListener()\n")
5960
if config.TracerOptions == nil {
6061
config.TracerOptions = []tracer.StartOption{}
6162
}
6263

6364
// Read DD_TRACE_SAMPLING_RULES first
64-
fmt.Printf("Trying to get sampling rules env var")
65+
fmt.Printf("Trying to get sampling rules env var\n")
6566
var samplingRules []tracer.SamplingRule
6667
if ruleStr := os.Getenv("DD_TRACE_SAMPLING_RULES"); ruleStr != "" {
67-
fmt.Printf("Env: %s", ruleStr)
68+
fmt.Printf("Env: %s\n", ruleStr)
6869
var rules []map[string]interface{}
6970
if err := json.Unmarshal([]byte(ruleStr), &rules); err == nil {
71+
fmt.Printf("Successfully unmarshaled rules: %+v\n", rules)
7072
for _, rule := range rules {
71-
fmt.Printf("Rule: %s", rule)
72-
if rate, ok := rule["sample_rate"].(float64); ok {
73-
fmt.Printf("Appending sampling rule")
73+
fmt.Printf("Processing rule: %+v\n", rule)
74+
if rateVal, ok := rule["sample_rate"]; ok {
75+
fmt.Printf("Found sample_rate of type %T with value %v\n", rateVal, rateVal)
76+
77+
// Try different type conversions
78+
rate, ok := rateVal.(float64)
79+
if !ok {
80+
// Try converting from json.Number
81+
if numStr, ok := rateVal.(json.Number); ok {
82+
rate, _ = numStr.Float64()
83+
fmt.Printf("Converted json.Number to float64: %v\n", rate)
84+
} else if str, ok := rateVal.(string); ok {
85+
rate, _ = strconv.ParseFloat(str, 64)
86+
fmt.Printf("Converted string to float64: %v\n", rate)
87+
}
88+
}
89+
fmt.Printf("Final rate value: %v\n", rate)
7490
samplingRules = append(samplingRules, tracer.RateRule(rate))
7591
}
7692
}
93+
} else {
94+
fmt.Printf("Error unmarshaling rules: %v\n", err)
7795
}
96+
} else {
97+
fmt.Printf("No DD_TRACE_SAMPLING_RULES env var found\n")
7898
}
7999

80100
// If we have sampling rules from environment, add them first
81101
if len(samplingRules) > 0 {
82-
fmt.Printf("Sample rule found, adding.")
102+
fmt.Printf("Adding %d sampling rules to config\n", len(samplingRules))
103+
for i, rule := range samplingRules {
104+
fmt.Printf("Rule %d: %+v\n", i, rule)
105+
}
83106
config.TracerOptions = append([]tracer.StartOption{
84107
tracer.WithSamplingRules(samplingRules),
85108
}, config.TracerOptions...)
86109
}
87110

111+
// Print final config
112+
fmt.Printf("Final config has %d tracer options\n", len(config.TracerOptions))
113+
88114
return Listener{
89115
ddTraceEnabled: config.DDTraceEnabled,
90116
mergeXrayTraces: config.MergeXrayTraces,

0 commit comments

Comments
 (0)