promgrpc

package module
v3.2.4 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2019 License: MIT Imports: 12 Imported by: 3

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterInterceptor

func RegisterInterceptor(s ServiceInfoProvider, i *Interceptor) (err error)

RegisterInterceptor preallocates possible dimensions of every metric. If peer tracking is enabled, nothing will happen. If you register interceptor very frequently (for example during tests) it can allocate huge amount of memory.

Types

type Interceptor

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

Interceptor ...

func NewInterceptor

func NewInterceptor(opts InterceptorOpts) *Interceptor

NewInterceptor implements both prometheus Collector interface and methods required by grpc Interceptor.

func (*Interceptor) Collect

func (i *Interceptor) Collect(in chan<- prometheus.Metric)

Collect implements prometheus Collector interface.

func (*Interceptor) Describe

func (i *Interceptor) Describe(in chan<- *prometheus.Desc)

Describe implements prometheus Collector interface.

func (*Interceptor) Dialer

func (i *Interceptor) Dialer(f func(string, time.Duration) (net.Conn, error)) func(string, time.Duration) (net.Conn, error)

Dialer ...

Example
interceptor := promgrpc.NewInterceptor(promgrpc.InterceptorOpts{})

var opts []grpc.DialOption
opts = append(opts, grpc.WithDialer(interceptor.Dialer(func(addr string, timeout time.Duration) (net.Conn, error) {
	return net.DialTimeout("tcp", addr, timeout)
})))
Output:

func (*Interceptor) HandleConn

func (i *Interceptor) HandleConn(ctx context.Context, stat stats.ConnStats)

HandleConn implements stats Handler interface.

func (*Interceptor) HandleRPC

func (i *Interceptor) HandleRPC(ctx context.Context, stat stats.RPCStats)

HandleRPC implements stats Handler interface.

func (*Interceptor) StreamClient

func (i *Interceptor) StreamClient() grpc.StreamClientInterceptor

StreamClient ...

func (*Interceptor) StreamServer

func (i *Interceptor) StreamServer() grpc.StreamServerInterceptor

StreamServer ...

func (*Interceptor) TagConn

func (i *Interceptor) TagConn(ctx context.Context, info *stats.ConnTagInfo) context.Context

TagConn implements stats Handler interface.

func (*Interceptor) TagRPC

func (i *Interceptor) TagRPC(ctx context.Context, info *stats.RPCTagInfo) context.Context

TagRPC implements stats Handler interface.

func (*Interceptor) UnaryClient

func (i *Interceptor) UnaryClient() grpc.UnaryClientInterceptor

UnaryClient ...

func (*Interceptor) UnaryServer

func (i *Interceptor) UnaryServer() grpc.UnaryServerInterceptor

UnaryServer ...

type InterceptorOpts

type InterceptorOpts struct {
	// TrackPeers allow to turn on peer tracking.
	// For more info about peers please visit https://godoc.org/google.golang.org/grpc/peer.
	// peer is not bounded dimension so it can cause performance loss.
	// If its turn on Interceptor will not init metrics on startup.
	TrackPeers bool
	// ConstLabels will be passed to each collector.
	// Thanks to that it is possible to register multiple Interceptors.
	// They just have to have different constant labels.
	ConstLabels prometheus.Labels
}

InterceptorOpts ...

type ServiceInfoProvider

type ServiceInfoProvider interface {
	// GetServiceInfo returns a map from service names to ServiceInfo.
	// Service names include the package names, in the form of <package>.<service>.
	GetServiceInfo() map[string]grpc.ServiceInfo
}

ServiceInfoProvider is simple wrapper around GetServiceInfo method. This interface is implemented by grpc Server.

Jump to

Keyboard shortcuts

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