stats

package
v0.0.0-...-0997622 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2017 License: BSD-3-Clause, Apache-2.0 Imports: 5 Imported by: 0

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

func Handle

func Handle(ctx context.Context, s RPCStats)

Handle processes the stats using the call back function registered by user.

func On

func On() bool

On indicates whether stats is started.

func RegisterHandler

func RegisterHandler(f func(context.Context, RPCStats))

RegisterHandler registers the user handler function. If another handler was registered before, this new handler will overwrite the old one. This handler function will be called to process the stats.

func Start

func Start()

Start starts the stats collection and reporting if there is a registered stats handle.

func Stop

func Stop()

Stop stops the stats collection and processing. Stop does not unregister handler.

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.

func (*Begin) IsClient

func (s *Begin) IsClient() bool

IsClient indicates if this is from client side.

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.

func (*End) IsClient

func (s *End) IsClient() bool

IsClient indicates if this is from client side.

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.

func (*InHeader) IsClient

func (s *InHeader) IsClient() bool

IsClient indicates if this is from client side.

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.

func (*InPayload) IsClient

func (s *InPayload) IsClient() bool

IsClient indicates if this is from client side.

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.

func (*InTrailer) IsClient

func (s *InTrailer) IsClient() bool

IsClient indicates if this is from client side.

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.

func (*OutHeader) IsClient

func (s *OutHeader) IsClient() bool

IsClient indicates if this is from client side.

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
}

RPCStats contains stats information about RPCs. All stats types in this package implements this interface.

Jump to

Keyboard shortcuts

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