github.com/epsagon/epsagon-go@v1.39.0/example/generic_go_function/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "log" 6 7 "github.com/epsagon/epsagon-go/epsagon" 8 ) 9 10 func doTask(a int, b string) (int, error) { 11 log.Printf("inside doTask: b = %s", b) 12 return a + 1, fmt.Errorf("boom") 13 } 14 15 func main() { 16 // Normal call 17 res, err := doTask(3, "world") 18 if err != nil { 19 log.Printf("First result is %d", res) 20 } else { 21 log.Printf("error was: %v", err) 22 } 23 24 // With Epsagon instrumentation 25 config := epsagon.NewTracerConfig("generic-go-wrapper", "") 26 config.Debug = true 27 response := epsagon.GoWrapper(config, doTask)(5, "hello") 28 res2 := response[0].Int() 29 errInterface := response[1].Interface() 30 if errInterface == nil { 31 log.Printf("Result was %d", res2) 32 } else { 33 err := errInterface.(error) 34 log.Printf("error was: %v", err) 35 } 36 }