common

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Aug 31, 2022 License: AGPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

Module is a set of default providers for flowcontrol components

Note that the handler needs to be Registered for flowcontrol to be available externally.

View Source
var ProvideDummyHandler = fx.Annotate(NewHandler, fx.As(new(HandlerWithValues)))

ProvideDummyHandler provides an empty Flow Control Handler.

Functions

func Register

func Register(server *grpc.Server, handler flowcontrolv1.FlowControlServiceServer, healthsrv *health.Server)

Register registers flowcontrol service on a grpc server.

Types

type ConstructorIn

type ConstructorIn struct {
	fx.In

	EntityCache *entitycache.EntityCache
	Metrics     Metrics
	EngineAPI   iface.Engine
}

ConstructorIn holds parameters for ProvideHandler.

type Handler

type Handler struct {
	flowcontrolv1.UnimplementedFlowControlServiceServer
	// contains filtered or unexported fields
}

Handler implements the flowcontrol.v1 Service

It also accepts a pointer to an EntityCache for services lookup.

func NewHandler

func NewHandler(entityCache *entitycache.EntityCache, metrics Metrics, engine iface.Engine) *Handler

NewHandler creates an empty flowcontrol Handler

It also accepts a pointer to an EntityCache for Infra Labels lookup.

func (*Handler) Check

Check is the Check method of Flow Control service returns the allow/deny decisions of whether to accept the traffic after running the algorithms.

func (*Handler) CheckWithValues

func (h *Handler) CheckWithValues(
	ctx context.Context,
	controlPoint selectors.ControlPoint,
	serviceIDs []services.ServiceID,
	labels selectors.Labels,
) *flowcontrolv1.CheckResponse

CheckWithValues makes decision using collected inferred fields from authz or Handler.

type HandlerWithValues

type HandlerWithValues interface {
	CheckWithValues(
		context.Context,
		selectors.ControlPoint,
		[]services.ServiceID,
		selectors.Labels,
	) *flowcontrolv1.CheckResponse
}

HandlerWithValues implements the flowcontrol.v1 service using collected inferred values.

func ProvideHandler

ProvideHandler provides a Flow Control Handler.

type Metrics

type Metrics interface {
	// CheckResponse collects metrics about Aperture Check call with DecisionType and Reason.
	CheckResponse(flowcontrolv1.DecisionType, *flowcontrolv1.DecisionReason)
}

Metrics is used for collecting metrics about Aperture flowcontrol.

func ProvideMetrics

func ProvideMetrics(promRegistry *prometheus.Registry) (Metrics, error)

ProvideMetrics provides flowcontrol metrics that hook to prometheus registry.

func ProvideNopMetrics

func ProvideNopMetrics() Metrics

ProvideNopMetrics provides disabled flowcontrol metrics.

type NopMetrics

type NopMetrics struct{}

NopMetrics is a no-op implementation of Metrics.

func (NopMetrics) CheckResponse

CheckResponse is no-op method for NopMetrics.

type PrometheusMetrics

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

PrometheusMetrics stores collected metrics.

func NewPrometheusMetrics

func NewPrometheusMetrics(registry *prometheus.Registry) (*PrometheusMetrics, error)

NewPrometheusMetrics creates a Prometheus metrics collector.

func (*PrometheusMetrics) CheckResponse

func (pm *PrometheusMetrics) CheckResponse(decision flowcontrolv1.DecisionType, reason *flowcontrolv1.DecisionReason)

CheckResponse collects metrics about Aperture Check call with DecisionType, Reason.

Jump to

Keyboard shortcuts

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