server

package
v1.12.18 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2024 License: Apache-2.0 Imports: 27 Imported by: 1

Documentation

Index

Constants

View Source
const MinTLSVersion = tls.VersionTLS13

MinTLSVersion defines the minimum TLS version clients are expected to support in order to establish a connection to the hubble-relay server.

Variables

View Source
var (
	// ErrNoClientTLSConfig is returned when no client TLS config is set unless
	// WithInsecureClient() is provided.
	ErrNoClientTLSConfig = errors.New("no client TLS config is set")
	// ErrNoServerTLSConfig is returned when no server TLS config is set unless
	// WithInsecureServer() is provided.
	ErrNoServerTLSConfig = errors.New("no server TLS config is set")
)
View Source
var DefaultOptions []Option

DefaultOptions to include in the server. Other packages may extend this in their init() function.

Functions

This section is empty.

Types

type Option

type Option func(o *options) error

Option customizes the configuration of the hubble-relay server.

func WithClientTLS

func WithClientTLS(cfg certloader.ClientConfigBuilder) Option

WithClientTLS sets the transport credentials for connecting to peers based on the provided TLS configuration.

func WithDialTimeout

func WithDialTimeout(t time.Duration) Option

WithDialTimeout sets the dial timeout that is used when establishing a connection to a hubble peer.

func WithErrorAggregationWindow

func WithErrorAggregationWindow(d time.Duration) Option

WithErrorAggregationWindow sets a time window during which errors with the same error message are coalesced. The aggregated error is forwarded to the downstream consumer either when the window expires or when a new, different error occurs (whichever happens first)

func WithGRPCMetrics

func WithGRPCMetrics(grpcMetrics *grpc_prometheus.ServerMetrics) Option

WithGRPCMetrics configures the server with the specified prometheus gPRC ServerMetrics.

func WithGRPCStreamInterceptor

func WithGRPCStreamInterceptor(interceptors ...grpc.StreamServerInterceptor) Option

WithGRPCStreamInterceptor configures the server with the given gRPC server stream interceptors

func WithGRPCUnaryInterceptor

func WithGRPCUnaryInterceptor(interceptors ...grpc.UnaryServerInterceptor) Option

WithGRPCUnaryInterceptor configures the server with the given gRPC server stream interceptors

func WithInsecureClient

func WithInsecureClient() Option

WithInsecureClient disables transport security for connection to Hubble server instances. Transport security is required to WithInsecureClient is set (not recommended).

func WithInsecureServer

func WithInsecureServer() Option

WithInsecureServer disables transport security. Transport security is required for the server unless WithInsecureServer is set (not recommended).

func WithListenAddress

func WithListenAddress(a string) Option

WithListenAddress sets the listen address for the hubble-relay server.

func WithLocalClusterName

func WithLocalClusterName(clusterName string) Option

WithLocalClusterName sets the cluster name for the peer service so that it knows how to construct the proper TLSServerName to validate mTLS in the K8s Peer service.

func WithLogger

func WithLogger(log logrus.FieldLogger) Option

WithLogger set the logger used by hubble-relay.

func WithMetricsListenAddress

func WithMetricsListenAddress(a string) Option

WithMetricsListenAddress sets the listen address for the hubble-relay server.

func WithPeerTarget

func WithPeerTarget(t string) Option

WithPeerTarget sets the URL of the hubble peer service to connect to.

func WithRetryTimeout

func WithRetryTimeout(t time.Duration) Option

WithRetryTimeout sets the duration to wait before attempting to re-connect to a hubble peer when the connection is lost.

func WithServerTLS

func WithServerTLS(cfg certloader.ServerConfigBuilder) Option

WithServerTLS sets the transport credentials for the server based on TLS.

func WithSortBufferDrainTimeout

func WithSortBufferDrainTimeout(d time.Duration) Option

WithSortBufferDrainTimeout sets the sort buffer drain timeout value. For flows requests where the total number of flows cannot be determined (typically for flows requests in follow mode), a flow is taken out of the buffer and sent to the client after duration d if the buffer is not full. This value must be greater than 0. Setting this value too low would render the flows sorting operation ineffective. A value between 500 milliseconds and 3 seconds should be constitute a good choice in most cases.

func WithSortBufferMaxLen

func WithSortBufferMaxLen(i int) Option

WithSortBufferMaxLen sets the maximum number of flows that can be buffered for sorting before being sent to the client. The provided value must be greater than 0 and is to be understood per client request. Therefore, it is advised to keep the value moderate (a value between 30 and 100 should constitute a good choice in most cases).

type Server

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

Server is a proxy that connects to a running instance of hubble gRPC server via unix domain socket.

func New

func New(options ...Option) (*Server, error)

New creates a new Server.

func (*Server) Serve

func (s *Server) Serve() error

Serve starts the hubble-relay server. Serve does not return unless a listening fails with fatal errors. Serve will return a non-nil error if Stop() is not called.

func (*Server) Stop

func (s *Server) Stop()

Stop terminates the hubble-relay server.

Jump to

Keyboard shortcuts

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