Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func TracingServerInterceptor

func TracingServerInterceptor(tracer opentracing.Tracer) grpc.UnaryServerInterceptor

TracingServerInterceptor copy of the GRPC tracing interceptor to enable switching between the supplied tracer and NoopTracer depending upon whether the request is being sampled.

Types

type Args

type Args struct {
	// The templates to register.
	Templates map[string]template.Info

	// The adapters to use
	Adapters []adapter.InfoFn

	// Maximum size of individual gRPC messages
	MaxMessageSize uint

	// Maximum number of outstanding RPCs per connection
	MaxConcurrentStreams uint

	// Maximum number of goroutines in the API worker pool
	APIWorkerPoolSize int

	// Maximum number of goroutines in the adapter worker pool
	AdapterWorkerPoolSize int

	// URL of the config store. Use k8s://path_to_kubeconfig, fs:// for file system, or mcps://<host> to
	// connect to Galley. If path_to_kubeconfig is empty, in-cluster kubeconfig is used.")
	// If this is empty (and ConfigStore isn't specified), "k8s://" will be used.
	ConfigStoreURL string

	// The certificate file locations for the MCP config backend.
	CredentialOptions *creds.Options

	// For testing; this one is used for the backend store if ConfigStoreURL is empty. Specifying both is invalid.
	ConfigStore store.Store

	// Kubernetes namespace used to store mesh-wide configuration.")
	ConfigDefaultNamespace string

	// The logging options to use
	LoggingOptions *log.Options

	// The tracing options to use
	TracingOptions *tracing.Options

	// The path to the file which indicates the liveness of the server by its existence.
	// This will be used for k8s liveness probe. If empty, it does nothing.
	LivenessProbeOptions *probe.Options

	// The path to the file for readiness probe, similar to LivenessProbePath.
	ReadinessProbeOptions *probe.Options

	// The introspection options to use
	IntrospectionOptions *ctrlz.Options

	// Port to use for Mixer's gRPC API
	APIPort uint16

	// Address to use for Mixer's gRPC API. This setting supercedes the API port setting.
	APIAddress string

	// Port to use for exposing mixer self-monitoring information
	MonitoringPort uint16

	// Enable profiling via web interface host:port/debug/pprof
	EnableProfiling bool

	// Enables gRPC-level tracing
	EnableGRPCTracing bool

	// If true, each request to Mixer will be executed in a single go routine (useful for debugging)
	SingleThreaded bool

	// Maximum number of entries in the check cache
	NumCheckCacheEntries int32

	// Whether or not to establish watches for adapter-specific CRDs
	UseAdapterCRDs bool

	LoadSheddingOptions loadshedding.Options

	// The name of the ServiceMeshMemberRoll resource
	MemberRollName string

	// The namespace of the ServiceMeshMemberRoll resource
	MemberRollNamespace string

	// The resync period for the ServiceMeshMemberRoll resource
	MemberRollResync time.Duration
}

Args contains the startup arguments to instantiate Mixer.

func DefaultArgs

func DefaultArgs() *Args

DefaultArgs allocates an Args struct initialized with Mixer's default configuration.

func (*Args) String

func (a *Args) String() string

String produces a stringified version of the arguments for debugging.

type Server

type Server struct {
	*probe.Probe

	// contains filtered or unexported fields

}

Server is an in-memory Mixer service.

func New

func New(a *Args) (*Server, error)

New instantiates a fully functional Mixer server, ready for traffic.

func (*Server) Addr

func (s *Server) Addr() net.Addr

Addr returns the address of the server's API port, where gRPC requests can be sent.

func (*Server) Close

func (s *Server) Close() error

Close cleans up resources used by the server.

func (*Server) Dispatcher

func (s *Server) Dispatcher() dispatcher.Dispatcher

Dispatcher returns the dispatcher that was created during server creation. This should only be used for testing purposes only.

func (*Server) Run

func (s *Server) Run()

Run enables Mixer to start receiving gRPC requests on its main API port.

func (*Server) Wait

func (s *Server) Wait() error

Wait waits for the server to exit.