Documentation
¶
Index ¶
- func RegisterInterceptor(s *grpc.Server, i *Interceptor) (err error)
- type Interceptor
- func (i *Interceptor) Collect(in chan<- prometheus.Metric)
- func (i *Interceptor) Describe(in chan<- *prometheus.Desc)
- func (i *Interceptor) Dialer(f func(string, time.Duration) (net.Conn, error)) func(string, time.Duration) (net.Conn, error)
- func (i *Interceptor) StreamClient() grpc.StreamClientInterceptor
- func (i *Interceptor) StreamServer() grpc.StreamServerInterceptor
- func (i *Interceptor) UnaryClient() grpc.UnaryClientInterceptor
- func (i *Interceptor) UnaryServer() grpc.UnaryServerInterceptor
- type InterceptorOpts
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterInterceptor ¶ added in v0.3.0
func RegisterInterceptor(s *grpc.Server, 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 ¶ added in v0.8.0
func (i *Interceptor) Collect(in chan<- prometheus.Metric)
Collect implements prometheus Collector interface.
func (*Interceptor) Describe ¶ added in v0.8.0
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 ¶
package main import ( "net" "time" "github.com/piotrkowalczuk/promgrpc" "google.golang.org/grpc" ) func main() { 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) StreamClient ¶
func (i *Interceptor) StreamClient() grpc.StreamClientInterceptor
StreamClient ...
func (*Interceptor) StreamServer ¶
func (i *Interceptor) StreamServer() grpc.StreamServerInterceptor
StreamServer ...
func (*Interceptor) UnaryClient ¶
func (i *Interceptor) UnaryClient() grpc.UnaryClientInterceptor
UnaryClient ...
func (*Interceptor) UnaryServer ¶
func (i *Interceptor) UnaryServer() grpc.UnaryServerInterceptor
UnaryServer ...
type InterceptorOpts ¶ added in v0.5.0
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 }
InterceptorOpts ...
Click to show internal directories.
Click to hide internal directories.