grpc

package
v1.999.0-rc.6 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2024 License: Apache-2.0, BSD-3-Clause, Apache-2.0 Imports: 7 Imported by: 76

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

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewClientStatsHandler added in v1.11.0

func NewClientStatsHandler(opts ...Option) stats.Handler

NewClientStatsHandler returns a gRPC client stats.Handler to trace RPC calls.

func NewServerStatsHandler added in v1.11.0

func NewServerStatsHandler(opts ...Option) stats.Handler

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

type Option = v2.Option

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

func WithAnalytics(on bool) Option

WithAnalytics enables Trace Analytics for all started spans.

func WithAnalyticsRate added in v1.11.0

func WithAnalyticsRate(rate float64) Option

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

func WithCustomTag added in v1.42.0

func WithCustomTag(key string, value interface{}) Option

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

func WithIgnoredMetadata(ms ...string) Option

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

func WithIgnoredMethods(ms ...string) Option

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

func WithServiceName(name string) Option

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

func WithStreamCalls(enabled bool) Option

WithStreamCalls enables or disables tracing of streaming calls. This option does not apply to the stats handler.

func WithStreamMessages added in v1.1.0

func WithStreamMessages(enabled bool) Option

WithStreamMessages enables or disables tracing of streaming messages. This option does not apply to the stats handler.

func WithUntracedMethods added in v1.44.0

func WithUntracedMethods(ms ...string) Option

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.

Jump to

Keyboard shortcuts

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