github.com/replit/upm@v0.0.0-20240423230255-9ce4fc3ea24c/internal/trace/test_cli/test_cli.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 "os/exec" 7 8 "github.com/replit/upm/internal/trace" 9 "gopkg.in/DataDog/dd-trace-go.v1/ddtrace" 10 "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" 11 ) 12 13 func main() { 14 tracer.Start( 15 tracer.WithService("upm_wrapper"), 16 ) 17 defer tracer.Stop() 18 19 span := tracer.StartSpan("upm_wrapper") 20 defer span.Finish() 21 var traceID string 22 var spanID string 23 if w3Cctx, ok := span.Context().(ddtrace.SpanContextW3C); ok { 24 traceID = trace.GetHexTraceID(w3Cctx) 25 spanID = trace.GetHexSpanID(w3Cctx) 26 } 27 28 cmd := exec.Command("upm", "guess", "-a", "-f", "-l", "nodejs") 29 cmd.Env = os.Environ() 30 cmd.Env = append(cmd.Env, "UPM_TRACE=1") 31 cmd.Env = append(cmd.Env, "REPL_ID=ABCDE") 32 cmd.Env = append(cmd.Env, fmt.Sprintf("DD_TRACE_ID=%s", traceID)) 33 cmd.Env = append(cmd.Env, fmt.Sprintf("DD_SPAN_ID=%s", spanID)) 34 35 stdout, err := cmd.Output() 36 37 if err != nil { 38 fmt.Println(err.Error()) 39 return 40 } 41 42 // Print the output 43 fmt.Println(string(stdout)) 44 }