Documentation ¶
Overview ¶
Package http provides functions to trace the net/http package (https://golang.org/pkg/net/http).
Example ¶
package main import ( "net/http" httptrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/net/http" ) func main() { mux := httptrace.NewServeMux() mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello World!\n")) }) http.ListenAndServe(":8080", mux) }
Output:
Example (WithServiceName) ¶
package main import ( "net/http" httptrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/net/http" ) func main() { mux := httptrace.NewServeMux(httptrace.WithServiceName("my-service")) mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello World!\n")) }) http.ListenAndServe(":8080", mux) }
Output:
Index ¶
- func WrapClient(c *http.Client, opts ...RoundTripperOption) *http.Client
- func WrapHandler(h http.Handler, service, resource string, opts ...Option) http.Handler
- func WrapRoundTripper(rt http.RoundTripper, opts ...RoundTripperOption) http.RoundTripper
- type MuxOption
- type Option
- type RoundTripperAfterFunc
- type RoundTripperBeforeFunc
- type RoundTripperOption
- func RTWithAnalytics(on bool) RoundTripperOption
- func RTWithAnalyticsRate(rate float64) RoundTripperOption
- func RTWithResourceNamer(namer func(req *http.Request) string) RoundTripperOption
- func RTWithServiceName(name string) RoundTripperOption
- func RTWithSpanOptions(opts ...ddtrace.StartSpanOption) RoundTripperOption
- func WithAfter(f RoundTripperAfterFunc) RoundTripperOption
- func WithBefore(f RoundTripperBeforeFunc) RoundTripperOption
- type ServeMux
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WrapClient ¶ added in v1.4.0
func WrapClient(c *http.Client, opts ...RoundTripperOption) *http.Client
WrapClient modifies the given client's transport to augment it with tracing and returns it.
func WrapHandler ¶
WrapHandler wraps an http.Handler with tracing using the given service and resource.
func WrapRoundTripper ¶ added in v1.2.0
func WrapRoundTripper(rt http.RoundTripper, opts ...RoundTripperOption) http.RoundTripper
WrapRoundTripper returns a new RoundTripper which traces all requests sent over the transport.
Types ¶
type MuxOption ¶
type MuxOption = Option
MuxOption has been deprecated in favor of Option.
func WithAnalytics ¶ added in v1.11.0
WithAnalytics enables Trace Analytics for all started spans.
func WithAnalyticsRate ¶ added in v1.11.0
WithAnalyticsRate sets the sampling rate for Trace Analytics events correlated to started spans.
func WithIgnoreRequest ¶ added in v1.32.0
WithIgnoreRequest holds the function to use for determining if the incoming HTTP request tracing should be skipped.
func WithServiceName ¶
WithServiceName sets the given service name for the returned ServeMux.
type Option ¶ added in v1.13.0
type Option func(*config)
Option represents an option that can be passed to NewServeMux or WrapHandler.
func NoDebugStack ¶ added in v1.24.0
func NoDebugStack() Option
NoDebugStack prevents stack traces from being attached to spans finishing with an error. This is useful in situations where errors are frequent and performance is critical.
func WithSpanOptions ¶ added in v1.13.0
func WithSpanOptions(opts ...ddtrace.StartSpanOption) Option
WithSpanOptions defines a set of additional ddtrace.StartSpanOption to be added to spans started by the integration.
type RoundTripperAfterFunc ¶ added in v1.2.0
A RoundTripperAfterFunc can be used to modify a span after an http RoundTrip is made. It is possible for the http Response to be nil.
type RoundTripperBeforeFunc ¶ added in v1.2.0
A RoundTripperBeforeFunc can be used to modify a span before an http RoundTrip is made.
type RoundTripperOption ¶ added in v1.2.0
type RoundTripperOption func(*roundTripperConfig)
A RoundTripperOption represents an option that can be passed to WrapRoundTripper.
func RTWithAnalytics ¶ added in v1.11.0
func RTWithAnalytics(on bool) RoundTripperOption
RTWithAnalytics enables Trace Analytics for all started spans.
func RTWithAnalyticsRate ¶ added in v1.11.0
func RTWithAnalyticsRate(rate float64) RoundTripperOption
RTWithAnalyticsRate sets the sampling rate for Trace Analytics events correlated to started spans.
func RTWithResourceNamer ¶ added in v1.26.0
func RTWithResourceNamer(namer func(req *http.Request) string) RoundTripperOption
RTWithResourceNamer specifies a function which will be used to obtain the resource name for a given request.
func RTWithServiceName ¶ added in v1.20.0
func RTWithServiceName(name string) RoundTripperOption
RTWithServiceName sets the given service name for the RoundTripper.
func RTWithSpanOptions ¶ added in v1.35.0
func RTWithSpanOptions(opts ...ddtrace.StartSpanOption) RoundTripperOption
RTWithSpanOptions defines a set of additional ddtrace.StartSpanOption to be added to spans started by the integration.
func WithAfter ¶ added in v1.2.0
func WithAfter(f RoundTripperAfterFunc) RoundTripperOption
WithAfter adds a RoundTripperAfterFunc to the RoundTripper config.
func WithBefore ¶ added in v1.2.0
func WithBefore(f RoundTripperBeforeFunc) RoundTripperOption
WithBefore adds a RoundTripperBeforeFunc to the RoundTripper config.
type ServeMux ¶
ServeMux is an HTTP request multiplexer that traces all the incoming requests.
func NewServeMux ¶
NewServeMux allocates and returns an http.ServeMux augmented with the global tracer.
func (*ServeMux) ServeHTTP ¶
func (mux *ServeMux) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP dispatches the request to the handler whose pattern most closely matches the request URL. We only need to rewrite this function to be able to trace all the incoming requests to the underlying multiplexer