Documentation
¶
Index ¶
- Constants
- func Instrument(requestDuration *prometheus.HistogramVec) ([]grpc.UnaryClientInterceptor, []grpc.StreamClientInterceptor)
- func NewBackoffRetry(cfg backoff.Config) grpc.UnaryClientInterceptor
- func NewRateLimiter(cfg *Config) grpc.UnaryClientInterceptor
- func UnarySigningClientInterceptor(ctx context.Context, method string, req, reply interface{}, ...) error
- func UnarySigningServerInterceptor(ctx context.Context, req interface{}, _ *grpc.UnaryServerInfo, ...) (resp interface{}, err error)
- type Config
- func (cfg *Config) CallOptions() []grpc.CallOption
- func (cfg *Config) DialOption(unaryClientInterceptors []grpc.UnaryClientInterceptor, ...) ([]grpc.DialOption, error)
- func (cfg *Config) RegisterFlags(f *flag.FlagSet)
- func (cfg *Config) RegisterFlagsWithPrefix(prefix, defaultGrpcCompression string, f *flag.FlagSet)
- func (cfg *Config) Validate(log log.Logger) error
- type ConfigWithHealthCheck
- type HealthCheckConfig
- type HealthCheckInterceptors
- type SignRequest
Constants ¶
Variables ¶
This section is empty.
Functions ¶
func Instrument ¶ added in v1.1.0
func Instrument(requestDuration *prometheus.HistogramVec) ([]grpc.UnaryClientInterceptor, []grpc.StreamClientInterceptor)
func NewBackoffRetry ¶
func NewBackoffRetry(cfg backoff.Config) grpc.UnaryClientInterceptor
NewBackoffRetry gRPC middleware.
func NewRateLimiter ¶
func NewRateLimiter(cfg *Config) grpc.UnaryClientInterceptor
NewRateLimiter creates a UnaryClientInterceptor for client side rate limiting.
func UnarySigningClientInterceptor ¶ added in v1.16.0
func UnarySigningClientInterceptor(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error
func UnarySigningServerInterceptor ¶ added in v1.16.0
func UnarySigningServerInterceptor(ctx context.Context, req interface{}, _ *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error)
Types ¶
type Config ¶
type Config struct {
MaxRecvMsgSize int `yaml:"max_recv_msg_size"`
MaxSendMsgSize int `yaml:"max_send_msg_size"`
GRPCCompression string `yaml:"grpc_compression"`
RateLimit float64 `yaml:"rate_limit"`
RateLimitBurst int `yaml:"rate_limit_burst"`
BackoffOnRatelimits bool `yaml:"backoff_on_ratelimits"`
BackoffConfig backoff.Config `yaml:"backoff_config"`
TLSEnabled bool `yaml:"tls_enabled"`
TLS tls.ClientConfig `yaml:",inline"`
SignWriteRequestsEnabled bool `yaml:"-"`
ConnectTimeout time.Duration `yaml:"connect_timeout"`
}
Config for a gRPC client.
func (*Config) CallOptions ¶
func (cfg *Config) CallOptions() []grpc.CallOption
CallOptions returns the config in terms of CallOptions.
func (*Config) DialOption ¶
func (cfg *Config) DialOption(unaryClientInterceptors []grpc.UnaryClientInterceptor, streamClientInterceptors []grpc.StreamClientInterceptor) ([]grpc.DialOption, error)
DialOption returns the config as a grpc.DialOptions.
func (*Config) RegisterFlags ¶
RegisterFlags registers flags.
func (*Config) RegisterFlagsWithPrefix ¶ added in v1.1.0
RegisterFlagsWithPrefix registers flags with prefix.
type ConfigWithHealthCheck ¶ added in v1.19.0
type ConfigWithHealthCheck struct {
Config `yaml:",inline"`
HealthCheckConfig HealthCheckConfig `` /* 179-byte string literal not displayed */
}
func (*ConfigWithHealthCheck) DialOption ¶ added in v1.19.0
func (cfg *ConfigWithHealthCheck) DialOption(unaryClientInterceptors []grpc.UnaryClientInterceptor, streamClientInterceptors []grpc.StreamClientInterceptor) ([]grpc.DialOption, error)
func (*ConfigWithHealthCheck) RegisterFlagsWithPrefix ¶ added in v1.19.0
func (cfg *ConfigWithHealthCheck) RegisterFlagsWithPrefix(prefix, defaultGrpcCompression string, f *flag.FlagSet)
type HealthCheckConfig ¶ added in v1.19.0
type HealthCheckConfig struct {
*HealthCheckInterceptors `yaml:"-"`
UnhealthyThreshold int64 `yaml:"unhealthy_threshold"`
Interval time.Duration `yaml:"interval"`
Timeout time.Duration `yaml:"timeout"`
}
func (*HealthCheckConfig) RegisterFlagsWithPrefix ¶ added in v1.19.0
func (cfg *HealthCheckConfig) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet)
RegisterFlagsWithPrefix for Config.
type HealthCheckInterceptors ¶ added in v1.19.0
type HealthCheckInterceptors struct {
services.Service
sync.RWMutex
// contains filtered or unexported fields
}
func NewHealthCheckInterceptors ¶ added in v1.19.0
func NewHealthCheckInterceptors(logger log.Logger) *HealthCheckInterceptors
func (*HealthCheckInterceptors) StreamClientInterceptor ¶ added in v1.19.0
func (h *HealthCheckInterceptors) StreamClientInterceptor(clientConfig *ConfigWithHealthCheck) grpc.StreamClientInterceptor
func (*HealthCheckInterceptors) UnaryHealthCheckInterceptor ¶ added in v1.19.0
func (h *HealthCheckInterceptors) UnaryHealthCheckInterceptor(clientConfig *ConfigWithHealthCheck) grpc.UnaryClientInterceptor
type SignRequest ¶ added in v1.16.0
type SignRequest interface {
// Sign returns the signature for the given request
Sign(context.Context) (string, error)
// VerifySign returns true if the signature is valid
VerifySign(context.Context, string) (bool, error)
}
SignRequest define the interface that must be implemented by the request structs to be signed
Click to show internal directories.
Click to hide internal directories.