Documentation ¶
Overview ¶
Package chi provides tracing functions for tracing the go-chi/chi package (https://github.com/go-chi/chi).
Example ¶
package main import ( "net/http" chitrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/go-chi/chi" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" "github.com/go-chi/chi" ) func handler(w http.ResponseWriter, _ *http.Request) { w.Write([]byte("Hello World!\n")) } func main() { // Start the tracer tracer.Start() defer tracer.Stop() // Create a chi Router router := chi.NewRouter() // Use the tracer middleware with the default service name "chi.router". router.Use(chitrace.Middleware()) // Set up some endpoints. router.Get("/", handler) // And start gathering request traces http.ListenAndServe(":8080", router) }
Output:
Example (WithServiceName) ¶
package main import ( "net/http" chitrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/go-chi/chi" "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer" "github.com/go-chi/chi" ) func handler(w http.ResponseWriter, _ *http.Request) { w.Write([]byte("Hello World!\n")) } func main() { // Start the tracer tracer.Start() defer tracer.Stop() // Create a chi Router router := chi.NewRouter() // Use the tracer middleware with your desired service name. router.Use(chitrace.Middleware(chitrace.WithServiceName("chi-server"))) // Set up some endpoints. router.Get("/", handler) // And start gathering request traces http.ListenAndServe(":8080", router) }
Output:
Index ¶
- func Middleware(opts ...Option) func(next http.Handler) http.Handler
- type Option
- func WithAnalytics(on bool) Option
- func WithAnalyticsRate(rate float64) Option
- func WithHeaderTags(headers []string) Option
- func WithIgnoreRequest(fn func(r *http.Request) bool) Option
- func WithResourceNamer(fn func(r *http.Request) string) Option
- func WithServiceName(name string) Option
- func WithSpanOptions(opts ...ddtrace.StartSpanOption) Option
- func WithStatusCheck(fn func(statusCode int) bool) Option
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Option ¶
type Option func(*config)
Option represents an option that can be passed to NewRouter.
func WithAnalytics ¶
WithAnalytics enables Trace Analytics for all started spans.
func WithAnalyticsRate ¶
WithAnalyticsRate sets the sampling rate for Trace Analytics events correlated to started spans.
func WithHeaderTags ¶
WithHeaderTags enables the integration to attach HTTP request headers as span tags. Warning: Using this feature can risk exposing sensitive data such as authorization tokens to Datadog. Special headers can not be sub-selected. E.g., an entire Cookie header would be transmitted, without the ability to choose specific Cookies.
func WithIgnoreRequest ¶
WithIgnoreRequest specifies a function to use for determining if the incoming HTTP request tracing should be skipped.
func WithResourceNamer ¶
WithResourceNamer specifies a function to use for determining the resource name of the span.
func WithServiceName ¶
WithServiceName sets the given service name for the router.
func WithSpanOptions ¶
func WithSpanOptions(opts ...ddtrace.StartSpanOption) Option
WithSpanOptions applies the given set of options to the spans started by the router.
func WithStatusCheck ¶
WithStatusCheck specifies a function fn which reports whether the passed statusCode should be considered an error.