trace

package
v0.4.4 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2023 License: MIT Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// GRPCStatusCodeKey is convention for numeric status code of a gRPC request.
	GRPCStatusCodeKey = attribute.Key("rpc.grpc.status_code")
	// RPCNameKey is the name of message transmitted or received.
	RPCNameKey = attribute.Key("name")
	// RPCMessageTypeKey is the type of message transmitted or received.
	RPCMessageTypeKey = attribute.Key("message.type")
	// RPCMessageIDKey is the identifier of message transmitted or received.
	RPCMessageIDKey = attribute.Key("message.id")
	// RPCMessageCompressedSizeKey is the compressed size of the message transmitted or received in bytes.
	RPCMessageCompressedSizeKey = attribute.Key("message.compressed_size")
	// RPCMessageUncompressedSizeKey is the uncompressed size of the message
	// transmitted or received in bytes.
	RPCMessageUncompressedSizeKey = attribute.Key("message.uncompressed_size")
)
View Source
const TraceName = "GoFast"

TraceName represents the tracing name.

Variables

View Source
var (
	// RPCSystemGRPC is the semantic convention for gRPC as the remoting system.
	RPCSystemGRPC = semconv.RPCSystemKey.String("grpc")
	// RPCNameMessage is the semantic convention for a message named message.
	RPCNameMessage = RPCNameKey.String("message")
	// RPCMessageTypeSent is the semantic conventions for sent RPC message types.
	RPCMessageTypeSent = RPCMessageTypeKey.String("SENT")
	// RPCMessageTypeReceived is the semantic conventions for the received RPC message types.
	RPCMessageTypeReceived = RPCMessageTypeKey.String("RECEIVED")
)

Semantic conventions for common RPC attributes.

View Source
var (
	// MessageSent is the type of sent messages.
	MessageSent = messageType(RPCMessageTypeSent)
	// MessageReceived is the type of received messages.
	MessageReceived = messageType(RPCMessageTypeReceived)
)
View Source
var ErrInvalidCarrier = errors.New("invalid carrier")
View Source
var TraceIdKey = http.CanonicalHeaderKey("x-trace-id")

TraceIdKey is the trace id header. https://www.w3.org/TR/trace-context/#trace-id May change it to trace-id afterwards.

Functions

func Extract

Extract extracts the metadata from ctx.

func Inject

func Inject(ctx context.Context, p propagation.TextMapPropagator, metadata *metadata.MD)

Inject injects cross-cutting concerns from the ctx into the metadata.

func ParseFullMethod added in v0.4.3

func ParseFullMethod(fullMethod string) (string, []attribute.KeyValue)

ParseFullMethod returns the method name and attributes.

func PeerAttr added in v0.4.3

func PeerAttr(addr string) []attribute.KeyValue

PeerAttr returns the peer attributes.

func PeerFromCtx added in v0.4.3

func PeerFromCtx(ctx context.Context) string

PeerFromCtx returns the peer from ctx.

func SpanInfo added in v0.4.3

func SpanInfo(fullMethod, peerAddress string) (string, []attribute.KeyValue)

SpanInfo returns the span info.

func StartAgent added in v0.4.3

func StartAgent(c Config)

StartAgent starts a opentelemetry agent.

func StartClientSpan

func StartClientSpan(ctx context.Context, serviceName, operationName string) (context.Context, tracespec.Trace)

func StartServerSpan

func StartServerSpan(ctx context.Context, carrier Carrier, serviceName, operationName string) (
	context.Context, tracespec.Trace)

func StatusCodeAttr added in v0.4.3

func StatusCodeAttr(c gcodes.Code) attribute.KeyValue

StatusCodeAttr returns an attribute.KeyValue that represents the give c.

func StopAgent added in v0.4.3

func StopAgent()

StopAgent shuts down the span processors in the order they were registered.

Types

type Carrier

type Carrier interface {
	Get(key string) string
	Set(key, value string)
}

type Config added in v0.4.3

type Config struct {
	Name     string  `v:""`
	Endpoint string  `v:""`
	Sampler  float64 `v:"def=1.0"`
	Batcher  string  `v:"def=jaeger,enum=jaeger|zipkin|grpc"`
}

A Config is a opentelemetry config.

type Span

type Span struct {
	// contains filtered or unexported fields
}

func (*Span) Finish

func (s *Span) Finish()

func (*Span) Follow

func (s *Span) Follow(ctx context.Context, serviceName, operationName string) (context.Context, tracespec.Trace)

func (*Span) Fork

func (s *Span) Fork(ctx context.Context, serviceName, operationName string) (context.Context, tracespec.Trace)

func (*Span) SpanId

func (s *Span) SpanId() string

func (*Span) TraceId

func (s *Span) TraceId() string

func (*Span) Visit

func (s *Span) Visit(fn func(key, val string) bool)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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