Documentation ¶
Overview ¶
Example (Client) ¶
package main import ( "log" grpctrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/google.golang.org/grpc" "google.golang.org/grpc" ) func main() { // Create the client interceptor using the grpc trace package. si := grpctrace.StreamClientInterceptor(grpctrace.WithServiceName("my-grpc-client")) ui := grpctrace.UnaryClientInterceptor(grpctrace.WithServiceName("my-grpc-client")) // Dial in using the created interceptor. // Note: To use multiple UnaryInterceptors with grpc.Dial, you must use // grpc.WithChainUnaryInterceptor instead (as of google.golang.org/grpc v1.51.0). conn, err := grpc.Dial("localhost:50051", grpc.WithInsecure(), grpc.WithStreamInterceptor(si), grpc.WithUnaryInterceptor(ui)) if err != nil { log.Fatal(err) } defer conn.Close() // And continue using the connection as normal. }
Output:
Example (Server) ¶
package main import ( "log" "net" grpctrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/google.golang.org/grpc" "google.golang.org/grpc" ) func main() { // Create a listener for the server. ln, err := net.Listen("tcp", ":50051") if err != nil { log.Fatal(err) } // Create the server interceptor using the grpc trace package. si := grpctrace.StreamServerInterceptor(grpctrace.WithServiceName("my-grpc-server")) ui := grpctrace.UnaryServerInterceptor(grpctrace.WithServiceName("my-grpc-server")) // Initialize the grpc server as normal, using the tracing interceptor. s := grpc.NewServer(grpc.StreamInterceptor(si), grpc.UnaryInterceptor(ui)) // ... register your services // Start serving incoming connections. if err := s.Serve(ln); err != nil { log.Fatalf("failed to serve: %v", err) } }
Output:
Index ¶
- func NewClientStatsHandler(opts ...Option) stats.Handler
- func NewServerStatsHandler(opts ...Option) stats.Handler
- func StreamClientInterceptor(opts ...Option) grpc.StreamClientInterceptor
- func StreamServerInterceptor(opts ...Option) grpc.StreamServerInterceptor
- func UnaryClientInterceptor(opts ...Option) grpc.UnaryClientInterceptor
- func UnaryServerInterceptor(opts ...Option) grpc.UnaryServerInterceptor
- type FixtureRequest
- type InterceptorOption
- type Option
- func NoDebugStack() Option
- func WithAnalytics(on bool) Option
- func WithAnalyticsRate(rate float64) Option
- func WithCustomTag(key string, value interface{}) Option
- func WithErrorDetailTags() Option
- func WithIgnoredMetadata(ms ...string) Option
- func WithIgnoredMethods(ms ...string) Optiondeprecated
- func WithMetadataTags() Option
- func WithRequestTags() Option
- func WithServiceName(name string) Option
- func WithSpanOptions(opts ...ddtrace.StartSpanOption) Option
- func WithStreamCalls(enabled bool) Option
- func WithStreamMessages(enabled bool) Option
- func WithUntracedMethods(ms ...string) Option
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewClientStatsHandler ¶ added in v1.11.0
NewClientStatsHandler returns a gRPC client stats.Handler to trace RPC calls.
func NewServerStatsHandler ¶ added in v1.11.0
NewServerStatsHandler returns a gRPC server stats.Handler to trace RPC calls.
func StreamClientInterceptor ¶ added in v1.1.0
func StreamClientInterceptor(opts ...Option) grpc.StreamClientInterceptor
StreamClientInterceptor returns a grpc.StreamClientInterceptor which will trace client streams using the given set of options.
func StreamServerInterceptor ¶ added in v1.1.0
func StreamServerInterceptor(opts ...Option) grpc.StreamServerInterceptor
StreamServerInterceptor will trace streaming requests to the given gRPC server.
func UnaryClientInterceptor ¶
func UnaryClientInterceptor(opts ...Option) grpc.UnaryClientInterceptor
UnaryClientInterceptor returns a grpc.UnaryClientInterceptor which will trace requests using the given set of options.
func UnaryServerInterceptor ¶
func UnaryServerInterceptor(opts ...Option) grpc.UnaryServerInterceptor
UnaryServerInterceptor will trace requests to the given grpc server.
Types ¶
type FixtureRequest ¶
type FixtureRequest = v2.FixtureRequest
type InterceptorOption ¶
type InterceptorOption = Option
InterceptorOption represents an option that can be passed to the grpc unary client and server interceptors. InterceptorOption is deprecated in favor of Option.
func NonErrorCodes ¶ added in v1.12.0
func NonErrorCodes(cs ...codes.Code) InterceptorOption
NonErrorCodes determines the list of codes which will not be considered errors in instrumentation. This call overrides the default handling of codes.Canceled as a non-error.
type Option ¶ added in v1.11.0
Option specifies a configuration option for the grpc package. Not all options apply to all instrumented structures.
func NoDebugStack ¶ added in v1.5.0
func NoDebugStack() Option
NoDebugStack disables debug stacks for traces with errors. This is useful in situations where errors are frequent and the overhead of calling debug.Stack may affect performance.
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 WithCustomTag ¶ added in v1.42.0
WithCustomTag will attach the value to the span tagged by the key.
func WithErrorDetailTags ¶ added in v1.60.0
func WithErrorDetailTags() Option
WithErrorDetailTags specifies whether gRPC responses details contain should be added to spans as tags.
func WithIgnoredMetadata ¶ added in v1.25.0
WithIgnoredMetadata specifies keys to be ignored while tracing the metadata. Must be used in conjunction with WithMetadataTags.
func WithIgnoredMethods
deprecated
added in
v1.24.0
WithIgnoredMethods specifies full methods to be ignored by the server side interceptor. When an incoming request's full method is in ms, no spans will be created.
Deprecated: This is deprecated in favor of WithUntracedMethods which applies to both the server side and client side interceptors.
func WithMetadataTags ¶ added in v1.25.0
func WithMetadataTags() Option
WithMetadataTags specifies whether gRPC metadata should be added to spans as tags.
func WithRequestTags ¶ added in v1.25.0
func WithRequestTags() Option
WithRequestTags specifies whether gRPC requests should be added to spans as tags.
func WithServiceName ¶
WithServiceName sets the given service name for the intercepted client.
func WithSpanOptions ¶ added in v1.49.0
func WithSpanOptions(opts ...ddtrace.StartSpanOption) Option
WithSpanOptions defines a set of additional ddtrace.StartSpanOption to be added to spans started by the integration.
func WithStreamCalls ¶ added in v1.1.0
WithStreamCalls enables or disables tracing of streaming calls. This option does not apply to the stats handler.
func WithStreamMessages ¶ added in v1.1.0
WithStreamMessages enables or disables tracing of streaming messages. This option does not apply to the stats handler.
func WithUntracedMethods ¶ added in v1.44.0
WithUntracedMethods specifies full methods to be ignored by the server side and client side interceptors. When a request's full method is in ms, no spans will be created.