github.com/epsagon/epsagon-go@v1.39.0/example/label_example/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 13 // This label will be viewable in Epsagon dashboard 14 epsagon.Label("my_key", 100.12) 15 return a + 1, fmt.Errorf("boom") 16 } 17 18 func main() { 19 // Normal call 20 res, err := doTask(3, "world") 21 if err != nil { 22 log.Printf("First result is %d", res) 23 } else { 24 log.Printf("error was: %v", err) 25 } 26 27 // With Epsagon instrumentation 28 config := epsagon.NewTracerConfig("generic-go-wrapper", "") 29 config.Debug = true 30 response := epsagon.GoWrapper(config, doTask)(5, "hello") 31 res2 := response[0].Int() 32 errInterface := response[1].Interface() 33 if errInterface == nil { 34 log.Printf("Result was %d", res2) 35 } else { 36 err := errInterface.(error) 37 log.Printf("error was: %v", err) 38 } 39 }