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 HandleConn(ctx context.Context, s ConnStats)
- func HandleRPC(ctx context.Context, s RPCStats)
- func On() bool
- func RegisterConnHandler(f func(context.Context, ConnStats))
- func RegisterConnTagger(t func(context.Context, *ConnTagInfo) context.Context)
- func RegisterRPCHandler(f func(context.Context, RPCStats))
- func RegisterRPCTagger(t func(context.Context, *RPCTagInfo) context.Context)
- func Start()
- func Stop()
- func TagConn(ctx context.Context, info *ConnTagInfo) context.Context
- func TagRPC(ctx context.Context, info *RPCTagInfo) context.Context
- type Begin
- type ConnBegin
- type ConnEnd
- type ConnStats
- type ConnTagInfo
- type End
- type InHeader
- type InPayload
- type InTrailer
- type OutHeader
- type OutPayload
- type OutTrailer
- type RPCStats
- type RPCTagInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HandleConn ¶
HandleConn processes the stats using the call back function registered by user.
func RegisterConnHandler ¶
RegisterConnHandler registers the user handler function for conn stats. It should be called only once. The later call will overwrite the former value if it is called multiple times. This handler function will be called to process the conn stats.
func RegisterConnTagger ¶
func RegisterConnTagger(t func(context.Context, *ConnTagInfo) context.Context)
RegisterConnTagger registers the user connection context tagger function. The connection context tagger 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 connHandler for this connection will be derived from the context returned. For RPC stats handling,
- On server side, the context used in rpcHandler 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.
func RegisterRPCHandler ¶
RegisterRPCHandler registers the user handler function for RPC stats processing. It should be called only once. The later call will overwrite the former value if it is called multiple times. This handler function will be called to process the rpc stats.
func RegisterRPCTagger ¶
func RegisterRPCTagger(t func(context.Context, *RPCTagInfo) context.Context)
RegisterRPCTagger registers the user RPC context tagger function. The RPC context tagger can attach some information to the given context. The context used in stats rpcHandler for this RPC will be derived from the context returned.
func Start ¶
func Start()
Start starts the stats collection and processing if there is a registered stats handle.
func Stop ¶
func Stop()
Stop stops the stats collection and processing. Stop does not unregister the handlers.
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 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.
Directories ¶
Path | Synopsis |
---|---|
Package grpc_testing is a generated protocol buffer package.
|
Package grpc_testing is a generated protocol buffer package. |