Documentation
¶
Overview ¶
Package resty (go-resty) is a plugin that can be used to trace GO Resty framework.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewGoResty ¶
NewGoResty returns a resty Client with tracer
Example ¶
package main
import (
"fmt"
"log"
"net/http"
"net/http/httptest"
"time"
"github.com/SkyAPM/go2sky"
httpPlugin "github.com/SkyAPM/go2sky/plugins/http"
"github.com/SkyAPM/go2sky/reporter"
)
func main() {
// Use log reporter for production
r, err := reporter.NewLogReporter()
if err != nil {
log.Fatalf("new reporter error %v \n", err)
}
defer r.Close()
tracer, err := go2sky.NewTracer("example", go2sky.WithReporter(r))
if err != nil {
log.Fatalf("create tracer error %v \n", err)
}
sm, err := httpPlugin.NewServerMiddleware(tracer)
if err != nil {
log.Fatalf("create server middleware error %v \n", err)
}
// create test server
ts := httptest.NewServer(sm(endFunc()))
defer ts.Close()
// create resty client
client := NewGoResty(tracer)
resp, err := client.R().Get(fmt.Sprintf("%s/end", ts.URL))
if err != nil {
log.Fatalf("unable to do http request: %+v\n", err)
}
_ = resp.RawResponse.Body.Close()
time.Sleep(time.Second)
}
func endFunc() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
log.Printf("end func called with method: %s\n", r.Method)
time.Sleep(50 * time.Millisecond)
}
}
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.