go-stdlib
go-stdlib copied to clipboard
OpenTracing instrumentation for packages in the Go stdlib
To reduce memory and CPU consumption, many libraries that implement Write also implement WriteString. We should do the same here, as the default http server supports WriteString.
I wanted a Transport that could trace requests without any instrumentation of the client usage, so I created a new one. It wraps the existing Transport without modification so it...
When i used nethttp,create span twice,I don't think it makes sense req, ht := nethttp.TraceRequest(c.Tracer, req, nethttp.OperationName("HTTP GET: "+endpoint)) defer ht.Finish() Then I look at the source code func (h...
When build a request and call TraceRequest(), two spans will be recorded, a root span and a child span, so why we use two spans to trace one request?
[OpenTracing conventions](https://github.com/opentracing/specification/blob/master/semantic_conventions.md) say that `sampling.priority` >0 should capture the trace. However, when using Jaeger, any tags set before this are ignored https://github.com/jaegertracing/jaeger-client-go/issues/391. I think this could be done via `spanObserver`...
I tried to introduce http request tracing in one of our applications and stumpled about a nil pointer dereference that was triggered by a testcase. The nil pointer dereference can...
Last fixes https://github.com/opentracing-contrib/go-stdlib/commit/2b2d2700a3b75f6783973d5d5bbea33c7214c66f#diff-3fde75a8887529bd00893a052634c273 require in handler `h(sct.wrappedResponseWriter(), r)` call `WriteHeader`. If not call `WriteHeader` `defer` mark span as error. I use echo http server and dont call `WriteHeader` in my...
In following example: ```go client := &http.Client{Transport: &nethttp.Transport{}} req, err := http.NewRequest("GET", "http://google.com", nil) if err != nil { return err } req = req.WithContext(ctx) // extend existing trace, if...
Whould be nice to have support for [runtime/trace](https://golang.org/pkg/runtime/trace).
Currently, instrumentation is just provided for `net/http`. Instrumentation for `net/rpc` and `database/sql`seems also worth doing. I am a master who want to apply GSoC 2017, I 'd like to implement...