Documentation ¶
Overview ¶
Package stats is for collecting and reporting various network and RPC stats. This package is for monitoring purpose only. All fields are read-only. All APIs are experimental.
Index ¶
- func SetTags(ctx context.Context, b []byte) context.Contextdeprecated
- func SetTrace(ctx context.Context, b []byte) context.Contextdeprecated
- func Tags(ctx context.Context) []bytedeprecated
- func Trace(ctx context.Context) []bytedeprecated
- type Begin
- type ConnBegin
- type ConnEnd
- type ConnStats
- type ConnTagInfo
- type End
- type Handler
- type InHeader
- type InPayload
- type InTrailer
- type MetricSet
- type OutHeader
- type OutPayload
- type OutTrailer
- type PickerUpdated
- type RPCStats
- type RPCTagInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetTags
deprecated
added in
v1.6.0
SetTags attaches stats tagging data to the context, which will be sent in the outgoing RPC with the header grpc-tags-bin. Subsequent calls to SetTags will overwrite the values from earlier calls.
Deprecated: set the `grpc-tags-bin` header in the metadata instead.
func SetTrace
deprecated
added in
v1.6.0
SetTrace attaches stats tagging data to the context, which will be sent in the outgoing RPC with the header grpc-trace-bin. Subsequent calls to SetTrace will overwrite the values from earlier calls.
Deprecated: set the `grpc-trace-bin` header in the metadata instead.
Types ¶
type Begin ¶
type Begin struct { // Client is true if this Begin is from client side. Client bool // BeginTime is the time when the RPC attempt begins. BeginTime time.Time // FailFast indicates if this RPC is failfast. FailFast bool // IsClientStream indicates whether the RPC is a client streaming RPC. IsClientStream bool // IsServerStream indicates whether the RPC is a server streaming RPC. IsServerStream bool // IsTransparentRetryAttempt indicates whether this attempt was initiated // due to transparently retrying a previous attempt. IsTransparentRetryAttempt bool }
Begin contains stats when an RPC attempt begins. FailFast is only valid if this Begin is from client side.
type ConnBegin ¶
type ConnBegin struct { // Client is true if this ConnBegin is from client side. Client bool }
ConnBegin contains the stats of a connection when it is established.
type ConnEnd ¶
type ConnEnd struct { // Client is true if this ConnEnd is from client side. Client bool }
ConnEnd contains the stats of a connection when it ends.
type ConnStats ¶
type ConnStats interface { // IsClient returns true if this ConnStats is from client side. IsClient() bool // contains filtered or unexported methods }
ConnStats contains stats information about connections.
type ConnTagInfo ¶
type ConnTagInfo struct { // RemoteAddr is the remote address of the corresponding connection. RemoteAddr net.Addr // LocalAddr is the local address of the corresponding connection. LocalAddr net.Addr }
ConnTagInfo defines the relevant information needed by connection context tagger.
type End ¶
type End struct { // Client is true if this End is from client side. Client bool // BeginTime is the time when the RPC began. BeginTime time.Time // EndTime is the time when the RPC ends. EndTime time.Time // Trailer contains the trailer metadata received from the server. This // field is only valid if this End is from the client side. // Deprecated: use Trailer in InTrailer instead. Trailer metadata.MD // Error is the error the RPC ended with. It is an error generated from // status.Status and can be converted back to status.Status using // status.FromError if non-nil. Error error }
End contains stats when an RPC ends.
type Handler ¶ added in v1.2.0
type Handler interface { // TagRPC can attach some information to the given context. // The context used for the rest lifetime of the RPC will be derived from // the returned context. TagRPC(context.Context, *RPCTagInfo) context.Context // HandleRPC processes the RPC stats. HandleRPC(context.Context, RPCStats) // TagConn can attach some information to the given context. // The returned context will be used for stats handling. // For conn stats handling, the context used in HandleConn for this // connection will be derived from the context returned. // For RPC stats handling, // - On server side, the context used in HandleRPC for all RPCs on this // connection will be derived from the context returned. // - On client side, the context is not derived from the context returned. TagConn(context.Context, *ConnTagInfo) context.Context // HandleConn processes the Conn stats. HandleConn(context.Context, ConnStats) }
Handler defines the interface for the related stats handling (e.g., RPCs, connections).
type InHeader ¶
type InHeader struct { // Client is true if this InHeader is from client side. Client bool // WireLength is the wire length of header. WireLength int // Compression is the compression algorithm used for the RPC. Compression string // Header contains the header metadata received. Header metadata.MD // The following fields are valid only if Client is false. // FullMethod is the full RPC method string, i.e., /package.service/method. FullMethod string // RemoteAddr is the remote address of the corresponding connection. RemoteAddr net.Addr // LocalAddr is the local address of the corresponding connection. LocalAddr net.Addr }
InHeader contains stats when a header is received.
type InPayload ¶
type InPayload struct { // Client is true if this InPayload is from client side. Client bool // Payload is the payload with original type. This may be modified after // the call to HandleRPC which provides the InPayload returns and must be // copied if needed later. Payload any // Length is the size of the uncompressed payload data. Does not include any // framing (gRPC or HTTP/2). Length int // CompressedLength is the size of the compressed payload data. Does not // include any framing (gRPC or HTTP/2). Same as Length if compression not // enabled. CompressedLength int // WireLength is the size of the compressed payload data plus gRPC framing. // Does not include HTTP/2 framing. WireLength int // RecvTime is the time when the payload is received. RecvTime time.Time }
InPayload contains the information for an incoming payload.
type InTrailer ¶
type InTrailer struct { // Client is true if this InTrailer is from client side. Client bool // WireLength is the wire length of trailer. WireLength int // Trailer contains the trailer metadata received from the server. This // field is only valid if this InTrailer is from the client side. Trailer metadata.MD }
InTrailer contains stats when a trailer is received.
type MetricSet ¶ added in v1.69.0
type MetricSet struct {
// contains filtered or unexported fields
}
MetricSet is a set of metrics to record. Once created, MetricSet is immutable, however Add and Remove can make copies with specific metrics added or removed, respectively.
Do not construct directly; use NewMetricSet instead.
func NewMetricSet ¶ added in v1.69.0
NewMetricSet returns a MetricSet containing metricNames.
func (*MetricSet) Add ¶ added in v1.69.0
Add adds the metricNames to the metrics set and returns a new copy with the additional metrics.
func (*MetricSet) Join ¶ added in v1.69.0
Join joins the metrics passed in with the metrics set, and returns a new copy with the merged metrics.
type OutHeader ¶
type OutHeader struct { // Client is true if this OutHeader is from client side. Client bool // Compression is the compression algorithm used for the RPC. Compression string // Header contains the header metadata sent. Header metadata.MD // The following fields are valid only if Client is true. // FullMethod is the full RPC method string, i.e., /package.service/method. FullMethod string // RemoteAddr is the remote address of the corresponding connection. RemoteAddr net.Addr // LocalAddr is the local address of the corresponding connection. LocalAddr net.Addr }
OutHeader contains stats when a header is sent.
type OutPayload ¶
type OutPayload struct { // Client is true if this OutPayload is from client side. Client bool // Payload is the payload with original type. This may be modified after // the call to HandleRPC which provides the OutPayload returns and must be // copied if needed later. Payload any // Length is the size of the uncompressed payload data. Does not include any // framing (gRPC or HTTP/2). Length int // CompressedLength is the size of the compressed payload data. Does not // include any framing (gRPC or HTTP/2). Same as Length if compression not // enabled. CompressedLength int // WireLength is the size of the compressed payload data plus gRPC framing. // Does not include HTTP/2 framing. WireLength int // SentTime is the time when the payload is sent. SentTime time.Time }
OutPayload contains the information for an outgoing payload.
func (*OutPayload) IsClient ¶
func (s *OutPayload) IsClient() bool
IsClient indicates if this stats information is from client side.
type OutTrailer ¶
type OutTrailer struct { // Client is true if this OutTrailer is from client side. Client bool // WireLength is the wire length of trailer. // // Deprecated: This field is never set. The length is not known when this message is // emitted because the trailer fields are compressed with hpack after that. WireLength int // Trailer contains the trailer metadata sent to the client. This // field is only valid if this OutTrailer is from the server side. Trailer metadata.MD }
OutTrailer contains stats when a trailer is sent.
func (*OutTrailer) IsClient ¶
func (s *OutTrailer) IsClient() bool
IsClient indicates if this stats information is from client side.
type PickerUpdated ¶ added in v1.58.0
type PickerUpdated struct{}
PickerUpdated indicates that the LB policy provided a new picker while the RPC was waiting for one.
func (*PickerUpdated) IsClient ¶ added in v1.58.0
func (*PickerUpdated) IsClient() bool
IsClient indicates if the stats information is from client side. Only Client Side interfaces with a Picker, thus always returns true.
type RPCStats ¶
type RPCStats interface { // IsClient returns true if this RPCStats is from client side. IsClient() bool // contains filtered or unexported methods }
RPCStats contains stats information about RPCs.
type RPCTagInfo ¶
type RPCTagInfo struct { // FullMethodName is the RPC method in the format of /package.service/method. FullMethodName string // FailFast indicates if this RPC is failfast. // This field is only valid on client side, it's always false on server side. FailFast bool }
RPCTagInfo defines the relevant information needed by RPC context tagger.
Directories ¶
Path | Synopsis |
---|---|
opencensus
module
|
|
Package opentelemetry implements opentelemetry instrumentation code for gRPC-Go clients and servers.
|
Package opentelemetry implements opentelemetry instrumentation code for gRPC-Go clients and servers. |
csm
Package csm contains utilities for Google Cloud Service Mesh observability.
|
Package csm contains utilities for Google Cloud Service Mesh observability. |
internal
Package internal defines the PluginOption interface.
|
Package internal defines the PluginOption interface. |
internal/testutils
Package testutils contains helpers for OpenTelemetry tests.
|
Package testutils contains helpers for OpenTelemetry tests. |
internal/tracing
Package tracing implements the OpenTelemetry carrier for context propagation in gRPC tracing.
|
Package tracing implements the OpenTelemetry carrier for context propagation in gRPC tracing. |