Documentation
¶
Overview ¶
Package chi provides tracing functions for tracing the go-chi/chi/v5 package (https://github.com/go-chi/chi).
Example ¶
// 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)
Example (WithServiceName) ¶
// 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.WithService("chi-server")))
// Set up some endpoints.
router.Get("/", handler)
// And start gathering request traces
http.ListenAndServe(":8080", router)
Index ¶
- func Middleware(opts ...Option) func(next http.Handler) http.Handler
- type Option
- type OptionFn
- func WithAnalytics(on bool) OptionFn
- func WithAnalyticsRate(rate float64) OptionFn
- func WithHeaderTags(headers []string) OptionFn
- func WithIgnoreRequest(fn func(r *http.Request) bool) OptionFn
- func WithModifyResourceName(fn func(resourceName string) string) OptionFn
- func WithNoAppsec(disabled bool) OptionFn
- func WithResourceNamer(fn func(r *http.Request) string) OptionFn
- func WithResponseHeaderCopier(f func(http.ResponseWriter) http.Header) OptionFn
- func WithService(name string) OptionFn
- func WithSpanOptions(opts ...tracer.StartSpanOption) OptionFn
- func WithStatusCheck(fn func(statusCode int) bool) OptionFn
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Option ¶
type Option interface {
// contains filtered or unexported methods
}
Option describes options for the Chi.v5 integration.
type OptionFn ¶
type OptionFn func(*config)
OptionFn represents options applicable to Middleware.
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 WithModifyResourceName ¶
WithModifyResourceName specifies a function to use to modify the resource name.
func WithNoAppsec ¶
WithNoAppsec opts this router out of AppSec management. This allows a particular router to bypass appsec, while the rest of the application is still being monitored/managed. This has not effect if AppSec is not enabled globally (e.g, via the DD_APPSEC_ENABLED environment variable).
func WithResourceNamer ¶
WithResourceNamer specifies a function to use for determining the resource name of the span.
func WithResponseHeaderCopier ¶
func WithResponseHeaderCopier(f func(http.ResponseWriter) http.Header) OptionFn
WithResponseHeaderCopier provides a function to fetch the response headers from the http.ResponseWriter. This allows for custom implementations as needed if you over-ride the default http.ResponseWriter, such as to add synchronization. Provided functions may elect to return a copy of the http.Header map instead of a reference to the original (e.g: to not risk breaking synchronization). This is currently only used by AppSec.
func WithService ¶
WithService sets the given service name for the router.
func WithSpanOptions ¶
func WithSpanOptions(opts ...tracer.StartSpanOption) OptionFn
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.