httptrace

package
v1.70.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2024 License: Apache-2.0, BSD-3-Clause, Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package httptrace provides functionalities to trace HTTP requests that are commonly required and used across contrib/** integrations.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BeforeHandle added in v1.69.1

func BeforeHandle(cfg *ServeConfig, w http.ResponseWriter, r *http.Request) (http.ResponseWriter, *http.Request, func(), bool)

BeforeHandle contains functionality that should be executed before a http.Handler runs. It returns the "traced" http.ResponseWriter and http.Request, an additional afterHandle function that should be executed after the Handler runs, and a handled bool that instructs if the request has been handled or not - in case it was handled, the original handler should not run.

func FinishRequestSpan

func FinishRequestSpan(s tracer.Span, status int, errorFn func(int) bool, opts ...tracer.FinishOption)

FinishRequestSpan finishes the given HTTP request span and sets the expected response-related tags such as the status code. If not nil, errorFn will override the isStatusError method on httptrace for determining error codes. Any further span finish option can be added with opts.

func GetErrorCodesFromInput added in v1.69.0

func GetErrorCodesFromInput(s string) func(statusCode int) bool

GetErrorCodesFromInput parses a comma-separated string s to determine which codes are to be considered errors Its purpose is to support the DD_TRACE_HTTP_SERVER_ERROR_STATUSES env var If error condition cannot be determined from s, `nil` is returned e.g, input of "100,200,300-400" returns a function that returns true on 100, 200, and all values between 300-400, inclusive any input that cannot be translated to integer values returns nil

func HeaderTagsFromRequest added in v1.53.0

func HeaderTagsFromRequest(req *http.Request, headerCfg *internal.LockMap) ddtrace.StartSpanOption

HeaderTagsFromRequest matches req headers to user-defined list of header tags and creates span tags based on the header tag target and the req header value

func ResetCfg added in v1.70.0

func ResetCfg()

ResetCfg sets local variable cfg back to its defaults (mainly useful for testing)

func StartRequestSpan

func StartRequestSpan(r *http.Request, opts ...ddtrace.StartSpanOption) (tracer.Span, context.Context)

StartRequestSpan starts an HTTP request span with the standard list of HTTP request span tags (http.method, http.url, http.useragent). Any further span start option can be added with opts.

Types

type ServeConfig added in v1.69.1

type ServeConfig struct {
	// Service specifies the service name to use. If left blank, the global service name
	// will be inherited.
	Service string
	// Resource optionally specifies the resource name for this request.
	Resource string
	// QueryParams should be true in order to append the URL query values to the  "http.url" tag.
	QueryParams bool
	// Route is the request matched route if any, or is empty otherwise
	Route string
	// RouteParams specifies framework-specific route parameters (e.g. for route /user/:id coming
	// in as /user/123 we'll have {"id": "123"}). This field is optional and is used for monitoring
	// by AppSec. It is only taken into account when AppSec is enabled.
	RouteParams map[string]string
	// FinishOpts specifies any options to be used when finishing the request span.
	FinishOpts []ddtrace.FinishOption
	// SpanOpts specifies any options to be applied to the request starting span.
	SpanOpts []ddtrace.StartSpanOption
	// contains filtered or unexported fields
}

ServeConfig specifies the tracing configuration when using TraceAndServe.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL