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 ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
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 begins. BeginTime time.Time // FailFast indicates if this RPC is failfast. FailFast bool }
Begin contains stats when an RPC begins. FailFast are only valid if Client is true.
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 // EndTime is the time when the RPC ends. EndTime time.Time // Error is the error just happened. Its type is gRPC error. Error error }
End contains stats when an RPC ends.
type Handler ¶
type Handler interface { // TagRPC can attach some information to the given context. // The returned context is used in the rest lifetime of the RPC. 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 // 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 // Compression is the compression algorithm used for the RPC. Compression string }
InHeader contains stats when a header is received. FullMethod, addresses and Compression are only valid if Client is false.
type InPayload ¶
type InPayload struct { // Client is true if this InPayload is from client side. Client bool // Payload is the payload with original type. Payload interface{} // Data is the serialized message payload. Data []byte // Length is the length of uncompressed data. Length int // WireLength is the length of data on wire (compressed, signed, encrypted). 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 }
InTrailer contains stats when a trailer is received.
type OutHeader ¶
type OutHeader struct { // Client is true if this OutHeader is from client side. Client bool // WireLength is the wire length of header. WireLength int // 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 // Compression is the compression algorithm used for the RPC. Compression string }
OutHeader contains stats when a header is sent. FullMethod, addresses and Compression are only valid if Client is true.
type OutPayload ¶
type OutPayload struct { // Client is true if this OutPayload is from client side. Client bool // Payload is the payload with original type. Payload interface{} // Data is the serialized message payload. Data []byte // Length is the length of uncompressed data. Length int // WireLength is the length of data on wire (compressed, signed, encrypted). 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 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. WireLength int }
OutTrailer contains stats when a trailer is sent.
func (*OutTrailer) IsClient ¶
func (s *OutTrailer) IsClient() bool
IsClient indicates if this is from client side.
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 }
RPCTagInfo defines the relevant information needed by RPC context tagger.