restful

package module
v0.0.0-...-7ebff8f Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2024 License: Apache-2.0, BSD-3-Clause Imports: 11 Imported by: 0

Documentation

Overview

Package restful provides functions to trace the emicklei/go-restful package (https://github.com/emicklei/go-restful).

Example

To start tracing requests, add the trace filter to your go-restful router.

// create new go-restful service
ws := new(restful.WebService)

// create the Datadog filter
filter := restfultrace.FilterFunc(
	restfultrace.WithService("my-service"),
)

// use it
ws.Filter(filter)

// set endpoint
ws.Route(ws.GET("/hello").To(
	func(request *restful.Request, response *restful.Response) {
		io.WriteString(response, "world")
	}))
restful.Add(ws)

// serve request
log.Fatal(http.ListenAndServe(":8080", nil))
Output:

Example (SpanFromContext)
ws := new(restful.WebService)
ws.Filter(restfultrace.FilterFunc(
	restfultrace.WithService("my-service"),
))

ws.Route(ws.GET("/image/encode").To(
	func(request *restful.Request, response *restful.Response) {
		// create a child span to track operation timing.
		encodeSpan, _ := tracer.StartSpanFromContext(request.Request.Context(), "image.encode")
		// encode a image
		encodeSpan.Finish()
	}))
Output:

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func FilterFunc

func FilterFunc(configOpts ...Option) restful.FilterFunction

FilterFunc returns a restful.FilterFunction which will automatically trace incoming request.

Types

type Option

type Option interface {
	// contains filtered or unexported methods
}

Option describes options for the go-restful integration.

type OptionFn

type OptionFn func(*config)

OptionFn represents options applicable to FilterFunc.

func WithAnalytics

func WithAnalytics(on bool) OptionFn

WithAnalytics enables Trace Analytics for all started spans.

func WithAnalyticsRate

func WithAnalyticsRate(rate float64) OptionFn

WithAnalyticsRate sets the sampling rate for Trace Analytics events correlated to started spans.

func WithHeaderTags

func WithHeaderTags(headers []string) OptionFn

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 WithService

func WithService(name string) OptionFn

WithService sets the service name to by used by the filter.

Jump to

Keyboard shortcuts

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