Documentation ¶
Overview ¶
Code generated by protoc-gen-deepcopy. DO NOT EDIT.
Code generated by protoc-gen-deepcopy. DO NOT EDIT.
Package languagev1 is a reverse proxy.
It translates gRPC into RESTful JSON APIs.
Code generated by protoc-gen-deepcopy. DO NOT EDIT.
Index ¶
- Variables
- func RegisterPolicyServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error
- func RegisterPolicyServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client PolicyServiceClient) error
- func RegisterPolicyServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, ...) (err error)
- func RegisterPolicyServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server PolicyServiceServer) error
- func RegisterPolicyServiceServer(s grpc.ServiceRegistrar, srv PolicyServiceServer)
- type AddressExtractor
- func (in *AddressExtractor) DeepCopy() *AddressExtractor
- func (in *AddressExtractor) DeepCopyInterface() interface{}
- func (in *AddressExtractor) DeepCopyInto(out *AddressExtractor)
- func (*AddressExtractor) Descriptor() ([]byte, []int)deprecated
- func (x *AddressExtractor) GetFrom() string
- func (msg *AddressExtractor) MarshalJSON() ([]byte, error)
- func (*AddressExtractor) ProtoMessage()
- func (x *AddressExtractor) ProtoReflect() protoreflect.Message
- func (x *AddressExtractor) Reset()
- func (x *AddressExtractor) String() string
- func (msg *AddressExtractor) UnmarshalJSON(b []byte) error
- type AllPolicies
- func (in *AllPolicies) DeepCopy() *AllPolicies
- func (in *AllPolicies) DeepCopyInterface() interface{}
- func (in *AllPolicies) DeepCopyInto(out *AllPolicies)
- func (*AllPolicies) Descriptor() ([]byte, []int)deprecated
- func (x *AllPolicies) GetAllPolicies() map[string]*Policy
- func (msg *AllPolicies) MarshalJSON() ([]byte, error)
- func (*AllPolicies) ProtoMessage()
- func (x *AllPolicies) ProtoReflect() protoreflect.Message
- func (x *AllPolicies) Reset()
- func (x *AllPolicies) String() string
- func (msg *AllPolicies) UnmarshalJSON(b []byte) error
- type AllPoliciesResponse
- func (in *AllPoliciesResponse) DeepCopy() *AllPoliciesResponse
- func (in *AllPoliciesResponse) DeepCopyInterface() interface{}
- func (in *AllPoliciesResponse) DeepCopyInto(out *AllPoliciesResponse)
- func (*AllPoliciesResponse) Descriptor() ([]byte, []int)deprecated
- func (x *AllPoliciesResponse) GetAllPolicies() *AllPolicies
- func (msg *AllPoliciesResponse) MarshalJSON() ([]byte, error)
- func (*AllPoliciesResponse) ProtoMessage()
- func (x *AllPoliciesResponse) ProtoReflect() protoreflect.Message
- func (x *AllPoliciesResponse) Reset()
- func (x *AllPoliciesResponse) String() string
- func (msg *AllPoliciesResponse) UnmarshalJSON(b []byte) error
- type ArithmeticCombinator
- func (in *ArithmeticCombinator) DeepCopy() *ArithmeticCombinator
- func (in *ArithmeticCombinator) DeepCopyInterface() interface{}
- func (in *ArithmeticCombinator) DeepCopyInto(out *ArithmeticCombinator)
- func (*ArithmeticCombinator) Descriptor() ([]byte, []int)deprecated
- func (x *ArithmeticCombinator) GetInPorts() *ArithmeticCombinator_Ins
- func (x *ArithmeticCombinator) GetOperator() string
- func (x *ArithmeticCombinator) GetOutPorts() *ArithmeticCombinator_Outs
- func (msg *ArithmeticCombinator) MarshalJSON() ([]byte, error)
- func (*ArithmeticCombinator) ProtoMessage()
- func (x *ArithmeticCombinator) ProtoReflect() protoreflect.Message
- func (x *ArithmeticCombinator) Reset()
- func (x *ArithmeticCombinator) String() string
- func (msg *ArithmeticCombinator) UnmarshalJSON(b []byte) error
- type ArithmeticCombinator_Ins
- func (in *ArithmeticCombinator_Ins) DeepCopy() *ArithmeticCombinator_Ins
- func (in *ArithmeticCombinator_Ins) DeepCopyInterface() interface{}
- func (in *ArithmeticCombinator_Ins) DeepCopyInto(out *ArithmeticCombinator_Ins)
- func (*ArithmeticCombinator_Ins) Descriptor() ([]byte, []int)deprecated
- func (x *ArithmeticCombinator_Ins) GetLhs() *Port
- func (x *ArithmeticCombinator_Ins) GetRhs() *Port
- func (msg *ArithmeticCombinator_Ins) MarshalJSON() ([]byte, error)
- func (*ArithmeticCombinator_Ins) ProtoMessage()
- func (x *ArithmeticCombinator_Ins) ProtoReflect() protoreflect.Message
- func (x *ArithmeticCombinator_Ins) Reset()
- func (x *ArithmeticCombinator_Ins) String() string
- func (msg *ArithmeticCombinator_Ins) UnmarshalJSON(b []byte) error
- type ArithmeticCombinator_Outs
- func (in *ArithmeticCombinator_Outs) DeepCopy() *ArithmeticCombinator_Outs
- func (in *ArithmeticCombinator_Outs) DeepCopyInterface() interface{}
- func (in *ArithmeticCombinator_Outs) DeepCopyInto(out *ArithmeticCombinator_Outs)
- func (*ArithmeticCombinator_Outs) Descriptor() ([]byte, []int)deprecated
- func (x *ArithmeticCombinator_Outs) GetOutput() *Port
- func (msg *ArithmeticCombinator_Outs) MarshalJSON() ([]byte, error)
- func (*ArithmeticCombinator_Outs) ProtoMessage()
- func (x *ArithmeticCombinator_Outs) ProtoReflect() protoreflect.Message
- func (x *ArithmeticCombinator_Outs) Reset()
- func (x *ArithmeticCombinator_Outs) String() string
- func (msg *ArithmeticCombinator_Outs) UnmarshalJSON(b []byte) error
- type Circuit
- func (in *Circuit) DeepCopy() *Circuit
- func (in *Circuit) DeepCopyInterface() interface{}
- func (in *Circuit) DeepCopyInto(out *Circuit)
- func (*Circuit) Descriptor() ([]byte, []int)deprecated
- func (x *Circuit) GetComponents() []*Component
- func (x *Circuit) GetEvaluationInterval() *durationpb.Duration
- func (msg *Circuit) MarshalJSON() ([]byte, error)
- func (*Circuit) ProtoMessage()
- func (x *Circuit) ProtoReflect() protoreflect.Message
- func (x *Circuit) Reset()
- func (x *Circuit) String() string
- func (msg *Circuit) UnmarshalJSON(b []byte) error
- type Classifier
- func (in *Classifier) DeepCopy() *Classifier
- func (in *Classifier) DeepCopyInterface() interface{}
- func (in *Classifier) DeepCopyInto(out *Classifier)
- func (*Classifier) Descriptor() ([]byte, []int)deprecated
- func (x *Classifier) GetRules() map[string]*Rule
- func (x *Classifier) GetSelector() *v1.Selector
- func (msg *Classifier) MarshalJSON() ([]byte, error)
- func (*Classifier) ProtoMessage()
- func (x *Classifier) ProtoReflect() protoreflect.Message
- func (x *Classifier) Reset()
- func (x *Classifier) String() string
- func (msg *Classifier) UnmarshalJSON(b []byte) error
- type Component
- func (in *Component) DeepCopy() *Component
- func (in *Component) DeepCopyInterface() interface{}
- func (in *Component) DeepCopyInto(out *Component)
- func (*Component) Descriptor() ([]byte, []int)deprecated
- func (x *Component) GetArithmeticCombinator() *ArithmeticCombinator
- func (m *Component) GetComponent() isComponent_Component
- func (x *Component) GetConcurrencyLimiter() *ConcurrencyLimiter
- func (x *Component) GetConstant() *Constant
- func (x *Component) GetDecider() *Decider
- func (x *Component) GetEma() *EMA
- func (x *Component) GetExtrapolator() *Extrapolator
- func (x *Component) GetGradientController() *GradientController
- func (x *Component) GetMax() *Max
- func (x *Component) GetMin() *Min
- func (x *Component) GetPromql() *PromQL
- func (x *Component) GetRateLimiter() *RateLimiter
- func (x *Component) GetSqrt() *Sqrt
- func (msg *Component) MarshalJSON() ([]byte, error)
- func (*Component) ProtoMessage()
- func (x *Component) ProtoReflect() protoreflect.Message
- func (x *Component) Reset()
- func (x *Component) String() string
- func (msg *Component) UnmarshalJSON(b []byte) error
- type Component_ArithmeticCombinator
- type Component_ConcurrencyLimiter
- type Component_Constant
- type Component_Decider
- type Component_Ema
- type Component_Extrapolator
- type Component_GradientController
- type Component_Max
- type Component_Min
- type Component_Promql
- type Component_RateLimiter
- type Component_Sqrt
- type ConcurrencyLimiter
- func (in *ConcurrencyLimiter) DeepCopy() *ConcurrencyLimiter
- func (in *ConcurrencyLimiter) DeepCopyInterface() interface{}
- func (in *ConcurrencyLimiter) DeepCopyInto(out *ConcurrencyLimiter)
- func (*ConcurrencyLimiter) Descriptor() ([]byte, []int)deprecated
- func (m *ConcurrencyLimiter) GetActuationStrategy() isConcurrencyLimiter_ActuationStrategy
- func (x *ConcurrencyLimiter) GetLoadShedActuator() *LoadShedActuator
- func (x *ConcurrencyLimiter) GetScheduler() *Scheduler
- func (msg *ConcurrencyLimiter) MarshalJSON() ([]byte, error)
- func (*ConcurrencyLimiter) ProtoMessage()
- func (x *ConcurrencyLimiter) ProtoReflect() protoreflect.Message
- func (x *ConcurrencyLimiter) Reset()
- func (x *ConcurrencyLimiter) String() string
- func (msg *ConcurrencyLimiter) UnmarshalJSON(b []byte) error
- type ConcurrencyLimiter_LoadShedActuator
- type Constant
- func (in *Constant) DeepCopy() *Constant
- func (in *Constant) DeepCopyInterface() interface{}
- func (in *Constant) DeepCopyInto(out *Constant)
- func (*Constant) Descriptor() ([]byte, []int)deprecated
- func (x *Constant) GetOutPorts() *Constant_Outs
- func (x *Constant) GetValue() float64
- func (msg *Constant) MarshalJSON() ([]byte, error)
- func (*Constant) ProtoMessage()
- func (x *Constant) ProtoReflect() protoreflect.Message
- func (x *Constant) Reset()
- func (x *Constant) String() string
- func (msg *Constant) UnmarshalJSON(b []byte) error
- type Constant_Outs
- func (in *Constant_Outs) DeepCopy() *Constant_Outs
- func (in *Constant_Outs) DeepCopyInterface() interface{}
- func (in *Constant_Outs) DeepCopyInto(out *Constant_Outs)
- func (*Constant_Outs) Descriptor() ([]byte, []int)deprecated
- func (x *Constant_Outs) GetOutput() *Port
- func (msg *Constant_Outs) MarshalJSON() ([]byte, error)
- func (*Constant_Outs) ProtoMessage()
- func (x *Constant_Outs) ProtoReflect() protoreflect.Message
- func (x *Constant_Outs) Reset()
- func (x *Constant_Outs) String() string
- func (msg *Constant_Outs) UnmarshalJSON(b []byte) error
- type Decider
- func (in *Decider) DeepCopy() *Decider
- func (in *Decider) DeepCopyInterface() interface{}
- func (in *Decider) DeepCopyInto(out *Decider)
- func (*Decider) Descriptor() ([]byte, []int)deprecated
- func (x *Decider) GetFalseFor() *durationpb.Duration
- func (x *Decider) GetInPorts() *Decider_Ins
- func (x *Decider) GetOperator() string
- func (x *Decider) GetOutPorts() *Decider_Outs
- func (x *Decider) GetTrueFor() *durationpb.Duration
- func (msg *Decider) MarshalJSON() ([]byte, error)
- func (*Decider) ProtoMessage()
- func (x *Decider) ProtoReflect() protoreflect.Message
- func (x *Decider) Reset()
- func (x *Decider) String() string
- func (msg *Decider) UnmarshalJSON(b []byte) error
- type Decider_Ins
- func (in *Decider_Ins) DeepCopy() *Decider_Ins
- func (in *Decider_Ins) DeepCopyInterface() interface{}
- func (in *Decider_Ins) DeepCopyInto(out *Decider_Ins)
- func (*Decider_Ins) Descriptor() ([]byte, []int)deprecated
- func (x *Decider_Ins) GetLhs() *Port
- func (x *Decider_Ins) GetOnFalse() *Port
- func (x *Decider_Ins) GetOnTrue() *Port
- func (x *Decider_Ins) GetRhs() *Port
- func (msg *Decider_Ins) MarshalJSON() ([]byte, error)
- func (*Decider_Ins) ProtoMessage()
- func (x *Decider_Ins) ProtoReflect() protoreflect.Message
- func (x *Decider_Ins) Reset()
- func (x *Decider_Ins) String() string
- func (msg *Decider_Ins) UnmarshalJSON(b []byte) error
- type Decider_Outs
- func (in *Decider_Outs) DeepCopy() *Decider_Outs
- func (in *Decider_Outs) DeepCopyInterface() interface{}
- func (in *Decider_Outs) DeepCopyInto(out *Decider_Outs)
- func (*Decider_Outs) Descriptor() ([]byte, []int)deprecated
- func (x *Decider_Outs) GetOutput() *Port
- func (msg *Decider_Outs) MarshalJSON() ([]byte, error)
- func (*Decider_Outs) ProtoMessage()
- func (x *Decider_Outs) ProtoReflect() protoreflect.Message
- func (x *Decider_Outs) Reset()
- func (x *Decider_Outs) String() string
- func (msg *Decider_Outs) UnmarshalJSON(b []byte) error
- type EMA
- func (in *EMA) DeepCopy() *EMA
- func (in *EMA) DeepCopyInterface() interface{}
- func (in *EMA) DeepCopyInto(out *EMA)
- func (*EMA) Descriptor() ([]byte, []int)deprecated
- func (x *EMA) GetCorrectionFactorOnMaxEnvelopeViolation() float64
- func (x *EMA) GetCorrectionFactorOnMinEnvelopeViolation() float64
- func (x *EMA) GetEmaWindow() *durationpb.Duration
- func (x *EMA) GetInPorts() *EMA_Ins
- func (x *EMA) GetOutPorts() *EMA_Outs
- func (x *EMA) GetWarmUpWindow() *durationpb.Duration
- func (msg *EMA) MarshalJSON() ([]byte, error)
- func (*EMA) ProtoMessage()
- func (x *EMA) ProtoReflect() protoreflect.Message
- func (x *EMA) Reset()
- func (x *EMA) String() string
- func (msg *EMA) UnmarshalJSON(b []byte) error
- type EMA_Ins
- func (in *EMA_Ins) DeepCopy() *EMA_Ins
- func (in *EMA_Ins) DeepCopyInterface() interface{}
- func (in *EMA_Ins) DeepCopyInto(out *EMA_Ins)
- func (*EMA_Ins) Descriptor() ([]byte, []int)deprecated
- func (x *EMA_Ins) GetInput() *Port
- func (x *EMA_Ins) GetMaxEnvelope() *Port
- func (x *EMA_Ins) GetMinEnvelope() *Port
- func (msg *EMA_Ins) MarshalJSON() ([]byte, error)
- func (*EMA_Ins) ProtoMessage()
- func (x *EMA_Ins) ProtoReflect() protoreflect.Message
- func (x *EMA_Ins) Reset()
- func (x *EMA_Ins) String() string
- func (msg *EMA_Ins) UnmarshalJSON(b []byte) error
- type EMA_Outs
- func (in *EMA_Outs) DeepCopy() *EMA_Outs
- func (in *EMA_Outs) DeepCopyInterface() interface{}
- func (in *EMA_Outs) DeepCopyInto(out *EMA_Outs)
- func (*EMA_Outs) Descriptor() ([]byte, []int)deprecated
- func (x *EMA_Outs) GetOutput() *Port
- func (msg *EMA_Outs) MarshalJSON() ([]byte, error)
- func (*EMA_Outs) ProtoMessage()
- func (x *EMA_Outs) ProtoReflect() protoreflect.Message
- func (x *EMA_Outs) Reset()
- func (x *EMA_Outs) String() string
- func (msg *EMA_Outs) UnmarshalJSON(b []byte) error
- type Extractor
- func (in *Extractor) DeepCopy() *Extractor
- func (in *Extractor) DeepCopyInterface() interface{}
- func (in *Extractor) DeepCopyInto(out *Extractor)
- func (*Extractor) Descriptor() ([]byte, []int)deprecated
- func (x *Extractor) GetAddress() *AddressExtractor
- func (x *Extractor) GetFrom() string
- func (x *Extractor) GetJson() *JSONExtractor
- func (x *Extractor) GetJwt() *JWTExtractor
- func (x *Extractor) GetPathTemplates() *PathTemplateMatcher
- func (m *Extractor) GetVariant() isExtractor_Variant
- func (msg *Extractor) MarshalJSON() ([]byte, error)
- func (*Extractor) ProtoMessage()
- func (x *Extractor) ProtoReflect() protoreflect.Message
- func (x *Extractor) Reset()
- func (x *Extractor) String() string
- func (msg *Extractor) UnmarshalJSON(b []byte) error
- type Extractor_Address
- type Extractor_From
- type Extractor_Json
- type Extractor_Jwt
- type Extractor_PathTemplates
- type Extrapolator
- func (in *Extrapolator) DeepCopy() *Extrapolator
- func (in *Extrapolator) DeepCopyInterface() interface{}
- func (in *Extrapolator) DeepCopyInto(out *Extrapolator)
- func (*Extrapolator) Descriptor() ([]byte, []int)deprecated
- func (x *Extrapolator) GetInPorts() *Extrapolator_Ins
- func (x *Extrapolator) GetMaxExtrapolationInterval() *durationpb.Duration
- func (x *Extrapolator) GetOutPorts() *Extrapolator_Outs
- func (msg *Extrapolator) MarshalJSON() ([]byte, error)
- func (*Extrapolator) ProtoMessage()
- func (x *Extrapolator) ProtoReflect() protoreflect.Message
- func (x *Extrapolator) Reset()
- func (x *Extrapolator) String() string
- func (msg *Extrapolator) UnmarshalJSON(b []byte) error
- type Extrapolator_Ins
- func (in *Extrapolator_Ins) DeepCopy() *Extrapolator_Ins
- func (in *Extrapolator_Ins) DeepCopyInterface() interface{}
- func (in *Extrapolator_Ins) DeepCopyInto(out *Extrapolator_Ins)
- func (*Extrapolator_Ins) Descriptor() ([]byte, []int)deprecated
- func (x *Extrapolator_Ins) GetInput() *Port
- func (msg *Extrapolator_Ins) MarshalJSON() ([]byte, error)
- func (*Extrapolator_Ins) ProtoMessage()
- func (x *Extrapolator_Ins) ProtoReflect() protoreflect.Message
- func (x *Extrapolator_Ins) Reset()
- func (x *Extrapolator_Ins) String() string
- func (msg *Extrapolator_Ins) UnmarshalJSON(b []byte) error
- type Extrapolator_Outs
- func (in *Extrapolator_Outs) DeepCopy() *Extrapolator_Outs
- func (in *Extrapolator_Outs) DeepCopyInterface() interface{}
- func (in *Extrapolator_Outs) DeepCopyInto(out *Extrapolator_Outs)
- func (*Extrapolator_Outs) Descriptor() ([]byte, []int)deprecated
- func (x *Extrapolator_Outs) GetOutput() *Port
- func (msg *Extrapolator_Outs) MarshalJSON() ([]byte, error)
- func (*Extrapolator_Outs) ProtoMessage()
- func (x *Extrapolator_Outs) ProtoReflect() protoreflect.Message
- func (x *Extrapolator_Outs) Reset()
- func (x *Extrapolator_Outs) String() string
- func (msg *Extrapolator_Outs) UnmarshalJSON(b []byte) error
- type FluxMeter
- func (in *FluxMeter) DeepCopy() *FluxMeter
- func (in *FluxMeter) DeepCopyInterface() interface{}
- func (in *FluxMeter) DeepCopyInto(out *FluxMeter)
- func (*FluxMeter) Descriptor() ([]byte, []int)deprecated
- func (x *FluxMeter) GetHistogramBuckets() []float64
- func (x *FluxMeter) GetSelector() *v1.Selector
- func (msg *FluxMeter) MarshalJSON() ([]byte, error)
- func (*FluxMeter) ProtoMessage()
- func (x *FluxMeter) ProtoReflect() protoreflect.Message
- func (x *FluxMeter) Reset()
- func (x *FluxMeter) String() string
- func (msg *FluxMeter) UnmarshalJSON(b []byte) error
- type GradientController
- func (in *GradientController) DeepCopy() *GradientController
- func (in *GradientController) DeepCopyInterface() interface{}
- func (in *GradientController) DeepCopyInto(out *GradientController)
- func (*GradientController) Descriptor() ([]byte, []int)deprecated
- func (x *GradientController) GetInPorts() *GradientController_Ins
- func (x *GradientController) GetMaxGradient() float64
- func (x *GradientController) GetMinGradient() float64
- func (x *GradientController) GetOutPorts() *GradientController_Outs
- func (x *GradientController) GetSlope() float64
- func (msg *GradientController) MarshalJSON() ([]byte, error)
- func (*GradientController) ProtoMessage()
- func (x *GradientController) ProtoReflect() protoreflect.Message
- func (x *GradientController) Reset()
- func (x *GradientController) String() string
- func (msg *GradientController) UnmarshalJSON(b []byte) error
- type GradientController_Ins
- func (in *GradientController_Ins) DeepCopy() *GradientController_Ins
- func (in *GradientController_Ins) DeepCopyInterface() interface{}
- func (in *GradientController_Ins) DeepCopyInto(out *GradientController_Ins)
- func (*GradientController_Ins) Descriptor() ([]byte, []int)deprecated
- func (x *GradientController_Ins) GetControlVariable() *Port
- func (x *GradientController_Ins) GetMax() *Port
- func (x *GradientController_Ins) GetMin() *Port
- func (x *GradientController_Ins) GetOptimize() *Port
- func (x *GradientController_Ins) GetSetpoint() *Port
- func (x *GradientController_Ins) GetSignal() *Port
- func (msg *GradientController_Ins) MarshalJSON() ([]byte, error)
- func (*GradientController_Ins) ProtoMessage()
- func (x *GradientController_Ins) ProtoReflect() protoreflect.Message
- func (x *GradientController_Ins) Reset()
- func (x *GradientController_Ins) String() string
- func (msg *GradientController_Ins) UnmarshalJSON(b []byte) error
- type GradientController_Outs
- func (in *GradientController_Outs) DeepCopy() *GradientController_Outs
- func (in *GradientController_Outs) DeepCopyInterface() interface{}
- func (in *GradientController_Outs) DeepCopyInto(out *GradientController_Outs)
- func (*GradientController_Outs) Descriptor() ([]byte, []int)deprecated
- func (x *GradientController_Outs) GetOutput() *Port
- func (msg *GradientController_Outs) MarshalJSON() ([]byte, error)
- func (*GradientController_Outs) ProtoMessage()
- func (x *GradientController_Outs) ProtoReflect() protoreflect.Message
- func (x *GradientController_Outs) Reset()
- func (x *GradientController_Outs) String() string
- func (msg *GradientController_Outs) UnmarshalJSON(b []byte) error
- type JSONExtractor
- func (in *JSONExtractor) DeepCopy() *JSONExtractor
- func (in *JSONExtractor) DeepCopyInterface() interface{}
- func (in *JSONExtractor) DeepCopyInto(out *JSONExtractor)
- func (*JSONExtractor) Descriptor() ([]byte, []int)deprecated
- func (x *JSONExtractor) GetFrom() string
- func (x *JSONExtractor) GetPointer() string
- func (msg *JSONExtractor) MarshalJSON() ([]byte, error)
- func (*JSONExtractor) ProtoMessage()
- func (x *JSONExtractor) ProtoReflect() protoreflect.Message
- func (x *JSONExtractor) Reset()
- func (x *JSONExtractor) String() string
- func (msg *JSONExtractor) UnmarshalJSON(b []byte) error
- type JWTExtractor
- func (in *JWTExtractor) DeepCopy() *JWTExtractor
- func (in *JWTExtractor) DeepCopyInterface() interface{}
- func (in *JWTExtractor) DeepCopyInto(out *JWTExtractor)
- func (*JWTExtractor) Descriptor() ([]byte, []int)deprecated
- func (x *JWTExtractor) GetFrom() string
- func (x *JWTExtractor) GetJsonPointer() string
- func (msg *JWTExtractor) MarshalJSON() ([]byte, error)
- func (*JWTExtractor) ProtoMessage()
- func (x *JWTExtractor) ProtoReflect() protoreflect.Message
- func (x *JWTExtractor) Reset()
- func (x *JWTExtractor) String() string
- func (msg *JWTExtractor) UnmarshalJSON(b []byte) error
- type LoadShedActuator
- func (in *LoadShedActuator) DeepCopy() *LoadShedActuator
- func (in *LoadShedActuator) DeepCopyInterface() interface{}
- func (in *LoadShedActuator) DeepCopyInto(out *LoadShedActuator)
- func (*LoadShedActuator) Descriptor() ([]byte, []int)deprecated
- func (x *LoadShedActuator) GetInPorts() *LoadShedActuator_Ins
- func (msg *LoadShedActuator) MarshalJSON() ([]byte, error)
- func (*LoadShedActuator) ProtoMessage()
- func (x *LoadShedActuator) ProtoReflect() protoreflect.Message
- func (x *LoadShedActuator) Reset()
- func (x *LoadShedActuator) String() string
- func (msg *LoadShedActuator) UnmarshalJSON(b []byte) error
- type LoadShedActuator_Ins
- func (in *LoadShedActuator_Ins) DeepCopy() *LoadShedActuator_Ins
- func (in *LoadShedActuator_Ins) DeepCopyInterface() interface{}
- func (in *LoadShedActuator_Ins) DeepCopyInto(out *LoadShedActuator_Ins)
- func (*LoadShedActuator_Ins) Descriptor() ([]byte, []int)deprecated
- func (x *LoadShedActuator_Ins) GetLoadShedFactor() *Port
- func (msg *LoadShedActuator_Ins) MarshalJSON() ([]byte, error)
- func (*LoadShedActuator_Ins) ProtoMessage()
- func (x *LoadShedActuator_Ins) ProtoReflect() protoreflect.Message
- func (x *LoadShedActuator_Ins) Reset()
- func (x *LoadShedActuator_Ins) String() string
- func (msg *LoadShedActuator_Ins) UnmarshalJSON(b []byte) error
- type Max
- func (in *Max) DeepCopy() *Max
- func (in *Max) DeepCopyInterface() interface{}
- func (in *Max) DeepCopyInto(out *Max)
- func (*Max) Descriptor() ([]byte, []int)deprecated
- func (x *Max) GetInPorts() *Max_Ins
- func (x *Max) GetOutPorts() *Max_Outs
- func (msg *Max) MarshalJSON() ([]byte, error)
- func (*Max) ProtoMessage()
- func (x *Max) ProtoReflect() protoreflect.Message
- func (x *Max) Reset()
- func (x *Max) String() string
- func (msg *Max) UnmarshalJSON(b []byte) error
- type Max_Ins
- func (in *Max_Ins) DeepCopy() *Max_Ins
- func (in *Max_Ins) DeepCopyInterface() interface{}
- func (in *Max_Ins) DeepCopyInto(out *Max_Ins)
- func (*Max_Ins) Descriptor() ([]byte, []int)deprecated
- func (x *Max_Ins) GetInputs() []*Port
- func (msg *Max_Ins) MarshalJSON() ([]byte, error)
- func (*Max_Ins) ProtoMessage()
- func (x *Max_Ins) ProtoReflect() protoreflect.Message
- func (x *Max_Ins) Reset()
- func (x *Max_Ins) String() string
- func (msg *Max_Ins) UnmarshalJSON(b []byte) error
- type Max_Outs
- func (in *Max_Outs) DeepCopy() *Max_Outs
- func (in *Max_Outs) DeepCopyInterface() interface{}
- func (in *Max_Outs) DeepCopyInto(out *Max_Outs)
- func (*Max_Outs) Descriptor() ([]byte, []int)deprecated
- func (x *Max_Outs) GetOutput() *Port
- func (msg *Max_Outs) MarshalJSON() ([]byte, error)
- func (*Max_Outs) ProtoMessage()
- func (x *Max_Outs) ProtoReflect() protoreflect.Message
- func (x *Max_Outs) Reset()
- func (x *Max_Outs) String() string
- func (msg *Max_Outs) UnmarshalJSON(b []byte) error
- type Min
- func (in *Min) DeepCopy() *Min
- func (in *Min) DeepCopyInterface() interface{}
- func (in *Min) DeepCopyInto(out *Min)
- func (*Min) Descriptor() ([]byte, []int)deprecated
- func (x *Min) GetInPorts() *Min_Ins
- func (x *Min) GetOutPorts() *Min_Outs
- func (msg *Min) MarshalJSON() ([]byte, error)
- func (*Min) ProtoMessage()
- func (x *Min) ProtoReflect() protoreflect.Message
- func (x *Min) Reset()
- func (x *Min) String() string
- func (msg *Min) UnmarshalJSON(b []byte) error
- type Min_Ins
- func (in *Min_Ins) DeepCopy() *Min_Ins
- func (in *Min_Ins) DeepCopyInterface() interface{}
- func (in *Min_Ins) DeepCopyInto(out *Min_Ins)
- func (*Min_Ins) Descriptor() ([]byte, []int)deprecated
- func (x *Min_Ins) GetInputs() []*Port
- func (msg *Min_Ins) MarshalJSON() ([]byte, error)
- func (*Min_Ins) ProtoMessage()
- func (x *Min_Ins) ProtoReflect() protoreflect.Message
- func (x *Min_Ins) Reset()
- func (x *Min_Ins) String() string
- func (msg *Min_Ins) UnmarshalJSON(b []byte) error
- type Min_Outs
- func (in *Min_Outs) DeepCopy() *Min_Outs
- func (in *Min_Outs) DeepCopyInterface() interface{}
- func (in *Min_Outs) DeepCopyInto(out *Min_Outs)
- func (*Min_Outs) Descriptor() ([]byte, []int)deprecated
- func (x *Min_Outs) GetOutput() *Port
- func (msg *Min_Outs) MarshalJSON() ([]byte, error)
- func (*Min_Outs) ProtoMessage()
- func (x *Min_Outs) ProtoReflect() protoreflect.Message
- func (x *Min_Outs) Reset()
- func (x *Min_Outs) String() string
- func (msg *Min_Outs) UnmarshalJSON(b []byte) error
- type PathTemplateMatcher
- func (in *PathTemplateMatcher) DeepCopy() *PathTemplateMatcher
- func (in *PathTemplateMatcher) DeepCopyInterface() interface{}
- func (in *PathTemplateMatcher) DeepCopyInto(out *PathTemplateMatcher)
- func (*PathTemplateMatcher) Descriptor() ([]byte, []int)deprecated
- func (x *PathTemplateMatcher) GetTemplateValues() map[string]string
- func (msg *PathTemplateMatcher) MarshalJSON() ([]byte, error)
- func (*PathTemplateMatcher) ProtoMessage()
- func (x *PathTemplateMatcher) ProtoReflect() protoreflect.Message
- func (x *PathTemplateMatcher) Reset()
- func (x *PathTemplateMatcher) String() string
- func (msg *PathTemplateMatcher) UnmarshalJSON(b []byte) error
- type Policy
- func (in *Policy) DeepCopy() *Policy
- func (in *Policy) DeepCopyInterface() interface{}
- func (in *Policy) DeepCopyInto(out *Policy)
- func (*Policy) Descriptor() ([]byte, []int)deprecated
- func (x *Policy) GetCircuit() *Circuit
- func (x *Policy) GetResources() *Resources
- func (msg *Policy) MarshalJSON() ([]byte, error)
- func (*Policy) ProtoMessage()
- func (x *Policy) ProtoReflect() protoreflect.Message
- func (x *Policy) Reset()
- func (x *Policy) String() string
- func (msg *Policy) UnmarshalJSON(b []byte) error
- type PolicyServiceClient
- type PolicyServiceServer
- type Port
- func (in *Port) DeepCopy() *Port
- func (in *Port) DeepCopyInterface() interface{}
- func (in *Port) DeepCopyInto(out *Port)
- func (*Port) Descriptor() ([]byte, []int)deprecated
- func (x *Port) GetSignalName() string
- func (msg *Port) MarshalJSON() ([]byte, error)
- func (*Port) ProtoMessage()
- func (x *Port) ProtoReflect() protoreflect.Message
- func (x *Port) Reset()
- func (x *Port) String() string
- func (msg *Port) UnmarshalJSON(b []byte) error
- type PromQL
- func (in *PromQL) DeepCopy() *PromQL
- func (in *PromQL) DeepCopyInterface() interface{}
- func (in *PromQL) DeepCopyInto(out *PromQL)
- func (*PromQL) Descriptor() ([]byte, []int)deprecated
- func (x *PromQL) GetEvaluationInterval() *durationpb.Duration
- func (x *PromQL) GetOutPorts() *PromQL_Outs
- func (x *PromQL) GetQueryString() string
- func (msg *PromQL) MarshalJSON() ([]byte, error)
- func (*PromQL) ProtoMessage()
- func (x *PromQL) ProtoReflect() protoreflect.Message
- func (x *PromQL) Reset()
- func (x *PromQL) String() string
- func (msg *PromQL) UnmarshalJSON(b []byte) error
- type PromQL_Outs
- func (in *PromQL_Outs) DeepCopy() *PromQL_Outs
- func (in *PromQL_Outs) DeepCopyInterface() interface{}
- func (in *PromQL_Outs) DeepCopyInto(out *PromQL_Outs)
- func (*PromQL_Outs) Descriptor() ([]byte, []int)deprecated
- func (x *PromQL_Outs) GetOutput() *Port
- func (msg *PromQL_Outs) MarshalJSON() ([]byte, error)
- func (*PromQL_Outs) ProtoMessage()
- func (x *PromQL_Outs) ProtoReflect() protoreflect.Message
- func (x *PromQL_Outs) Reset()
- func (x *PromQL_Outs) String() string
- func (msg *PromQL_Outs) UnmarshalJSON(b []byte) error
- type RateLimiter
- func (in *RateLimiter) DeepCopy() *RateLimiter
- func (in *RateLimiter) DeepCopyInterface() interface{}
- func (in *RateLimiter) DeepCopyInto(out *RateLimiter)
- func (*RateLimiter) Descriptor() ([]byte, []int)deprecated
- func (x *RateLimiter) GetInPorts() *RateLimiter_Ins
- func (x *RateLimiter) GetLabelKey() string
- func (x *RateLimiter) GetLazySync() *RateLimiter_LazySync
- func (x *RateLimiter) GetLimitResetInterval() *durationpb.Duration
- func (x *RateLimiter) GetOverrides() []*RateLimiter_Override
- func (x *RateLimiter) GetSelector() *v1.Selector
- func (msg *RateLimiter) MarshalJSON() ([]byte, error)
- func (*RateLimiter) ProtoMessage()
- func (x *RateLimiter) ProtoReflect() protoreflect.Message
- func (x *RateLimiter) Reset()
- func (x *RateLimiter) String() string
- func (msg *RateLimiter) UnmarshalJSON(b []byte) error
- type RateLimiter_Ins
- func (in *RateLimiter_Ins) DeepCopy() *RateLimiter_Ins
- func (in *RateLimiter_Ins) DeepCopyInterface() interface{}
- func (in *RateLimiter_Ins) DeepCopyInto(out *RateLimiter_Ins)
- func (*RateLimiter_Ins) Descriptor() ([]byte, []int)deprecated
- func (x *RateLimiter_Ins) GetLimit() *Port
- func (msg *RateLimiter_Ins) MarshalJSON() ([]byte, error)
- func (*RateLimiter_Ins) ProtoMessage()
- func (x *RateLimiter_Ins) ProtoReflect() protoreflect.Message
- func (x *RateLimiter_Ins) Reset()
- func (x *RateLimiter_Ins) String() string
- func (msg *RateLimiter_Ins) UnmarshalJSON(b []byte) error
- type RateLimiter_LazySync
- func (in *RateLimiter_LazySync) DeepCopy() *RateLimiter_LazySync
- func (in *RateLimiter_LazySync) DeepCopyInterface() interface{}
- func (in *RateLimiter_LazySync) DeepCopyInto(out *RateLimiter_LazySync)
- func (*RateLimiter_LazySync) Descriptor() ([]byte, []int)deprecated
- func (x *RateLimiter_LazySync) GetEnabled() bool
- func (x *RateLimiter_LazySync) GetNumSync() uint32
- func (msg *RateLimiter_LazySync) MarshalJSON() ([]byte, error)
- func (*RateLimiter_LazySync) ProtoMessage()
- func (x *RateLimiter_LazySync) ProtoReflect() protoreflect.Message
- func (x *RateLimiter_LazySync) Reset()
- func (x *RateLimiter_LazySync) String() string
- func (msg *RateLimiter_LazySync) UnmarshalJSON(b []byte) error
- type RateLimiter_Override
- func (in *RateLimiter_Override) DeepCopy() *RateLimiter_Override
- func (in *RateLimiter_Override) DeepCopyInterface() interface{}
- func (in *RateLimiter_Override) DeepCopyInto(out *RateLimiter_Override)
- func (*RateLimiter_Override) Descriptor() ([]byte, []int)deprecated
- func (x *RateLimiter_Override) GetLabelValue() string
- func (x *RateLimiter_Override) GetLimitScaleFactor() float64
- func (msg *RateLimiter_Override) MarshalJSON() ([]byte, error)
- func (*RateLimiter_Override) ProtoMessage()
- func (x *RateLimiter_Override) ProtoReflect() protoreflect.Message
- func (x *RateLimiter_Override) Reset()
- func (x *RateLimiter_Override) String() string
- func (msg *RateLimiter_Override) UnmarshalJSON(b []byte) error
- type Resources
- func (in *Resources) DeepCopy() *Resources
- func (in *Resources) DeepCopyInterface() interface{}
- func (in *Resources) DeepCopyInto(out *Resources)
- func (*Resources) Descriptor() ([]byte, []int)deprecated
- func (x *Resources) GetClassifiers() []*Classifier
- func (x *Resources) GetFluxMeters() map[string]*FluxMeter
- func (msg *Resources) MarshalJSON() ([]byte, error)
- func (*Resources) ProtoMessage()
- func (x *Resources) ProtoReflect() protoreflect.Message
- func (x *Resources) Reset()
- func (x *Resources) String() string
- func (msg *Resources) UnmarshalJSON(b []byte) error
- type Rule
- func (in *Rule) DeepCopy() *Rule
- func (in *Rule) DeepCopyInterface() interface{}
- func (in *Rule) DeepCopyInto(out *Rule)
- func (*Rule) Descriptor() ([]byte, []int)deprecated
- func (x *Rule) GetExtractor() *Extractor
- func (x *Rule) GetHidden() bool
- func (x *Rule) GetPropagate() *wrapperspb.BoolValue
- func (x *Rule) GetRego() *Rule_Rego
- func (m *Rule) GetSource() isRule_Source
- func (msg *Rule) MarshalJSON() ([]byte, error)
- func (*Rule) ProtoMessage()
- func (x *Rule) ProtoReflect() protoreflect.Message
- func (x *Rule) Reset()
- func (x *Rule) String() string
- func (msg *Rule) UnmarshalJSON(b []byte) error
- type Rule_Extractor
- type Rule_Rego
- func (in *Rule_Rego) DeepCopy() *Rule_Rego
- func (in *Rule_Rego) DeepCopyInterface() interface{}
- func (in *Rule_Rego) DeepCopyInto(out *Rule_Rego)
- func (*Rule_Rego) Descriptor() ([]byte, []int)deprecated
- func (x *Rule_Rego) GetQuery() string
- func (x *Rule_Rego) GetSource() string
- func (msg *Rule_Rego) MarshalJSON() ([]byte, error)
- func (*Rule_Rego) ProtoMessage()
- func (x *Rule_Rego) ProtoReflect() protoreflect.Message
- func (x *Rule_Rego) Reset()
- func (x *Rule_Rego) String() string
- func (msg *Rule_Rego) UnmarshalJSON(b []byte) error
- type Rule_Rego_
- type Scheduler
- func (in *Scheduler) DeepCopy() *Scheduler
- func (in *Scheduler) DeepCopyInterface() interface{}
- func (in *Scheduler) DeepCopyInto(out *Scheduler)
- func (*Scheduler) Descriptor() ([]byte, []int)deprecated
- func (x *Scheduler) GetAutoTokens() bool
- func (x *Scheduler) GetDefaultWorkload() *Scheduler_Workload
- func (x *Scheduler) GetMaxTimeout() *durationpb.Duration
- func (x *Scheduler) GetOutPorts() *Scheduler_Outs
- func (x *Scheduler) GetSelector() *v1.Selector
- func (x *Scheduler) GetTimeoutFactor() float64
- func (x *Scheduler) GetWorkloads() []*Scheduler_WorkloadAndLabelMatcher
- func (msg *Scheduler) MarshalJSON() ([]byte, error)
- func (*Scheduler) ProtoMessage()
- func (x *Scheduler) ProtoReflect() protoreflect.Message
- func (x *Scheduler) Reset()
- func (x *Scheduler) String() string
- func (msg *Scheduler) UnmarshalJSON(b []byte) error
- type Scheduler_Outs
- func (in *Scheduler_Outs) DeepCopy() *Scheduler_Outs
- func (in *Scheduler_Outs) DeepCopyInterface() interface{}
- func (in *Scheduler_Outs) DeepCopyInto(out *Scheduler_Outs)
- func (*Scheduler_Outs) Descriptor() ([]byte, []int)deprecated
- func (x *Scheduler_Outs) GetAcceptedConcurrency() *Port
- func (x *Scheduler_Outs) GetIncomingConcurrency() *Port
- func (msg *Scheduler_Outs) MarshalJSON() ([]byte, error)
- func (*Scheduler_Outs) ProtoMessage()
- func (x *Scheduler_Outs) ProtoReflect() protoreflect.Message
- func (x *Scheduler_Outs) Reset()
- func (x *Scheduler_Outs) String() string
- func (msg *Scheduler_Outs) UnmarshalJSON(b []byte) error
- type Scheduler_Workload
- func (in *Scheduler_Workload) DeepCopy() *Scheduler_Workload
- func (in *Scheduler_Workload) DeepCopyInterface() interface{}
- func (in *Scheduler_Workload) DeepCopyInto(out *Scheduler_Workload)
- func (*Scheduler_Workload) Descriptor() ([]byte, []int)deprecated
- func (x *Scheduler_Workload) GetFairnessKey() string
- func (x *Scheduler_Workload) GetPriority() uint32
- func (x *Scheduler_Workload) GetTokens() uint64
- func (msg *Scheduler_Workload) MarshalJSON() ([]byte, error)
- func (*Scheduler_Workload) ProtoMessage()
- func (x *Scheduler_Workload) ProtoReflect() protoreflect.Message
- func (x *Scheduler_Workload) Reset()
- func (x *Scheduler_Workload) String() string
- func (msg *Scheduler_Workload) UnmarshalJSON(b []byte) error
- type Scheduler_WorkloadAndLabelMatcher
- func (in *Scheduler_WorkloadAndLabelMatcher) DeepCopy() *Scheduler_WorkloadAndLabelMatcher
- func (in *Scheduler_WorkloadAndLabelMatcher) DeepCopyInterface() interface{}
- func (in *Scheduler_WorkloadAndLabelMatcher) DeepCopyInto(out *Scheduler_WorkloadAndLabelMatcher)
- func (*Scheduler_WorkloadAndLabelMatcher) Descriptor() ([]byte, []int)deprecated
- func (x *Scheduler_WorkloadAndLabelMatcher) GetLabelMatcher() *v11.LabelMatcher
- func (x *Scheduler_WorkloadAndLabelMatcher) GetWorkload() *Scheduler_Workload
- func (msg *Scheduler_WorkloadAndLabelMatcher) MarshalJSON() ([]byte, error)
- func (*Scheduler_WorkloadAndLabelMatcher) ProtoMessage()
- func (x *Scheduler_WorkloadAndLabelMatcher) ProtoReflect() protoreflect.Message
- func (x *Scheduler_WorkloadAndLabelMatcher) Reset()
- func (x *Scheduler_WorkloadAndLabelMatcher) String() string
- func (msg *Scheduler_WorkloadAndLabelMatcher) UnmarshalJSON(b []byte) error
- type Sqrt
- func (in *Sqrt) DeepCopy() *Sqrt
- func (in *Sqrt) DeepCopyInterface() interface{}
- func (in *Sqrt) DeepCopyInto(out *Sqrt)
- func (*Sqrt) Descriptor() ([]byte, []int)deprecated
- func (x *Sqrt) GetInPorts() *Sqrt_Ins
- func (x *Sqrt) GetOutPorts() *Sqrt_Outs
- func (x *Sqrt) GetScale() float64
- func (msg *Sqrt) MarshalJSON() ([]byte, error)
- func (*Sqrt) ProtoMessage()
- func (x *Sqrt) ProtoReflect() protoreflect.Message
- func (x *Sqrt) Reset()
- func (x *Sqrt) String() string
- func (msg *Sqrt) UnmarshalJSON(b []byte) error
- type Sqrt_Ins
- func (in *Sqrt_Ins) DeepCopy() *Sqrt_Ins
- func (in *Sqrt_Ins) DeepCopyInterface() interface{}
- func (in *Sqrt_Ins) DeepCopyInto(out *Sqrt_Ins)
- func (*Sqrt_Ins) Descriptor() ([]byte, []int)deprecated
- func (x *Sqrt_Ins) GetInput() *Port
- func (msg *Sqrt_Ins) MarshalJSON() ([]byte, error)
- func (*Sqrt_Ins) ProtoMessage()
- func (x *Sqrt_Ins) ProtoReflect() protoreflect.Message
- func (x *Sqrt_Ins) Reset()
- func (x *Sqrt_Ins) String() string
- func (msg *Sqrt_Ins) UnmarshalJSON(b []byte) error
- type Sqrt_Outs
- func (in *Sqrt_Outs) DeepCopy() *Sqrt_Outs
- func (in *Sqrt_Outs) DeepCopyInterface() interface{}
- func (in *Sqrt_Outs) DeepCopyInto(out *Sqrt_Outs)
- func (*Sqrt_Outs) Descriptor() ([]byte, []int)deprecated
- func (x *Sqrt_Outs) GetOutput() *Port
- func (msg *Sqrt_Outs) MarshalJSON() ([]byte, error)
- func (*Sqrt_Outs) ProtoMessage()
- func (x *Sqrt_Outs) ProtoReflect() protoreflect.Message
- func (x *Sqrt_Outs) Reset()
- func (x *Sqrt_Outs) String() string
- func (msg *Sqrt_Outs) UnmarshalJSON(b []byte) error
- type UnimplementedPolicyServiceServer
- type UnsafePolicyServiceServer
Constants ¶
This section is empty.
Variables ¶
var File_aperture_policy_language_v1_classifier_proto protoreflect.FileDescriptor
var File_aperture_policy_language_v1_fluxmeter_proto protoreflect.FileDescriptor
var File_aperture_policy_language_v1_policy_proto protoreflect.FileDescriptor
var PolicyService_ServiceDesc = grpc.ServiceDesc{ ServiceName: "aperture.policy.language.v1.PolicyService", HandlerType: (*PolicyServiceServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "AllPolicies", Handler: _PolicyService_AllPolicies_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "aperture/policy/language/v1/policy.proto", }
PolicyService_ServiceDesc is the grpc.ServiceDesc for PolicyService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
Functions ¶
func RegisterPolicyServiceHandler ¶
func RegisterPolicyServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error
RegisterPolicyServiceHandler registers the http handlers for service PolicyService to "mux". The handlers forward requests to the grpc endpoint over "conn".
func RegisterPolicyServiceHandlerClient ¶
func RegisterPolicyServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client PolicyServiceClient) error
RegisterPolicyServiceHandlerClient registers the http handlers for service PolicyService to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "PolicyServiceClient". Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "PolicyServiceClient" doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in "PolicyServiceClient" to call the correct interceptors.
func RegisterPolicyServiceHandlerFromEndpoint ¶
func RegisterPolicyServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error)
RegisterPolicyServiceHandlerFromEndpoint is same as RegisterPolicyServiceHandler but automatically dials to "endpoint" and closes the connection when "ctx" gets done.
func RegisterPolicyServiceHandlerServer ¶
func RegisterPolicyServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server PolicyServiceServer) error
RegisterPolicyServiceHandlerServer registers the http handlers for service PolicyService to "mux". UnaryRPC :call PolicyServiceServer directly. StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterPolicyServiceHandlerFromEndpoint instead.
func RegisterPolicyServiceServer ¶
func RegisterPolicyServiceServer(s grpc.ServiceRegistrar, srv PolicyServiceServer)
Types ¶
type AddressExtractor ¶
type AddressExtractor struct { // Attribute path pointing to some string - eg. "source.address". From string `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty" validate:"required"` //@gotags: validate:"required" // contains filtered or unexported fields }
Display an [Address]ext-authz-address as a single string, eg. `<ip>:<port>`
IP addresses in attribute context are defined as objects with separate ip and port fields. This is a helper to display an address as a single string.
Note: Use with care, as it might accidentally introduce a high-cardinality flow label values.
Example: ```yaml from: "source.address # or dstination.address" ```
func (*AddressExtractor) DeepCopy ¶ added in v0.1.2
func (in *AddressExtractor) DeepCopy() *AddressExtractor
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddressExtractor. Required by controller-gen.
func (*AddressExtractor) DeepCopyInterface ¶ added in v0.1.2
func (in *AddressExtractor) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new AddressExtractor. Required by controller-gen.
func (*AddressExtractor) DeepCopyInto ¶ added in v0.1.2
func (in *AddressExtractor) DeepCopyInto(out *AddressExtractor)
DeepCopyInto supports using AddressExtractor within kubernetes types, where deepcopy-gen is used.
func (*AddressExtractor) Descriptor
deprecated
func (*AddressExtractor) Descriptor() ([]byte, []int)
Deprecated: Use AddressExtractor.ProtoReflect.Descriptor instead.
func (*AddressExtractor) GetFrom ¶
func (x *AddressExtractor) GetFrom() string
func (*AddressExtractor) MarshalJSON ¶
func (msg *AddressExtractor) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*AddressExtractor) ProtoMessage ¶
func (*AddressExtractor) ProtoMessage()
func (*AddressExtractor) ProtoReflect ¶
func (x *AddressExtractor) ProtoReflect() protoreflect.Message
func (*AddressExtractor) Reset ¶
func (x *AddressExtractor) Reset()
func (*AddressExtractor) String ¶
func (x *AddressExtractor) String() string
func (*AddressExtractor) UnmarshalJSON ¶
func (msg *AddressExtractor) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type AllPolicies ¶
type AllPolicies struct { AllPolicies map[string]*Policy `` /* 182-byte string literal not displayed */ // contains filtered or unexported fields }
func (*AllPolicies) DeepCopy ¶ added in v0.1.2
func (in *AllPolicies) DeepCopy() *AllPolicies
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllPolicies. Required by controller-gen.
func (*AllPolicies) DeepCopyInterface ¶ added in v0.1.2
func (in *AllPolicies) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new AllPolicies. Required by controller-gen.
func (*AllPolicies) DeepCopyInto ¶ added in v0.1.2
func (in *AllPolicies) DeepCopyInto(out *AllPolicies)
DeepCopyInto supports using AllPolicies within kubernetes types, where deepcopy-gen is used.
func (*AllPolicies) Descriptor
deprecated
func (*AllPolicies) Descriptor() ([]byte, []int)
Deprecated: Use AllPolicies.ProtoReflect.Descriptor instead.
func (*AllPolicies) GetAllPolicies ¶
func (x *AllPolicies) GetAllPolicies() map[string]*Policy
func (*AllPolicies) MarshalJSON ¶
func (msg *AllPolicies) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*AllPolicies) ProtoMessage ¶
func (*AllPolicies) ProtoMessage()
func (*AllPolicies) ProtoReflect ¶
func (x *AllPolicies) ProtoReflect() protoreflect.Message
func (*AllPolicies) Reset ¶
func (x *AllPolicies) Reset()
func (*AllPolicies) String ¶
func (x *AllPolicies) String() string
func (*AllPolicies) UnmarshalJSON ¶
func (msg *AllPolicies) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type AllPoliciesResponse ¶
type AllPoliciesResponse struct { AllPolicies *AllPolicies `protobuf:"bytes,1,opt,name=all_policies,json=allPolicies,proto3" json:"all_policies,omitempty"` // contains filtered or unexported fields }
func (*AllPoliciesResponse) DeepCopy ¶ added in v0.1.2
func (in *AllPoliciesResponse) DeepCopy() *AllPoliciesResponse
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllPoliciesResponse. Required by controller-gen.
func (*AllPoliciesResponse) DeepCopyInterface ¶ added in v0.1.2
func (in *AllPoliciesResponse) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new AllPoliciesResponse. Required by controller-gen.
func (*AllPoliciesResponse) DeepCopyInto ¶ added in v0.1.2
func (in *AllPoliciesResponse) DeepCopyInto(out *AllPoliciesResponse)
DeepCopyInto supports using AllPoliciesResponse within kubernetes types, where deepcopy-gen is used.
func (*AllPoliciesResponse) Descriptor
deprecated
func (*AllPoliciesResponse) Descriptor() ([]byte, []int)
Deprecated: Use AllPoliciesResponse.ProtoReflect.Descriptor instead.
func (*AllPoliciesResponse) GetAllPolicies ¶
func (x *AllPoliciesResponse) GetAllPolicies() *AllPolicies
func (*AllPoliciesResponse) MarshalJSON ¶
func (msg *AllPoliciesResponse) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*AllPoliciesResponse) ProtoMessage ¶
func (*AllPoliciesResponse) ProtoMessage()
func (*AllPoliciesResponse) ProtoReflect ¶
func (x *AllPoliciesResponse) ProtoReflect() protoreflect.Message
func (*AllPoliciesResponse) Reset ¶
func (x *AllPoliciesResponse) Reset()
func (*AllPoliciesResponse) String ¶
func (x *AllPoliciesResponse) String() string
func (*AllPoliciesResponse) UnmarshalJSON ¶
func (msg *AllPoliciesResponse) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type ArithmeticCombinator ¶
type ArithmeticCombinator struct { // Input ports for the Arithmetic Combinator component. InPorts *ArithmeticCombinator_Ins `protobuf:"bytes,1,opt,name=in_ports,json=inPorts,proto3" json:"in_ports,omitempty"` // Output ports for the Arithmetic Combinator component. OutPorts *ArithmeticCombinator_Outs `protobuf:"bytes,2,opt,name=out_ports,json=outPorts,proto3" json:"out_ports,omitempty"` // Operator of the arithmetic operation. // // The arithmetic operation can be addition, subtraction, multiplication, division, XOR, right bit shift or left bit shift. // In case of XOR and bitshifts, value of signals is cast to integers before performing the operation. Operator string `protobuf:"bytes,3,opt,name=operator,proto3" json:"operator,omitempty" validate:"oneof=add sub mul div xor lshift rshift"` // @gotags: validate:"oneof=add sub mul div xor lshift rshift" // contains filtered or unexported fields }
Type of combinator that computes the arithmetic operation on the operand signals
func (*ArithmeticCombinator) DeepCopy ¶ added in v0.1.2
func (in *ArithmeticCombinator) DeepCopy() *ArithmeticCombinator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArithmeticCombinator. Required by controller-gen.
func (*ArithmeticCombinator) DeepCopyInterface ¶ added in v0.1.2
func (in *ArithmeticCombinator) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new ArithmeticCombinator. Required by controller-gen.
func (*ArithmeticCombinator) DeepCopyInto ¶ added in v0.1.2
func (in *ArithmeticCombinator) DeepCopyInto(out *ArithmeticCombinator)
DeepCopyInto supports using ArithmeticCombinator within kubernetes types, where deepcopy-gen is used.
func (*ArithmeticCombinator) Descriptor
deprecated
func (*ArithmeticCombinator) Descriptor() ([]byte, []int)
Deprecated: Use ArithmeticCombinator.ProtoReflect.Descriptor instead.
func (*ArithmeticCombinator) GetInPorts ¶
func (x *ArithmeticCombinator) GetInPorts() *ArithmeticCombinator_Ins
func (*ArithmeticCombinator) GetOperator ¶
func (x *ArithmeticCombinator) GetOperator() string
func (*ArithmeticCombinator) GetOutPorts ¶
func (x *ArithmeticCombinator) GetOutPorts() *ArithmeticCombinator_Outs
func (*ArithmeticCombinator) MarshalJSON ¶
func (msg *ArithmeticCombinator) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*ArithmeticCombinator) ProtoMessage ¶
func (*ArithmeticCombinator) ProtoMessage()
func (*ArithmeticCombinator) ProtoReflect ¶
func (x *ArithmeticCombinator) ProtoReflect() protoreflect.Message
func (*ArithmeticCombinator) Reset ¶
func (x *ArithmeticCombinator) Reset()
func (*ArithmeticCombinator) String ¶
func (x *ArithmeticCombinator) String() string
func (*ArithmeticCombinator) UnmarshalJSON ¶
func (msg *ArithmeticCombinator) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type ArithmeticCombinator_Ins ¶
type ArithmeticCombinator_Ins struct { // Left hand side of the arithmetic operation. Lhs *Port `protobuf:"bytes,1,opt,name=lhs,proto3" json:"lhs,omitempty"` // Right hand side of the arithmetic operation. Rhs *Port `protobuf:"bytes,2,opt,name=rhs,proto3" json:"rhs,omitempty"` // contains filtered or unexported fields }
Inputs for the Arithmetic Combinator component.
func (*ArithmeticCombinator_Ins) DeepCopy ¶ added in v0.1.2
func (in *ArithmeticCombinator_Ins) DeepCopy() *ArithmeticCombinator_Ins
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArithmeticCombinator_Ins. Required by controller-gen.
func (*ArithmeticCombinator_Ins) DeepCopyInterface ¶ added in v0.1.2
func (in *ArithmeticCombinator_Ins) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new ArithmeticCombinator_Ins. Required by controller-gen.
func (*ArithmeticCombinator_Ins) DeepCopyInto ¶ added in v0.1.2
func (in *ArithmeticCombinator_Ins) DeepCopyInto(out *ArithmeticCombinator_Ins)
DeepCopyInto supports using ArithmeticCombinator_Ins within kubernetes types, where deepcopy-gen is used.
func (*ArithmeticCombinator_Ins) Descriptor
deprecated
func (*ArithmeticCombinator_Ins) Descriptor() ([]byte, []int)
Deprecated: Use ArithmeticCombinator_Ins.ProtoReflect.Descriptor instead.
func (*ArithmeticCombinator_Ins) GetLhs ¶
func (x *ArithmeticCombinator_Ins) GetLhs() *Port
func (*ArithmeticCombinator_Ins) GetRhs ¶
func (x *ArithmeticCombinator_Ins) GetRhs() *Port
func (*ArithmeticCombinator_Ins) MarshalJSON ¶
func (msg *ArithmeticCombinator_Ins) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*ArithmeticCombinator_Ins) ProtoMessage ¶
func (*ArithmeticCombinator_Ins) ProtoMessage()
func (*ArithmeticCombinator_Ins) ProtoReflect ¶
func (x *ArithmeticCombinator_Ins) ProtoReflect() protoreflect.Message
func (*ArithmeticCombinator_Ins) Reset ¶
func (x *ArithmeticCombinator_Ins) Reset()
func (*ArithmeticCombinator_Ins) String ¶
func (x *ArithmeticCombinator_Ins) String() string
func (*ArithmeticCombinator_Ins) UnmarshalJSON ¶
func (msg *ArithmeticCombinator_Ins) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type ArithmeticCombinator_Outs ¶
type ArithmeticCombinator_Outs struct { // Result of arithmetic operation. Output *Port `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` // contains filtered or unexported fields }
Outputs for the Arithmetic Combinator component.
func (*ArithmeticCombinator_Outs) DeepCopy ¶ added in v0.1.2
func (in *ArithmeticCombinator_Outs) DeepCopy() *ArithmeticCombinator_Outs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArithmeticCombinator_Outs. Required by controller-gen.
func (*ArithmeticCombinator_Outs) DeepCopyInterface ¶ added in v0.1.2
func (in *ArithmeticCombinator_Outs) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new ArithmeticCombinator_Outs. Required by controller-gen.
func (*ArithmeticCombinator_Outs) DeepCopyInto ¶ added in v0.1.2
func (in *ArithmeticCombinator_Outs) DeepCopyInto(out *ArithmeticCombinator_Outs)
DeepCopyInto supports using ArithmeticCombinator_Outs within kubernetes types, where deepcopy-gen is used.
func (*ArithmeticCombinator_Outs) Descriptor
deprecated
func (*ArithmeticCombinator_Outs) Descriptor() ([]byte, []int)
Deprecated: Use ArithmeticCombinator_Outs.ProtoReflect.Descriptor instead.
func (*ArithmeticCombinator_Outs) GetOutput ¶
func (x *ArithmeticCombinator_Outs) GetOutput() *Port
func (*ArithmeticCombinator_Outs) MarshalJSON ¶
func (msg *ArithmeticCombinator_Outs) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*ArithmeticCombinator_Outs) ProtoMessage ¶
func (*ArithmeticCombinator_Outs) ProtoMessage()
func (*ArithmeticCombinator_Outs) ProtoReflect ¶
func (x *ArithmeticCombinator_Outs) ProtoReflect() protoreflect.Message
func (*ArithmeticCombinator_Outs) Reset ¶
func (x *ArithmeticCombinator_Outs) Reset()
func (*ArithmeticCombinator_Outs) String ¶
func (x *ArithmeticCombinator_Outs) String() string
func (*ArithmeticCombinator_Outs) UnmarshalJSON ¶
func (msg *ArithmeticCombinator_Outs) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type Circuit ¶
type Circuit struct { // Evaluation interval (tick) is the time period between consecutive runs of the policy circuit. // This interval is typically aligned with how often the corrective action (actuation) needs to be taken. EvaluationInterval *durationpb.Duration `` // @gotags: default:"0.5s" /* 130-byte string literal not displayed */ // Defines a signal processing graph as a list of components. Components []*Component `protobuf:"bytes,2,rep,name=components,proto3" json:"components,omitempty"` // contains filtered or unexported fields }
Circuit is defined as a dataflow graph of inter-connected components
Signals flow between components via ports. As signals traverse the circuit, they get processed, stored within components or get acted upon (e.g. load shed, rate-limit, auto-scale etc.). Circuit evaluated periodically in order to respond to changes in signal readings.
:::info **Signal**
Signals are floating-point values.
A signal also have a special **Invalid** value. It's usually used to communicate that signal doesn't have a meaningful value at the moment, eg. PromQL(#v1-prom-q-l) emits such a value if it cannot execute a query. Components know when their input signals are invalid and can act accordingly. They can either propagate the invalidness, by making their output itself invalid (like eg. ArithmeticCombinator(#v1-arithmetic-combinator)) or use some different logic, like eg. Extrapolator(#v1-extrapolator). Refer to a component's docs on how exactly it handles invalid inputs. :::
func (*Circuit) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Circuit. Required by controller-gen.
func (*Circuit) DeepCopyInterface ¶ added in v0.1.2
func (in *Circuit) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Circuit. Required by controller-gen.
func (*Circuit) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Circuit within kubernetes types, where deepcopy-gen is used.
func (*Circuit) Descriptor
deprecated
func (*Circuit) GetComponents ¶
func (*Circuit) GetEvaluationInterval ¶
func (x *Circuit) GetEvaluationInterval() *durationpb.Duration
func (*Circuit) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Circuit) ProtoMessage ¶
func (*Circuit) ProtoMessage()
func (*Circuit) ProtoReflect ¶
func (x *Circuit) ProtoReflect() protoreflect.Message
func (*Circuit) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Classifier ¶
type Classifier struct { // Defines where to apply the flow classification rule. Selector *v1.Selector `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"` // A map of {key, value} pairs mapping from // [flow label](/concepts/flow-control/label/label.md) keys to rules that define // how to extract and propagate flow labels with that key. Rules map[string]*Rule `` /* 151-byte string literal not displayed */ // contains filtered or unexported fields }
Set of classification rules sharing a common selector
:::info See also [Classifier overview](/concepts/flow-control/label/classifier.md). :::
Example: ```yaml selector:
service: service1.default.svc.cluster.local control_point: traffic: ingress
rules:
user: extractor: from: request.http.headers.user
```
func (*Classifier) DeepCopy ¶ added in v0.1.2
func (in *Classifier) DeepCopy() *Classifier
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Classifier. Required by controller-gen.
func (*Classifier) DeepCopyInterface ¶ added in v0.1.2
func (in *Classifier) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Classifier. Required by controller-gen.
func (*Classifier) DeepCopyInto ¶ added in v0.1.2
func (in *Classifier) DeepCopyInto(out *Classifier)
DeepCopyInto supports using Classifier within kubernetes types, where deepcopy-gen is used.
func (*Classifier) Descriptor
deprecated
func (*Classifier) Descriptor() ([]byte, []int)
Deprecated: Use Classifier.ProtoReflect.Descriptor instead.
func (*Classifier) GetRules ¶
func (x *Classifier) GetRules() map[string]*Rule
func (*Classifier) GetSelector ¶
func (x *Classifier) GetSelector() *v1.Selector
func (*Classifier) MarshalJSON ¶
func (msg *Classifier) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*Classifier) ProtoMessage ¶
func (*Classifier) ProtoMessage()
func (*Classifier) ProtoReflect ¶
func (x *Classifier) ProtoReflect() protoreflect.Message
func (*Classifier) Reset ¶
func (x *Classifier) Reset()
func (*Classifier) String ¶
func (x *Classifier) String() string
func (*Classifier) UnmarshalJSON ¶
func (msg *Classifier) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type Component ¶
type Component struct { // Types that are assignable to Component: // *Component_GradientController // *Component_Ema // *Component_ArithmeticCombinator // *Component_Decider // *Component_ConcurrencyLimiter // *Component_RateLimiter // *Component_Promql // *Component_Constant // *Component_Sqrt // *Component_Extrapolator // *Component_Max // *Component_Min Component isComponent_Component `protobuf_oneof:"component"` // contains filtered or unexported fields }
Computational block that form the circuit
Signals flow into the components via input ports and results are emitted on output ports. Components are wired to each other based on signal names forming an execution graph of the circuit.
:::note Loops are broken by the runtime at the earliest component index that is part of the loop. The looped signals are saved in the tick they are generated and served in the subsequent tick. :::
There are three categories of components:
- "source" components – they take some sort of input from "the real world" and output a signal based on this input. Example: PromQL(#v1-prom-q-l). In the UI they're represented by green color.
- internal components – "pure" components that don't interact with the "real world". Examples: GradientController(#v1-gradient-controller), Max(#v1-max). :::note Internal components's output can depend on their internal state, in addition to the inputs. Eg. see the [Exponential Moving Average filter](#v1-e-m-a). :::
- "sink" components – they affect the real world. ConcurrencyLimiter(#languagev1-concurrency-limiter) and RateLimiter(#languagev1-rate-limiter). Also sometimes called [_actuators_](/concepts/flow-control/actuators/actuators.md). In the UI, represented by orange color. Sink components are usually also "sources" too, they usually emit a feedback signal, like `accepted_concurrency` in case of ConcurrencyLimiter.
:::tip Sometimes you may want to use a constant value as one of component's inputs. You can use the Constant(#v1-constant) component for this. :::
See also Policy(#v1-policy) for a higher-level explanation of circuits.
func (*Component) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Component. Required by controller-gen.
func (*Component) DeepCopyInterface ¶ added in v0.1.2
func (in *Component) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Component. Required by controller-gen.
func (*Component) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Component within kubernetes types, where deepcopy-gen is used.
func (*Component) Descriptor
deprecated
func (*Component) GetArithmeticCombinator ¶
func (x *Component) GetArithmeticCombinator() *ArithmeticCombinator
func (*Component) GetComponent ¶
func (m *Component) GetComponent() isComponent_Component
func (*Component) GetConcurrencyLimiter ¶
func (x *Component) GetConcurrencyLimiter() *ConcurrencyLimiter
func (*Component) GetConstant ¶
func (*Component) GetDecider ¶
func (*Component) GetExtrapolator ¶
func (x *Component) GetExtrapolator() *Extrapolator
func (*Component) GetGradientController ¶
func (x *Component) GetGradientController() *GradientController
func (*Component) GetRateLimiter ¶
func (x *Component) GetRateLimiter() *RateLimiter
func (*Component) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Component) ProtoMessage ¶
func (*Component) ProtoMessage()
func (*Component) ProtoReflect ¶
func (x *Component) ProtoReflect() protoreflect.Message
func (*Component) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Component_ArithmeticCombinator ¶
type Component_ArithmeticCombinator struct { // Applies the given operator on input operands (signals) and emits the result. ArithmeticCombinator *ArithmeticCombinator `protobuf:"bytes,3,opt,name=arithmetic_combinator,json=arithmeticCombinator,proto3,oneof"` }
type Component_ConcurrencyLimiter ¶
type Component_ConcurrencyLimiter struct { // Concurrency Limiter provides service protection by applying prioritized load shedding of flows using a network scheduler (e.g. Weighted Fair Queuing). ConcurrencyLimiter *ConcurrencyLimiter `protobuf:"bytes,5,opt,name=concurrency_limiter,json=concurrencyLimiter,proto3,oneof"` }
type Component_Constant ¶
type Component_Constant struct { // Emits a constant signal. Constant *Constant `protobuf:"bytes,8,opt,name=constant,proto3,oneof"` }
type Component_Decider ¶
type Component_Decider struct { // Decider acts as a switch that emits one of the two signals based on the binary result of comparison operator on two operands. Decider *Decider `protobuf:"bytes,4,opt,name=decider,proto3,oneof"` }
type Component_Ema ¶
type Component_Ema struct { // Exponential Moving Average filter. Ema *EMA `protobuf:"bytes,2,opt,name=ema,proto3,oneof"` }
type Component_Extrapolator ¶
type Component_Extrapolator struct { // Takes an input signal and emits the extrapolated value; either mirroring the input value or repeating the last known value up to the maximum extrapolation interval. Extrapolator *Extrapolator `protobuf:"bytes,10,opt,name=extrapolator,proto3,oneof"` }
type Component_GradientController ¶
type Component_GradientController struct { // Gradient controller basically calculates the ratio between the signal and the setpoint to determine the magnitude of the correction that need to be applied. // This controller can be used to build AIMD (Additive Increase, Multiplicative Decrease) or MIMD style response. GradientController *GradientController `protobuf:"bytes,1,opt,name=gradient_controller,json=gradientController,proto3,oneof"` }
type Component_Max ¶
type Component_Max struct { // Emits the maximum of the input siganls. Max *Max `protobuf:"bytes,11,opt,name=max,proto3,oneof"` }
type Component_Min ¶
type Component_Min struct { // Emits the minimum of the input signals. Min *Min `protobuf:"bytes,12,opt,name=min,proto3,oneof"` }
type Component_Promql ¶
type Component_Promql struct { // Periodically runs a Prometheus query in the background and emits the result. Promql *PromQL `protobuf:"bytes,7,opt,name=promql,proto3,oneof"` }
type Component_RateLimiter ¶
type Component_RateLimiter struct { // Rate Limiter provides service protection by applying rate limiter. RateLimiter *RateLimiter `protobuf:"bytes,6,opt,name=rate_limiter,json=rateLimiter,proto3,oneof"` }
type Component_Sqrt ¶
type Component_Sqrt struct { // Takes an input signal and emits the square root of the input signal. Sqrt *Sqrt `protobuf:"bytes,9,opt,name=sqrt,proto3,oneof"` }
type ConcurrencyLimiter ¶
type ConcurrencyLimiter struct { // Configuration of Weighted Fair Queuing-based workload scheduler. // // Contains configuration of per-agent scheduler, and also defines some // output signals. Scheduler *Scheduler `protobuf:"bytes,1,opt,name=scheduler,proto3" json:"scheduler,omitempty" validate:"required"` // @gotags: validate:"required" // Types that are assignable to ActuationStrategy: // *ConcurrencyLimiter_LoadShedActuator ActuationStrategy isConcurrencyLimiter_ActuationStrategy `protobuf_oneof:"actuation_strategy"` // contains filtered or unexported fields }
Concurrency Limiter is an actuator component that regulates flows in order to provide active service protection
:::info See also [Scheduler overview](/concepts/flow-control/actuators/scheduler.md). :::
It is based on the actuation strategy (e.g. load shed) and workload scheduling which is based on Weighted Fair Queuing principles. Concurrency is calculated in terms of total tokens which translate to (avg. latency \* inflight requests), i.e. Little's Law.
ConcurrencyLimiter configuration is split into two parts: An actuation strategy and a scheduler. Right now, only `load_shed_actuator` strategy is available.
func (*ConcurrencyLimiter) DeepCopy ¶ added in v0.1.2
func (in *ConcurrencyLimiter) DeepCopy() *ConcurrencyLimiter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConcurrencyLimiter. Required by controller-gen.
func (*ConcurrencyLimiter) DeepCopyInterface ¶ added in v0.1.2
func (in *ConcurrencyLimiter) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new ConcurrencyLimiter. Required by controller-gen.
func (*ConcurrencyLimiter) DeepCopyInto ¶ added in v0.1.2
func (in *ConcurrencyLimiter) DeepCopyInto(out *ConcurrencyLimiter)
DeepCopyInto supports using ConcurrencyLimiter within kubernetes types, where deepcopy-gen is used.
func (*ConcurrencyLimiter) Descriptor
deprecated
func (*ConcurrencyLimiter) Descriptor() ([]byte, []int)
Deprecated: Use ConcurrencyLimiter.ProtoReflect.Descriptor instead.
func (*ConcurrencyLimiter) GetActuationStrategy ¶
func (m *ConcurrencyLimiter) GetActuationStrategy() isConcurrencyLimiter_ActuationStrategy
func (*ConcurrencyLimiter) GetLoadShedActuator ¶
func (x *ConcurrencyLimiter) GetLoadShedActuator() *LoadShedActuator
func (*ConcurrencyLimiter) GetScheduler ¶
func (x *ConcurrencyLimiter) GetScheduler() *Scheduler
func (*ConcurrencyLimiter) MarshalJSON ¶
func (msg *ConcurrencyLimiter) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*ConcurrencyLimiter) ProtoMessage ¶
func (*ConcurrencyLimiter) ProtoMessage()
func (*ConcurrencyLimiter) ProtoReflect ¶
func (x *ConcurrencyLimiter) ProtoReflect() protoreflect.Message
func (*ConcurrencyLimiter) Reset ¶
func (x *ConcurrencyLimiter) Reset()
func (*ConcurrencyLimiter) String ¶
func (x *ConcurrencyLimiter) String() string
func (*ConcurrencyLimiter) UnmarshalJSON ¶
func (msg *ConcurrencyLimiter) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type ConcurrencyLimiter_LoadShedActuator ¶
type ConcurrencyLimiter_LoadShedActuator struct { // Actuator based on load shedding a portion of requests. // // Actuation strategy defines the input signal that will drive the scheduler. LoadShedActuator *LoadShedActuator `protobuf:"bytes,2,opt,name=load_shed_actuator,json=loadShedActuator,proto3,oneof"` }
type Constant ¶
type Constant struct { // Output ports for the Constant component. OutPorts *Constant_Outs `protobuf:"bytes,1,opt,name=out_ports,json=outPorts,proto3" json:"out_ports,omitempty"` // The constant value to be emitted. Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"` // contains filtered or unexported fields }
Component that emits a constant value as an output signal
func (*Constant) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Constant. Required by controller-gen.
func (*Constant) DeepCopyInterface ¶ added in v0.1.2
func (in *Constant) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Constant. Required by controller-gen.
func (*Constant) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Constant within kubernetes types, where deepcopy-gen is used.
func (*Constant) Descriptor
deprecated
func (*Constant) GetOutPorts ¶
func (x *Constant) GetOutPorts() *Constant_Outs
func (*Constant) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Constant) ProtoMessage ¶
func (*Constant) ProtoMessage()
func (*Constant) ProtoReflect ¶
func (x *Constant) ProtoReflect() protoreflect.Message
func (*Constant) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Constant_Outs ¶
type Constant_Outs struct { // The constant value is emitted to the output port. Output *Port `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` // contains filtered or unexported fields }
Outputs for the Constant component.
func (*Constant_Outs) DeepCopy ¶ added in v0.1.2
func (in *Constant_Outs) DeepCopy() *Constant_Outs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Constant_Outs. Required by controller-gen.
func (*Constant_Outs) DeepCopyInterface ¶ added in v0.1.2
func (in *Constant_Outs) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Constant_Outs. Required by controller-gen.
func (*Constant_Outs) DeepCopyInto ¶ added in v0.1.2
func (in *Constant_Outs) DeepCopyInto(out *Constant_Outs)
DeepCopyInto supports using Constant_Outs within kubernetes types, where deepcopy-gen is used.
func (*Constant_Outs) Descriptor
deprecated
func (*Constant_Outs) Descriptor() ([]byte, []int)
Deprecated: Use Constant_Outs.ProtoReflect.Descriptor instead.
func (*Constant_Outs) GetOutput ¶
func (x *Constant_Outs) GetOutput() *Port
func (*Constant_Outs) MarshalJSON ¶
func (msg *Constant_Outs) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*Constant_Outs) ProtoMessage ¶
func (*Constant_Outs) ProtoMessage()
func (*Constant_Outs) ProtoReflect ¶
func (x *Constant_Outs) ProtoReflect() protoreflect.Message
func (*Constant_Outs) Reset ¶
func (x *Constant_Outs) Reset()
func (*Constant_Outs) String ¶
func (x *Constant_Outs) String() string
func (*Constant_Outs) UnmarshalJSON ¶
func (msg *Constant_Outs) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type Decider ¶
type Decider struct { // Input ports for the Decider component. InPorts *Decider_Ins `protobuf:"bytes,1,opt,name=in_ports,json=inPorts,proto3" json:"in_ports,omitempty"` // Output ports for the Decider component. OutPorts *Decider_Outs `protobuf:"bytes,2,opt,name=out_ports,json=outPorts,proto3" json:"out_ports,omitempty"` // Comparison operator that computes operation on lhs and rhs input signals. Operator string `protobuf:"bytes,3,opt,name=operator,proto3" json:"operator,omitempty" validate:"oneof=gt lt gte lte eq neq"` // @gotags: validate:"oneof=gt lt gte lte eq neq" // Duration of time to wait before a transition to true state. // If the duration is zero, the transition will happen instantaneously. TrueFor *durationpb.Duration `protobuf:"bytes,4,opt,name=true_for,json=trueFor,proto3" json:"true_for,omitempty" default:"0s"` // @gotags: default:"0s" // Duration of time to wait before a transition to false state. // If the duration is zero, the transition will happen instantaneously. FalseFor *durationpb.Duration `protobuf:"bytes,5,opt,name=false_for,json=falseFor,proto3" json:"false_for,omitempty" default:"0s"` // @gotags: default:"0s" // contains filtered or unexported fields }
Type of combinator that computes the comparison operation on lhs and rhs signals and switches between `on_true` and `on_false` signals based on the result of the comparison
The comparison operator can be greater-than, less-than, greater-than-or-equal, less-than-or-equal, equal, or not-equal.
This component also supports time-based response, i.e. the output transitions between on_true or on_false signal if the decider condition is true or false for at least "positive_for" or "negative_for" duration. If `true_for` and `false_for` durations are zero then the transitions are instantaneous.
func (*Decider) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Decider. Required by controller-gen.
func (*Decider) DeepCopyInterface ¶ added in v0.1.2
func (in *Decider) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Decider. Required by controller-gen.
func (*Decider) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Decider within kubernetes types, where deepcopy-gen is used.
func (*Decider) Descriptor
deprecated
func (*Decider) GetFalseFor ¶
func (x *Decider) GetFalseFor() *durationpb.Duration
func (*Decider) GetInPorts ¶
func (x *Decider) GetInPorts() *Decider_Ins
func (*Decider) GetOperator ¶
func (*Decider) GetOutPorts ¶
func (x *Decider) GetOutPorts() *Decider_Outs
func (*Decider) GetTrueFor ¶
func (x *Decider) GetTrueFor() *durationpb.Duration
func (*Decider) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Decider) ProtoMessage ¶
func (*Decider) ProtoMessage()
func (*Decider) ProtoReflect ¶
func (x *Decider) ProtoReflect() protoreflect.Message
func (*Decider) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Decider_Ins ¶
type Decider_Ins struct { // Left hand side input signal for the comparison operation. Lhs *Port `protobuf:"bytes,1,opt,name=lhs,proto3" json:"lhs,omitempty"` // Right hand side input signal for the comparison operation. Rhs *Port `protobuf:"bytes,2,opt,name=rhs,proto3" json:"rhs,omitempty"` // Output signal when the result of the operation is true. OnTrue *Port `protobuf:"bytes,3,opt,name=on_true,json=onTrue,proto3" json:"on_true,omitempty"` // Output signal when the result of the operation is false. OnFalse *Port `protobuf:"bytes,4,opt,name=on_false,json=onFalse,proto3" json:"on_false,omitempty"` // contains filtered or unexported fields }
Inputs for the Decider component.
func (*Decider_Ins) DeepCopy ¶ added in v0.1.2
func (in *Decider_Ins) DeepCopy() *Decider_Ins
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Decider_Ins. Required by controller-gen.
func (*Decider_Ins) DeepCopyInterface ¶ added in v0.1.2
func (in *Decider_Ins) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Decider_Ins. Required by controller-gen.
func (*Decider_Ins) DeepCopyInto ¶ added in v0.1.2
func (in *Decider_Ins) DeepCopyInto(out *Decider_Ins)
DeepCopyInto supports using Decider_Ins within kubernetes types, where deepcopy-gen is used.
func (*Decider_Ins) Descriptor
deprecated
func (*Decider_Ins) Descriptor() ([]byte, []int)
Deprecated: Use Decider_Ins.ProtoReflect.Descriptor instead.
func (*Decider_Ins) GetLhs ¶
func (x *Decider_Ins) GetLhs() *Port
func (*Decider_Ins) GetOnFalse ¶
func (x *Decider_Ins) GetOnFalse() *Port
func (*Decider_Ins) GetOnTrue ¶
func (x *Decider_Ins) GetOnTrue() *Port
func (*Decider_Ins) GetRhs ¶
func (x *Decider_Ins) GetRhs() *Port
func (*Decider_Ins) MarshalJSON ¶
func (msg *Decider_Ins) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*Decider_Ins) ProtoMessage ¶
func (*Decider_Ins) ProtoMessage()
func (*Decider_Ins) ProtoReflect ¶
func (x *Decider_Ins) ProtoReflect() protoreflect.Message
func (*Decider_Ins) Reset ¶
func (x *Decider_Ins) Reset()
func (*Decider_Ins) String ¶
func (x *Decider_Ins) String() string
func (*Decider_Ins) UnmarshalJSON ¶
func (msg *Decider_Ins) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type Decider_Outs ¶
type Decider_Outs struct { // Selected signal (on_true or on_false). Output *Port `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` // contains filtered or unexported fields }
Outputs for the Decider component.
func (*Decider_Outs) DeepCopy ¶ added in v0.1.2
func (in *Decider_Outs) DeepCopy() *Decider_Outs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Decider_Outs. Required by controller-gen.
func (*Decider_Outs) DeepCopyInterface ¶ added in v0.1.2
func (in *Decider_Outs) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Decider_Outs. Required by controller-gen.
func (*Decider_Outs) DeepCopyInto ¶ added in v0.1.2
func (in *Decider_Outs) DeepCopyInto(out *Decider_Outs)
DeepCopyInto supports using Decider_Outs within kubernetes types, where deepcopy-gen is used.
func (*Decider_Outs) Descriptor
deprecated
func (*Decider_Outs) Descriptor() ([]byte, []int)
Deprecated: Use Decider_Outs.ProtoReflect.Descriptor instead.
func (*Decider_Outs) GetOutput ¶
func (x *Decider_Outs) GetOutput() *Port
func (*Decider_Outs) MarshalJSON ¶
func (msg *Decider_Outs) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*Decider_Outs) ProtoMessage ¶
func (*Decider_Outs) ProtoMessage()
func (*Decider_Outs) ProtoReflect ¶
func (x *Decider_Outs) ProtoReflect() protoreflect.Message
func (*Decider_Outs) Reset ¶
func (x *Decider_Outs) Reset()
func (*Decider_Outs) String ¶
func (x *Decider_Outs) String() string
func (*Decider_Outs) UnmarshalJSON ¶
func (msg *Decider_Outs) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type EMA ¶
type EMA struct { // Input ports for the EMA component. InPorts *EMA_Ins `protobuf:"bytes,1,opt,name=in_ports,json=inPorts,proto3" json:"in_ports,omitempty"` // Output ports for the EMA component. OutPorts *EMA_Outs `protobuf:"bytes,2,opt,name=out_ports,json=outPorts,proto3" json:"out_ports,omitempty"` // Duration of EMA sampling window. EmaWindow *durationpb.Duration `protobuf:"bytes,3,opt,name=ema_window,json=emaWindow,proto3" json:"ema_window,omitempty" default:"5s"` // @gotags: default:"5s" // Duration of EMA warming up window. // // The initial value of the EMA is the average of signal readings received during the warm up window. WarmUpWindow *durationpb.Duration `protobuf:"bytes,4,opt,name=warm_up_window,json=warmUpWindow,proto3" json:"warm_up_window,omitempty" default:"0s"` // @gotags: default:"0s" // Correction factor to apply on the output value if its in violation of the min envelope. CorrectionFactorOnMinEnvelopeViolation float64 `` // @gotags: validate:"gte=1.0" default:"1.0" /* 218-byte string literal not displayed */ // Correction factor to apply on the output value if its in violation of the max envelope. CorrectionFactorOnMaxEnvelopeViolation float64 `` // @gotags: validate:"gte=0,lte=1.0" default:"1.0" /* 224-byte string literal not displayed */ // contains filtered or unexported fields }
Exponential Moving Average (EMA) is a type of moving average that applies exponenially more weight to recent signal readings
At any time EMA component operates in one of the following states:
- Warm up state: The first warm_up_window samples are used to compute the initial EMA. If an invalid reading is received during the warm_up_window, the last good average is emitted and the state gets reset back to beginning of Warm up state.
- Normal state: The EMA is computed using following formula.
The EMA for a series $Y$ is calculated recursively as:
$$ \text{EMA} _t = \begin{cases}
Y_0, &\text{for } t = 0 \\ \alpha Y_t + (1 - \alpha) \text{EMA} _{t-1}, &\text{for }t > 0
\end{cases} $$
The coefficient $\alpha$ represents the degree of weighting decrease, a constant smoothing factor between 0 and 1. A higher $\alpha$ discounts older observations faster. The $\alpha$ is computed using ema\_window:
$$ \alpha = \frac{2}{N + 1} \quad\text{where } N = \frac{\text{ema\_window}}{\text{evalutation\_period}} $$
The EMA filter also employs a min-max-envolope logic during warm up stage, explained [here](#v1-e-m-a-ins).
func (*EMA) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EMA. Required by controller-gen.
func (*EMA) DeepCopyInterface ¶ added in v0.1.2
func (in *EMA) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new EMA. Required by controller-gen.
func (*EMA) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using EMA within kubernetes types, where deepcopy-gen is used.
func (*EMA) Descriptor
deprecated
func (*EMA) GetCorrectionFactorOnMaxEnvelopeViolation ¶
func (*EMA) GetCorrectionFactorOnMinEnvelopeViolation ¶
func (*EMA) GetEmaWindow ¶
func (x *EMA) GetEmaWindow() *durationpb.Duration
func (*EMA) GetInPorts ¶
func (*EMA) GetOutPorts ¶
func (*EMA) GetWarmUpWindow ¶
func (x *EMA) GetWarmUpWindow() *durationpb.Duration
func (*EMA) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*EMA) ProtoMessage ¶
func (*EMA) ProtoMessage()
func (*EMA) ProtoReflect ¶
func (x *EMA) ProtoReflect() protoreflect.Message
func (*EMA) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type EMA_Ins ¶
type EMA_Ins struct { // Input signal to be used for the EMA computation. Input *Port `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` // Upper bound of the moving average. // // Used during the warm-up stage: if the signal would exceed `max_envelope` // it's multiplied by `correction_factor_on_max_envelope_violation` **once per tick**. // // :::note // If the signal deviates from `max_envelope` faster than the correction // faster, it might end up exceeding the envelope. // ::: // // :::note // The envelope logic is **not** used outside the warm-up stage! // ::: MaxEnvelope *Port `protobuf:"bytes,2,opt,name=max_envelope,json=maxEnvelope,proto3" json:"max_envelope,omitempty"` // Lower bound of the moving average. // // Used during the warm-up stage analoguously to `max_envelope`. MinEnvelope *Port `protobuf:"bytes,3,opt,name=min_envelope,json=minEnvelope,proto3" json:"min_envelope,omitempty"` // contains filtered or unexported fields }
Inputs for the EMA component.
func (*EMA_Ins) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EMA_Ins. Required by controller-gen.
func (*EMA_Ins) DeepCopyInterface ¶ added in v0.1.2
func (in *EMA_Ins) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new EMA_Ins. Required by controller-gen.
func (*EMA_Ins) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using EMA_Ins within kubernetes types, where deepcopy-gen is used.
func (*EMA_Ins) Descriptor
deprecated
func (*EMA_Ins) GetMaxEnvelope ¶
func (*EMA_Ins) GetMinEnvelope ¶
func (*EMA_Ins) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*EMA_Ins) ProtoMessage ¶
func (*EMA_Ins) ProtoMessage()
func (*EMA_Ins) ProtoReflect ¶
func (x *EMA_Ins) ProtoReflect() protoreflect.Message
func (*EMA_Ins) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type EMA_Outs ¶
type EMA_Outs struct { // Exponential moving average of the series of reading as an output signal. Output *Port `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` // contains filtered or unexported fields }
Outputs for the EMA component.
func (*EMA_Outs) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EMA_Outs. Required by controller-gen.
func (*EMA_Outs) DeepCopyInterface ¶ added in v0.1.2
func (in *EMA_Outs) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new EMA_Outs. Required by controller-gen.
func (*EMA_Outs) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using EMA_Outs within kubernetes types, where deepcopy-gen is used.
func (*EMA_Outs) Descriptor
deprecated
func (*EMA_Outs) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*EMA_Outs) ProtoMessage ¶
func (*EMA_Outs) ProtoMessage()
func (*EMA_Outs) ProtoReflect ¶
func (x *EMA_Outs) ProtoReflect() protoreflect.Message
func (*EMA_Outs) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Extractor ¶
type Extractor struct { // Types that are assignable to Variant: // *Extractor_From // *Extractor_Json // *Extractor_Address // *Extractor_Jwt // *Extractor_PathTemplates Variant isExtractor_Variant `protobuf_oneof:"variant"` // contains filtered or unexported fields }
Defines a high-level way to specify how to extract a flow label value given http request metadata, without a need to write rego code
There are multiple variants of extractor, specify exactly one.
func (*Extractor) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Extractor. Required by controller-gen.
func (*Extractor) DeepCopyInterface ¶ added in v0.1.2
func (in *Extractor) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Extractor. Required by controller-gen.
func (*Extractor) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Extractor within kubernetes types, where deepcopy-gen is used.
func (*Extractor) Descriptor
deprecated
func (*Extractor) GetAddress ¶
func (x *Extractor) GetAddress() *AddressExtractor
func (*Extractor) GetJson ¶
func (x *Extractor) GetJson() *JSONExtractor
func (*Extractor) GetJwt ¶
func (x *Extractor) GetJwt() *JWTExtractor
func (*Extractor) GetPathTemplates ¶
func (x *Extractor) GetPathTemplates() *PathTemplateMatcher
func (*Extractor) GetVariant ¶
func (m *Extractor) GetVariant() isExtractor_Variant
func (*Extractor) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Extractor) ProtoMessage ¶
func (*Extractor) ProtoMessage()
func (*Extractor) ProtoReflect ¶
func (x *Extractor) ProtoReflect() protoreflect.Message
func (*Extractor) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Extractor_Address ¶
type Extractor_Address struct { // Display an address as a single string - `<ip>:<port>`. Address *AddressExtractor `protobuf:"bytes,3,opt,name=address,proto3,oneof"` }
type Extractor_From ¶
type Extractor_From struct { // Use an attribute with no convertion // // Attribute path is a dot-separated path to attribute. // // Should be either: // * one of the fields of [Attribute Context][attribute-context], or // * a special "request.http.bearer" pseudo-attribute. // Eg. "request.http.method" or "request.http.header.user-agent" // // Note: The same attribute path syntax is shared by other extractor variants, // wherever attribute path is needed in their "from" syntax. // // Example: // “`yaml // from: request.http.headers.user-agent // “` // [attribute-context]: https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/auth/v3/attribute_context.proto" From string `protobuf:"bytes,1,opt,name=from,proto3,oneof"` }
type Extractor_Json ¶
type Extractor_Json struct { // Deserialize a json, and extract one of the fields. Json *JSONExtractor `protobuf:"bytes,2,opt,name=json,proto3,oneof"` }
type Extractor_Jwt ¶
type Extractor_Jwt struct { // Parse the attribute as JWT and read the payload. Jwt *JWTExtractor `protobuf:"bytes,4,opt,name=jwt,proto3,oneof"` }
type Extractor_PathTemplates ¶
type Extractor_PathTemplates struct { // Match HTTP Path to given path templates. PathTemplates *PathTemplateMatcher `protobuf:"bytes,5,opt,name=path_templates,json=pathTemplates,proto3,oneof"` }
type Extrapolator ¶
type Extrapolator struct { // Input ports for the Extrapolator component. InPorts *Extrapolator_Ins `protobuf:"bytes,1,opt,name=in_ports,json=inPorts,proto3" json:"in_ports,omitempty"` // Output ports for the Extrapolator component. OutPorts *Extrapolator_Outs `protobuf:"bytes,2,opt,name=out_ports,json=outPorts,proto3" json:"out_ports,omitempty"` // Maximum time interval to repeat the last valid value of input signal. MaxExtrapolationInterval *durationpb.Duration `` // @gotags: default:"10s" /* 149-byte string literal not displayed */ // contains filtered or unexported fields }
Extrapolates the input signal by repeating the last valid value during the period in which it is invalid
It does so until `maximum_extrapolation_interval` is reached, beyond which it emits invalid signal unless input signal becomes valid again.
func (*Extrapolator) DeepCopy ¶ added in v0.1.2
func (in *Extrapolator) DeepCopy() *Extrapolator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Extrapolator. Required by controller-gen.
func (*Extrapolator) DeepCopyInterface ¶ added in v0.1.2
func (in *Extrapolator) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Extrapolator. Required by controller-gen.
func (*Extrapolator) DeepCopyInto ¶ added in v0.1.2
func (in *Extrapolator) DeepCopyInto(out *Extrapolator)
DeepCopyInto supports using Extrapolator within kubernetes types, where deepcopy-gen is used.
func (*Extrapolator) Descriptor
deprecated
func (*Extrapolator) Descriptor() ([]byte, []int)
Deprecated: Use Extrapolator.ProtoReflect.Descriptor instead.
func (*Extrapolator) GetInPorts ¶
func (x *Extrapolator) GetInPorts() *Extrapolator_Ins
func (*Extrapolator) GetMaxExtrapolationInterval ¶
func (x *Extrapolator) GetMaxExtrapolationInterval() *durationpb.Duration
func (*Extrapolator) GetOutPorts ¶
func (x *Extrapolator) GetOutPorts() *Extrapolator_Outs
func (*Extrapolator) MarshalJSON ¶
func (msg *Extrapolator) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*Extrapolator) ProtoMessage ¶
func (*Extrapolator) ProtoMessage()
func (*Extrapolator) ProtoReflect ¶
func (x *Extrapolator) ProtoReflect() protoreflect.Message
func (*Extrapolator) Reset ¶
func (x *Extrapolator) Reset()
func (*Extrapolator) String ¶
func (x *Extrapolator) String() string
func (*Extrapolator) UnmarshalJSON ¶
func (msg *Extrapolator) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type Extrapolator_Ins ¶
type Extrapolator_Ins struct { // Input signal for the Extrapolator component. Input *Port `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` // contains filtered or unexported fields }
Inputs for the Extrapolator component.
func (*Extrapolator_Ins) DeepCopy ¶ added in v0.1.2
func (in *Extrapolator_Ins) DeepCopy() *Extrapolator_Ins
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Extrapolator_Ins. Required by controller-gen.
func (*Extrapolator_Ins) DeepCopyInterface ¶ added in v0.1.2
func (in *Extrapolator_Ins) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Extrapolator_Ins. Required by controller-gen.
func (*Extrapolator_Ins) DeepCopyInto ¶ added in v0.1.2
func (in *Extrapolator_Ins) DeepCopyInto(out *Extrapolator_Ins)
DeepCopyInto supports using Extrapolator_Ins within kubernetes types, where deepcopy-gen is used.
func (*Extrapolator_Ins) Descriptor
deprecated
func (*Extrapolator_Ins) Descriptor() ([]byte, []int)
Deprecated: Use Extrapolator_Ins.ProtoReflect.Descriptor instead.
func (*Extrapolator_Ins) GetInput ¶
func (x *Extrapolator_Ins) GetInput() *Port
func (*Extrapolator_Ins) MarshalJSON ¶
func (msg *Extrapolator_Ins) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*Extrapolator_Ins) ProtoMessage ¶
func (*Extrapolator_Ins) ProtoMessage()
func (*Extrapolator_Ins) ProtoReflect ¶
func (x *Extrapolator_Ins) ProtoReflect() protoreflect.Message
func (*Extrapolator_Ins) Reset ¶
func (x *Extrapolator_Ins) Reset()
func (*Extrapolator_Ins) String ¶
func (x *Extrapolator_Ins) String() string
func (*Extrapolator_Ins) UnmarshalJSON ¶
func (msg *Extrapolator_Ins) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type Extrapolator_Outs ¶
type Extrapolator_Outs struct { // Extrapolated signal. Output *Port `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` // contains filtered or unexported fields }
Outputs for the Extrapolator component.
func (*Extrapolator_Outs) DeepCopy ¶ added in v0.1.2
func (in *Extrapolator_Outs) DeepCopy() *Extrapolator_Outs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Extrapolator_Outs. Required by controller-gen.
func (*Extrapolator_Outs) DeepCopyInterface ¶ added in v0.1.2
func (in *Extrapolator_Outs) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Extrapolator_Outs. Required by controller-gen.
func (*Extrapolator_Outs) DeepCopyInto ¶ added in v0.1.2
func (in *Extrapolator_Outs) DeepCopyInto(out *Extrapolator_Outs)
DeepCopyInto supports using Extrapolator_Outs within kubernetes types, where deepcopy-gen is used.
func (*Extrapolator_Outs) Descriptor
deprecated
func (*Extrapolator_Outs) Descriptor() ([]byte, []int)
Deprecated: Use Extrapolator_Outs.ProtoReflect.Descriptor instead.
func (*Extrapolator_Outs) GetOutput ¶
func (x *Extrapolator_Outs) GetOutput() *Port
func (*Extrapolator_Outs) MarshalJSON ¶
func (msg *Extrapolator_Outs) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*Extrapolator_Outs) ProtoMessage ¶
func (*Extrapolator_Outs) ProtoMessage()
func (*Extrapolator_Outs) ProtoReflect ¶
func (x *Extrapolator_Outs) ProtoReflect() protoreflect.Message
func (*Extrapolator_Outs) Reset ¶
func (x *Extrapolator_Outs) Reset()
func (*Extrapolator_Outs) String ¶
func (x *Extrapolator_Outs) String() string
func (*Extrapolator_Outs) UnmarshalJSON ¶
func (msg *Extrapolator_Outs) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type FluxMeter ¶
type FluxMeter struct { // What latency should we measure in the histogram created by this FluxMeter. // // * For traffic control points, fluxmeter will measure the duration of the // whole http transaction (including sending request and receiving // response). // * For feature control points, fluxmeter will measure execution of the span // associated with particular feature. What contributes to the span's // duration is entirely up to the user code that uses Aperture library. Selector *v1.Selector `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"` // Latency histogram buckets (in ms) for this FluxMeter. HistogramBuckets []float64 `` // @gotags: default:"[5.0,10.0,25.0,50.0,100.0,250.0,500.0,1000.0,2500.0,5000.0,10000.0]" /* 196-byte string literal not displayed */ // contains filtered or unexported fields }
FluxMeter gathers metrics for the traffic that matches its selector.
Example of a selector that creates a histogram metric for all HTTP requests to particular service: ```yaml selector:
service: myservice.mynamespace.svc.cluster.local control_point: traffic: ingress
```
func (*FluxMeter) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FluxMeter. Required by controller-gen.
func (*FluxMeter) DeepCopyInterface ¶ added in v0.1.2
func (in *FluxMeter) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new FluxMeter. Required by controller-gen.
func (*FluxMeter) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using FluxMeter within kubernetes types, where deepcopy-gen is used.
func (*FluxMeter) Descriptor
deprecated
func (*FluxMeter) GetHistogramBuckets ¶
func (*FluxMeter) GetSelector ¶
func (*FluxMeter) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*FluxMeter) ProtoMessage ¶
func (*FluxMeter) ProtoMessage()
func (*FluxMeter) ProtoReflect ¶
func (x *FluxMeter) ProtoReflect() protoreflect.Message
func (*FluxMeter) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type GradientController ¶
type GradientController struct { // Input ports of the Gradient Controller. InPorts *GradientController_Ins `protobuf:"bytes,1,opt,name=in_ports,json=inPorts,proto3" json:"in_ports,omitempty"` // Output ports of the Gradient Controller. OutPorts *GradientController_Outs `protobuf:"bytes,2,opt,name=out_ports,json=outPorts,proto3" json:"out_ports,omitempty"` // Slope controls the aggressiveness and direction of the Gradient Controller. // // Slope is used as exponent on the signal to setpoint ratio in computation // of the gradient (see the [main description](#v1-gradient-controller) for // exact equation). Good intuition for this parameter is "What should the // Gradient Controller do to the control variable when signal is too high", // eg.: // * $\text{slope} = 1$: when signal is too high, increase control variable, // * $\text{slope} = -1$: when signal is too high, decrease control variable, // * $\text{slope} = -0.5$: when signal is to high, decrease control variable more slowly. // // The sign of slope depends on correlation between the signal and control variable: // * Use $\text{slope} < 0$ if signal and control variable are _positively_ // correlated (eg. Per-pod CPU usage and total concurrency). // * Use $\text{slope} > 0$ if signal and control variable are _negatively_ // correlated (eg. Per-pod CPU usage and number of pods). // // :::note // You need to set _negative_ slope for a _positive_ correlation, as you're // describing the _action_ which controller should make when the signal // increases. // ::: // // The magnitude of slope describes how aggresively should the controller // react to a deviation of signal. // With $|\text{slope}| = 1$, the controller will aim to bring the signal to // the setpoint in one tick (assuming linear correlation with signal and setpoint). // Smaller magnitudes of slope will make the controller adjust the control // variable more slowly. // // We recommend setting $|\text{slope}| < 1$ (eg. $\pm0.8$). // If you experience overshooting, consider lowering the magnitude even more. // Values of $|\text{slope}| > 1$ are not recommended. // // :::note // Remember that the gradient and output signal can be (optionally) clamped, // so the _slope_ might not fully describe aggressiveness of the controller. // ::: Slope float64 `protobuf:"fixed64,6,opt,name=slope,proto3" json:"slope,omitempty" validate:"required"` // @gotags: validate:"required" // Minimum gradient which clamps the computed gradient value to the range, [min_gradient, max_gradient]. MinGradient float64 `` // @gotags: default:"-1.79769313486231570814527423731704356798070e+308" /* 156-byte string literal not displayed */ // Maximum gradient which clamps the computed gradient value to the range, [min_gradient, max_gradient]. MaxGradient float64 `` // @gotags: default:"1.79769313486231570814527423731704356798070e+308" /* 155-byte string literal not displayed */ // contains filtered or unexported fields }
Gradient controller is a type of controller which tries to adjust the control variable proportionally to the relative difference between setpoint and actual value of the signal
The `gradient` describes a corrective factor that should be applied to the control variable to get the signal closer to the setpoint. It is computed as follows:
$$ \text{gradient} = \left(\frac{\text{signal}}{\text{setpoint}}\right)^{\text{slope}} $$
`gradient` is then clamped to [min_gradient, max_gradient] range.
The output of gradient controller is computed as follows: $$ \text{output} = \text{gradient}_{\text{clamped}} \cdot \text{control\_variable} + \text{optimize}. $$
Note the additional `optimize` signal, that can be used to "nudge" the controller into desired idle state.
The output can be _optionally_ clamped to desired range using `max` and `min` input.
func (*GradientController) DeepCopy ¶ added in v0.1.2
func (in *GradientController) DeepCopy() *GradientController
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GradientController. Required by controller-gen.
func (*GradientController) DeepCopyInterface ¶ added in v0.1.2
func (in *GradientController) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new GradientController. Required by controller-gen.
func (*GradientController) DeepCopyInto ¶ added in v0.1.2
func (in *GradientController) DeepCopyInto(out *GradientController)
DeepCopyInto supports using GradientController within kubernetes types, where deepcopy-gen is used.
func (*GradientController) Descriptor
deprecated
func (*GradientController) Descriptor() ([]byte, []int)
Deprecated: Use GradientController.ProtoReflect.Descriptor instead.
func (*GradientController) GetInPorts ¶
func (x *GradientController) GetInPorts() *GradientController_Ins
func (*GradientController) GetMaxGradient ¶
func (x *GradientController) GetMaxGradient() float64
func (*GradientController) GetMinGradient ¶
func (x *GradientController) GetMinGradient() float64
func (*GradientController) GetOutPorts ¶
func (x *GradientController) GetOutPorts() *GradientController_Outs
func (*GradientController) GetSlope ¶ added in v0.1.2
func (x *GradientController) GetSlope() float64
func (*GradientController) MarshalJSON ¶
func (msg *GradientController) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*GradientController) ProtoMessage ¶
func (*GradientController) ProtoMessage()
func (*GradientController) ProtoReflect ¶
func (x *GradientController) ProtoReflect() protoreflect.Message
func (*GradientController) Reset ¶
func (x *GradientController) Reset()
func (*GradientController) String ¶
func (x *GradientController) String() string
func (*GradientController) UnmarshalJSON ¶
func (msg *GradientController) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type GradientController_Ins ¶
type GradientController_Ins struct { // Signal to be used for the gradient computation. Signal *Port `protobuf:"bytes,1,opt,name=signal,proto3" json:"signal,omitempty"` // Setpoint to be used for the gradient computation. Setpoint *Port `protobuf:"bytes,2,opt,name=setpoint,proto3" json:"setpoint,omitempty"` // Optimize signal is added to the output of the gradient calculation. Optimize *Port `protobuf:"bytes,3,opt,name=optimize,proto3" json:"optimize,omitempty"` // Maximum value to limit the output signal. Max *Port `protobuf:"bytes,4,opt,name=max,proto3" json:"max,omitempty"` // Minimum value to limit the output signal. Min *Port `protobuf:"bytes,5,opt,name=min,proto3" json:"min,omitempty"` // Actual current value of the control variable. // // This signal is multiplied by the gradient to produce the output. ControlVariable *Port `protobuf:"bytes,6,opt,name=control_variable,json=controlVariable,proto3" json:"control_variable,omitempty"` // contains filtered or unexported fields }
Inputs for the Gradient Controller component.
func (*GradientController_Ins) DeepCopy ¶ added in v0.1.2
func (in *GradientController_Ins) DeepCopy() *GradientController_Ins
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GradientController_Ins. Required by controller-gen.
func (*GradientController_Ins) DeepCopyInterface ¶ added in v0.1.2
func (in *GradientController_Ins) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new GradientController_Ins. Required by controller-gen.
func (*GradientController_Ins) DeepCopyInto ¶ added in v0.1.2
func (in *GradientController_Ins) DeepCopyInto(out *GradientController_Ins)
DeepCopyInto supports using GradientController_Ins within kubernetes types, where deepcopy-gen is used.
func (*GradientController_Ins) Descriptor
deprecated
func (*GradientController_Ins) Descriptor() ([]byte, []int)
Deprecated: Use GradientController_Ins.ProtoReflect.Descriptor instead.
func (*GradientController_Ins) GetControlVariable ¶
func (x *GradientController_Ins) GetControlVariable() *Port
func (*GradientController_Ins) GetMax ¶
func (x *GradientController_Ins) GetMax() *Port
func (*GradientController_Ins) GetMin ¶
func (x *GradientController_Ins) GetMin() *Port
func (*GradientController_Ins) GetOptimize ¶
func (x *GradientController_Ins) GetOptimize() *Port
func (*GradientController_Ins) GetSetpoint ¶
func (x *GradientController_Ins) GetSetpoint() *Port
func (*GradientController_Ins) GetSignal ¶
func (x *GradientController_Ins) GetSignal() *Port
func (*GradientController_Ins) MarshalJSON ¶
func (msg *GradientController_Ins) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*GradientController_Ins) ProtoMessage ¶
func (*GradientController_Ins) ProtoMessage()
func (*GradientController_Ins) ProtoReflect ¶
func (x *GradientController_Ins) ProtoReflect() protoreflect.Message
func (*GradientController_Ins) Reset ¶
func (x *GradientController_Ins) Reset()
func (*GradientController_Ins) String ¶
func (x *GradientController_Ins) String() string
func (*GradientController_Ins) UnmarshalJSON ¶
func (msg *GradientController_Ins) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type GradientController_Outs ¶
type GradientController_Outs struct { // Computed desired value of the control variable. Output *Port `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` // contains filtered or unexported fields }
Outputs for the Gradient Controller component.
func (*GradientController_Outs) DeepCopy ¶ added in v0.1.2
func (in *GradientController_Outs) DeepCopy() *GradientController_Outs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GradientController_Outs. Required by controller-gen.
func (*GradientController_Outs) DeepCopyInterface ¶ added in v0.1.2
func (in *GradientController_Outs) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new GradientController_Outs. Required by controller-gen.
func (*GradientController_Outs) DeepCopyInto ¶ added in v0.1.2
func (in *GradientController_Outs) DeepCopyInto(out *GradientController_Outs)
DeepCopyInto supports using GradientController_Outs within kubernetes types, where deepcopy-gen is used.
func (*GradientController_Outs) Descriptor
deprecated
func (*GradientController_Outs) Descriptor() ([]byte, []int)
Deprecated: Use GradientController_Outs.ProtoReflect.Descriptor instead.
func (*GradientController_Outs) GetOutput ¶
func (x *GradientController_Outs) GetOutput() *Port
func (*GradientController_Outs) MarshalJSON ¶
func (msg *GradientController_Outs) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*GradientController_Outs) ProtoMessage ¶
func (*GradientController_Outs) ProtoMessage()
func (*GradientController_Outs) ProtoReflect ¶
func (x *GradientController_Outs) ProtoReflect() protoreflect.Message
func (*GradientController_Outs) Reset ¶
func (x *GradientController_Outs) Reset()
func (*GradientController_Outs) String ¶
func (x *GradientController_Outs) String() string
func (*GradientController_Outs) UnmarshalJSON ¶
func (msg *GradientController_Outs) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type JSONExtractor ¶
type JSONExtractor struct { // Attribute path pointing to some strings - eg. "request.http.body". From string `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty" validate:"required"` //@gotags: validate:"required" // Json pointer represents a parsed json pointer which allows to select a specified field from the json payload. // // Note: Uses [json pointer](https://datatracker.ietf.org/doc/html/rfc6901) syntax, // eg. `/foo/bar`. If the pointer points into an object, it'd be stringified. Pointer string `protobuf:"bytes,2,opt,name=pointer,proto3" json:"pointer,omitempty"` // contains filtered or unexported fields }
Deserialize a json, and extract one of the fields
Example: ```yaml from: request.http.body pointer: /user/name ```
func (*JSONExtractor) DeepCopy ¶ added in v0.1.2
func (in *JSONExtractor) DeepCopy() *JSONExtractor
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JSONExtractor. Required by controller-gen.
func (*JSONExtractor) DeepCopyInterface ¶ added in v0.1.2
func (in *JSONExtractor) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new JSONExtractor. Required by controller-gen.
func (*JSONExtractor) DeepCopyInto ¶ added in v0.1.2
func (in *JSONExtractor) DeepCopyInto(out *JSONExtractor)
DeepCopyInto supports using JSONExtractor within kubernetes types, where deepcopy-gen is used.
func (*JSONExtractor) Descriptor
deprecated
func (*JSONExtractor) Descriptor() ([]byte, []int)
Deprecated: Use JSONExtractor.ProtoReflect.Descriptor instead.
func (*JSONExtractor) GetFrom ¶
func (x *JSONExtractor) GetFrom() string
func (*JSONExtractor) GetPointer ¶
func (x *JSONExtractor) GetPointer() string
func (*JSONExtractor) MarshalJSON ¶
func (msg *JSONExtractor) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*JSONExtractor) ProtoMessage ¶
func (*JSONExtractor) ProtoMessage()
func (*JSONExtractor) ProtoReflect ¶
func (x *JSONExtractor) ProtoReflect() protoreflect.Message
func (*JSONExtractor) Reset ¶
func (x *JSONExtractor) Reset()
func (*JSONExtractor) String ¶
func (x *JSONExtractor) String() string
func (*JSONExtractor) UnmarshalJSON ¶
func (msg *JSONExtractor) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type JWTExtractor ¶
type JWTExtractor struct { // Jwt token can be pulled from any input attribute, but most likely you'd want to use "request.http.bearer". From string `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty" validate:"required"` //@gotags: validate:"required" // Json pointer allowing to select a specified field from the json payload. // // Note: Uses [json pointer](https://datatracker.ietf.org/doc/html/rfc6901) syntax, // eg. `/foo/bar`. If the pointer points into an object, it'd be stringified. JsonPointer string `protobuf:"bytes,2,opt,name=json_pointer,json=jsonPointer,proto3" json:"json_pointer,omitempty"` // contains filtered or unexported fields }
Parse the attribute as JWT and read the payload
Specify a field to be extracted from payload using "json_pointer".
Note: The signature is not verified against the secret (we're assuming there's some other parts of the system that handles such verification).
Example: ```yaml from: request.http.bearer json_pointer: /user/email ```
func (*JWTExtractor) DeepCopy ¶ added in v0.1.2
func (in *JWTExtractor) DeepCopy() *JWTExtractor
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTExtractor. Required by controller-gen.
func (*JWTExtractor) DeepCopyInterface ¶ added in v0.1.2
func (in *JWTExtractor) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new JWTExtractor. Required by controller-gen.
func (*JWTExtractor) DeepCopyInto ¶ added in v0.1.2
func (in *JWTExtractor) DeepCopyInto(out *JWTExtractor)
DeepCopyInto supports using JWTExtractor within kubernetes types, where deepcopy-gen is used.
func (*JWTExtractor) Descriptor
deprecated
func (*JWTExtractor) Descriptor() ([]byte, []int)
Deprecated: Use JWTExtractor.ProtoReflect.Descriptor instead.
func (*JWTExtractor) GetFrom ¶
func (x *JWTExtractor) GetFrom() string
func (*JWTExtractor) GetJsonPointer ¶
func (x *JWTExtractor) GetJsonPointer() string
func (*JWTExtractor) MarshalJSON ¶
func (msg *JWTExtractor) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*JWTExtractor) ProtoMessage ¶
func (*JWTExtractor) ProtoMessage()
func (*JWTExtractor) ProtoReflect ¶
func (x *JWTExtractor) ProtoReflect() protoreflect.Message
func (*JWTExtractor) Reset ¶
func (x *JWTExtractor) Reset()
func (*JWTExtractor) String ¶
func (x *JWTExtractor) String() string
func (*JWTExtractor) UnmarshalJSON ¶
func (msg *JWTExtractor) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type LoadShedActuator ¶
type LoadShedActuator struct { // Input ports for the Load Shed Actuator component. InPorts *LoadShedActuator_Ins `protobuf:"bytes,1,opt,name=in_ports,json=inPorts,proto3" json:"in_ports,omitempty"` // contains filtered or unexported fields }
Takes the load shed factor input signal and publishes it to the schedulers in the data-plane
func (*LoadShedActuator) DeepCopy ¶ added in v0.1.2
func (in *LoadShedActuator) DeepCopy() *LoadShedActuator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadShedActuator. Required by controller-gen.
func (*LoadShedActuator) DeepCopyInterface ¶ added in v0.1.2
func (in *LoadShedActuator) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new LoadShedActuator. Required by controller-gen.
func (*LoadShedActuator) DeepCopyInto ¶ added in v0.1.2
func (in *LoadShedActuator) DeepCopyInto(out *LoadShedActuator)
DeepCopyInto supports using LoadShedActuator within kubernetes types, where deepcopy-gen is used.
func (*LoadShedActuator) Descriptor
deprecated
func (*LoadShedActuator) Descriptor() ([]byte, []int)
Deprecated: Use LoadShedActuator.ProtoReflect.Descriptor instead.
func (*LoadShedActuator) GetInPorts ¶
func (x *LoadShedActuator) GetInPorts() *LoadShedActuator_Ins
func (*LoadShedActuator) MarshalJSON ¶
func (msg *LoadShedActuator) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*LoadShedActuator) ProtoMessage ¶
func (*LoadShedActuator) ProtoMessage()
func (*LoadShedActuator) ProtoReflect ¶
func (x *LoadShedActuator) ProtoReflect() protoreflect.Message
func (*LoadShedActuator) Reset ¶
func (x *LoadShedActuator) Reset()
func (*LoadShedActuator) String ¶
func (x *LoadShedActuator) String() string
func (*LoadShedActuator) UnmarshalJSON ¶
func (msg *LoadShedActuator) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type LoadShedActuator_Ins ¶
type LoadShedActuator_Ins struct { // Load shedding factor is a fraction of [incoming // concurrency](#v1-scheduler-outs) that needs to be dropped. LoadShedFactor *Port `protobuf:"bytes,1,opt,name=load_shed_factor,json=loadShedFactor,proto3" json:"load_shed_factor,omitempty"` // contains filtered or unexported fields }
Input for the Load Shed Actuator component.
func (*LoadShedActuator_Ins) DeepCopy ¶ added in v0.1.2
func (in *LoadShedActuator_Ins) DeepCopy() *LoadShedActuator_Ins
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadShedActuator_Ins. Required by controller-gen.
func (*LoadShedActuator_Ins) DeepCopyInterface ¶ added in v0.1.2
func (in *LoadShedActuator_Ins) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new LoadShedActuator_Ins. Required by controller-gen.
func (*LoadShedActuator_Ins) DeepCopyInto ¶ added in v0.1.2
func (in *LoadShedActuator_Ins) DeepCopyInto(out *LoadShedActuator_Ins)
DeepCopyInto supports using LoadShedActuator_Ins within kubernetes types, where deepcopy-gen is used.
func (*LoadShedActuator_Ins) Descriptor
deprecated
func (*LoadShedActuator_Ins) Descriptor() ([]byte, []int)
Deprecated: Use LoadShedActuator_Ins.ProtoReflect.Descriptor instead.
func (*LoadShedActuator_Ins) GetLoadShedFactor ¶
func (x *LoadShedActuator_Ins) GetLoadShedFactor() *Port
func (*LoadShedActuator_Ins) MarshalJSON ¶
func (msg *LoadShedActuator_Ins) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*LoadShedActuator_Ins) ProtoMessage ¶
func (*LoadShedActuator_Ins) ProtoMessage()
func (*LoadShedActuator_Ins) ProtoReflect ¶
func (x *LoadShedActuator_Ins) ProtoReflect() protoreflect.Message
func (*LoadShedActuator_Ins) Reset ¶
func (x *LoadShedActuator_Ins) Reset()
func (*LoadShedActuator_Ins) String ¶
func (x *LoadShedActuator_Ins) String() string
func (*LoadShedActuator_Ins) UnmarshalJSON ¶
func (msg *LoadShedActuator_Ins) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type Max ¶
type Max struct { // Input ports for the Max component. InPorts *Max_Ins `protobuf:"bytes,1,opt,name=in_ports,json=inPorts,proto3" json:"in_ports,omitempty"` // Output ports for the Max component. OutPorts *Max_Outs `protobuf:"bytes,2,opt,name=out_ports,json=outPorts,proto3" json:"out_ports,omitempty"` // contains filtered or unexported fields }
Takes a list of input signals and emits the signal with the maximum value
Max: output = max([]inputs).
func (*Max) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Max. Required by controller-gen.
func (*Max) DeepCopyInterface ¶ added in v0.1.2
func (in *Max) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Max. Required by controller-gen.
func (*Max) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Max within kubernetes types, where deepcopy-gen is used.
func (*Max) Descriptor
deprecated
func (*Max) GetInPorts ¶
func (*Max) GetOutPorts ¶
func (*Max) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Max) ProtoMessage ¶
func (*Max) ProtoMessage()
func (*Max) ProtoReflect ¶
func (x *Max) ProtoReflect() protoreflect.Message
func (*Max) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Max_Ins ¶
type Max_Ins struct { // Array of input signals. Inputs []*Port `protobuf:"bytes,1,rep,name=inputs,proto3" json:"inputs,omitempty"` // contains filtered or unexported fields }
Inputs for the Max component.
func (*Max_Ins) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Max_Ins. Required by controller-gen.
func (*Max_Ins) DeepCopyInterface ¶ added in v0.1.2
func (in *Max_Ins) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Max_Ins. Required by controller-gen.
func (*Max_Ins) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Max_Ins within kubernetes types, where deepcopy-gen is used.
func (*Max_Ins) Descriptor
deprecated
func (*Max_Ins) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Max_Ins) ProtoMessage ¶
func (*Max_Ins) ProtoMessage()
func (*Max_Ins) ProtoReflect ¶
func (x *Max_Ins) ProtoReflect() protoreflect.Message
func (*Max_Ins) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Max_Outs ¶
type Max_Outs struct { // Signal with maximum value as an output signal. Output *Port `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` // contains filtered or unexported fields }
Output for the Max component.
func (*Max_Outs) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Max_Outs. Required by controller-gen.
func (*Max_Outs) DeepCopyInterface ¶ added in v0.1.2
func (in *Max_Outs) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Max_Outs. Required by controller-gen.
func (*Max_Outs) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Max_Outs within kubernetes types, where deepcopy-gen is used.
func (*Max_Outs) Descriptor
deprecated
func (*Max_Outs) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Max_Outs) ProtoMessage ¶
func (*Max_Outs) ProtoMessage()
func (*Max_Outs) ProtoReflect ¶
func (x *Max_Outs) ProtoReflect() protoreflect.Message
func (*Max_Outs) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Min ¶
type Min struct { // Input ports for the Min component. InPorts *Min_Ins `protobuf:"bytes,1,opt,name=in_ports,json=inPorts,proto3" json:"in_ports,omitempty"` // Output ports for the Min component. OutPorts *Min_Outs `protobuf:"bytes,2,opt,name=out_ports,json=outPorts,proto3" json:"out_ports,omitempty"` // contains filtered or unexported fields }
Takes an array of input signals and emits the signal with the minimum value Min: output = min([]inputs).
func (*Min) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Min. Required by controller-gen.
func (*Min) DeepCopyInterface ¶ added in v0.1.2
func (in *Min) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Min. Required by controller-gen.
func (*Min) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Min within kubernetes types, where deepcopy-gen is used.
func (*Min) Descriptor
deprecated
func (*Min) GetInPorts ¶
func (*Min) GetOutPorts ¶
func (*Min) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Min) ProtoMessage ¶
func (*Min) ProtoMessage()
func (*Min) ProtoReflect ¶
func (x *Min) ProtoReflect() protoreflect.Message
func (*Min) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Min_Ins ¶
type Min_Ins struct { // Array of input signals. Inputs []*Port `protobuf:"bytes,1,rep,name=inputs,proto3" json:"inputs,omitempty"` // contains filtered or unexported fields }
Inputs for the Min component.
func (*Min_Ins) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Min_Ins. Required by controller-gen.
func (*Min_Ins) DeepCopyInterface ¶ added in v0.1.2
func (in *Min_Ins) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Min_Ins. Required by controller-gen.
func (*Min_Ins) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Min_Ins within kubernetes types, where deepcopy-gen is used.
func (*Min_Ins) Descriptor
deprecated
func (*Min_Ins) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Min_Ins) ProtoMessage ¶
func (*Min_Ins) ProtoMessage()
func (*Min_Ins) ProtoReflect ¶
func (x *Min_Ins) ProtoReflect() protoreflect.Message
func (*Min_Ins) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Min_Outs ¶
type Min_Outs struct { // Signal with minimum value as an output signal. Output *Port `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` // contains filtered or unexported fields }
Output ports for the Min component.
func (*Min_Outs) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Min_Outs. Required by controller-gen.
func (*Min_Outs) DeepCopyInterface ¶ added in v0.1.2
func (in *Min_Outs) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Min_Outs. Required by controller-gen.
func (*Min_Outs) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Min_Outs within kubernetes types, where deepcopy-gen is used.
func (*Min_Outs) Descriptor
deprecated
func (*Min_Outs) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Min_Outs) ProtoMessage ¶
func (*Min_Outs) ProtoMessage()
func (*Min_Outs) ProtoReflect ¶
func (x *Min_Outs) ProtoReflect() protoreflect.Message
func (*Min_Outs) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type PathTemplateMatcher ¶
type PathTemplateMatcher struct { // Template value keys are OpenAPI-inspired path templates. // // * Static path segment `/foo` matches a path segment exactly // * `/{param}` matches arbitrary path segment. // (The param name is ignored and can be omitted (`{}`)) // * The parameter must cover whole segment. // * Additionally, path template can end with `/*` wildcard to match // arbitrary number of trailing segments (0 or more). // * Multiple consecutive `/` are ignored, as well as trailing `/`. // * Parametrized path segments must come after static segments. // * `*`, if present, must come last. // * Most specific template "wins" (`/foo` over `/{}` and `/{}` over `/*`). // // See also <https://swagger.io/specification/#path-templating-matching> // // Example: // “`yaml // /register: register // "/user/{userId}": user // /static/*: other // “` TemplateValues map[string]string `` /* 191-byte string literal not displayed */ // contains filtered or unexported fields }
Matches HTTP Path to given path templates
HTTP path will be matched against given path templates. If a match occurs, the value associated with the path template will be treated as a result. In case of multiple path templates matching, the most specific one will be chosen.
func (*PathTemplateMatcher) DeepCopy ¶ added in v0.1.2
func (in *PathTemplateMatcher) DeepCopy() *PathTemplateMatcher
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PathTemplateMatcher. Required by controller-gen.
func (*PathTemplateMatcher) DeepCopyInterface ¶ added in v0.1.2
func (in *PathTemplateMatcher) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new PathTemplateMatcher. Required by controller-gen.
func (*PathTemplateMatcher) DeepCopyInto ¶ added in v0.1.2
func (in *PathTemplateMatcher) DeepCopyInto(out *PathTemplateMatcher)
DeepCopyInto supports using PathTemplateMatcher within kubernetes types, where deepcopy-gen is used.
func (*PathTemplateMatcher) Descriptor
deprecated
func (*PathTemplateMatcher) Descriptor() ([]byte, []int)
Deprecated: Use PathTemplateMatcher.ProtoReflect.Descriptor instead.
func (*PathTemplateMatcher) GetTemplateValues ¶
func (x *PathTemplateMatcher) GetTemplateValues() map[string]string
func (*PathTemplateMatcher) MarshalJSON ¶
func (msg *PathTemplateMatcher) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*PathTemplateMatcher) ProtoMessage ¶
func (*PathTemplateMatcher) ProtoMessage()
func (*PathTemplateMatcher) ProtoReflect ¶
func (x *PathTemplateMatcher) ProtoReflect() protoreflect.Message
func (*PathTemplateMatcher) Reset ¶
func (x *PathTemplateMatcher) Reset()
func (*PathTemplateMatcher) String ¶
func (x *PathTemplateMatcher) String() string
func (*PathTemplateMatcher) UnmarshalJSON ¶
func (msg *PathTemplateMatcher) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type Policy ¶
type Policy struct { // Defines the control-loop logic of the policy. Circuit *Circuit `protobuf:"bytes,1,opt,name=circuit,proto3" json:"circuit,omitempty"` // Resources (FluxMeters, Classifiers etc.) to setup. Resources *Resources `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"` // contains filtered or unexported fields }
Policy expresses reliability automation workflow that automatically protects services
Policy specification contains a circuit that defines the controller logic and resources that need to be setup.
func (*Policy) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Policy. Required by controller-gen.
func (*Policy) DeepCopyInterface ¶ added in v0.1.2
func (in *Policy) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Policy. Required by controller-gen.
func (*Policy) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Policy within kubernetes types, where deepcopy-gen is used.
func (*Policy) Descriptor
deprecated
func (*Policy) GetCircuit ¶
func (*Policy) GetResources ¶
func (*Policy) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Policy) ProtoMessage ¶
func (*Policy) ProtoMessage()
func (*Policy) ProtoReflect ¶
func (x *Policy) ProtoReflect() protoreflect.Message
func (*Policy) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type PolicyServiceClient ¶
type PolicyServiceClient interface {
AllPolicies(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*AllPoliciesResponse, error)
}
PolicyServiceClient is the client API for PolicyService service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
func NewPolicyServiceClient ¶
func NewPolicyServiceClient(cc grpc.ClientConnInterface) PolicyServiceClient
type PolicyServiceServer ¶
type PolicyServiceServer interface {
AllPolicies(context.Context, *emptypb.Empty) (*AllPoliciesResponse, error)
}
PolicyServiceServer is the server API for PolicyService service. All implementations should embed UnimplementedPolicyServiceServer for forward compatibility
type Port ¶
type Port struct { // Name of the incoming or outgoing Signal on the Port. SignalName string `protobuf:"bytes,1,opt,name=signal_name,json=signalName,proto3" json:"signal_name,omitempty"` // contains filtered or unexported fields }
Components are interconnected with each other via Ports
func (*Port) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Port. Required by controller-gen.
func (*Port) DeepCopyInterface ¶ added in v0.1.2
func (in *Port) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Port. Required by controller-gen.
func (*Port) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Port within kubernetes types, where deepcopy-gen is used.
func (*Port) Descriptor
deprecated
func (*Port) GetSignalName ¶
func (*Port) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Port) ProtoMessage ¶
func (*Port) ProtoMessage()
func (*Port) ProtoReflect ¶
func (x *Port) ProtoReflect() protoreflect.Message
func (*Port) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type PromQL ¶
type PromQL struct { // Output ports for the PromQL component. OutPorts *PromQL_Outs `protobuf:"bytes,1,opt,name=out_ports,json=outPorts,proto3" json:"out_ports,omitempty"` // Describes the Prometheus query to be run. // // :::caution // TODO we should describe how to construct the query, eg. how to employ the // fluxmeters here or link to appropriate place in docs. // ::: QueryString string `protobuf:"bytes,2,opt,name=query_string,json=queryString,proto3" json:"query_string,omitempty"` // Describes the interval between successive evaluations of the Prometheus query. EvaluationInterval *durationpb.Duration `` // @gotags: default:"10s" /* 129-byte string literal not displayed */ // contains filtered or unexported fields }
Component that runs a Prometheus query periodically and returns the result as an output signal
func (*PromQL) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromQL. Required by controller-gen.
func (*PromQL) DeepCopyInterface ¶ added in v0.1.2
func (in *PromQL) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new PromQL. Required by controller-gen.
func (*PromQL) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using PromQL within kubernetes types, where deepcopy-gen is used.
func (*PromQL) Descriptor
deprecated
func (*PromQL) GetEvaluationInterval ¶
func (x *PromQL) GetEvaluationInterval() *durationpb.Duration
func (*PromQL) GetOutPorts ¶
func (x *PromQL) GetOutPorts() *PromQL_Outs
func (*PromQL) GetQueryString ¶
func (*PromQL) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*PromQL) ProtoMessage ¶
func (*PromQL) ProtoMessage()
func (*PromQL) ProtoReflect ¶
func (x *PromQL) ProtoReflect() protoreflect.Message
func (*PromQL) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type PromQL_Outs ¶
type PromQL_Outs struct { // The result of the Prometheus query as an output signal. Output *Port `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` // contains filtered or unexported fields }
Output for the PromQL component.
func (*PromQL_Outs) DeepCopy ¶ added in v0.1.2
func (in *PromQL_Outs) DeepCopy() *PromQL_Outs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromQL_Outs. Required by controller-gen.
func (*PromQL_Outs) DeepCopyInterface ¶ added in v0.1.2
func (in *PromQL_Outs) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new PromQL_Outs. Required by controller-gen.
func (*PromQL_Outs) DeepCopyInto ¶ added in v0.1.2
func (in *PromQL_Outs) DeepCopyInto(out *PromQL_Outs)
DeepCopyInto supports using PromQL_Outs within kubernetes types, where deepcopy-gen is used.
func (*PromQL_Outs) Descriptor
deprecated
func (*PromQL_Outs) Descriptor() ([]byte, []int)
Deprecated: Use PromQL_Outs.ProtoReflect.Descriptor instead.
func (*PromQL_Outs) GetOutput ¶
func (x *PromQL_Outs) GetOutput() *Port
func (*PromQL_Outs) MarshalJSON ¶
func (msg *PromQL_Outs) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*PromQL_Outs) ProtoMessage ¶
func (*PromQL_Outs) ProtoMessage()
func (*PromQL_Outs) ProtoReflect ¶
func (x *PromQL_Outs) ProtoReflect() protoreflect.Message
func (*PromQL_Outs) Reset ¶
func (x *PromQL_Outs) Reset()
func (*PromQL_Outs) String ¶
func (x *PromQL_Outs) String() string
func (*PromQL_Outs) UnmarshalJSON ¶
func (msg *PromQL_Outs) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type RateLimiter ¶
type RateLimiter struct { InPorts *RateLimiter_Ins `protobuf:"bytes,1,opt,name=in_ports,json=inPorts,proto3" json:"in_ports,omitempty" validate:"required"` // @gotags: validate:"required" // Which control point to apply this ratelimiter to. Selector *v1.Selector `protobuf:"bytes,2,opt,name=selector,proto3" json:"selector,omitempty" validate:"required"` // @gotags: validate:"required" // Time after which the limit for a given label value will be reset. LimitResetInterval *durationpb.Duration `` // @gotags: default:"60s" /* 131-byte string literal not displayed */ // Specifies which label the ratelimiter should be keyed by. // // Rate limiting is done independently for each value of the // [label](/concepts/flow-control/label/label.md) with given key. // Eg., to give each user a separate limit, assuming you have a _user_ flow // label set up, set `label_key: "user"`. // // TODO make it possible for this field to be optional – to achieve global ratelimit. LabelKey string `protobuf:"bytes,4,opt,name=label_key,json=labelKey,proto3" json:"label_key,omitempty" validate:"required"` // @gotags: validate:"required" // Allows to specify different limits for particular label values. Overrides []*RateLimiter_Override `protobuf:"bytes,5,rep,name=overrides,proto3" json:"overrides,omitempty"` // Configuration of lazy-syncing behaviour of ratelimiter LazySync *RateLimiter_LazySync `protobuf:"bytes,6,opt,name=lazy_sync,json=lazySync,proto3" json:"lazy_sync,omitempty"` // contains filtered or unexported fields }
Limits the traffic on a control point to specified rate
:::info See also [Rate Limiter overview](/concepts/flow-control/actuators/rate-limiter.md). :::
Ratelimiting is done separately on per-label-value basis. Use _label\_key_ to select which label should be used as key.
func (*RateLimiter) DeepCopy ¶ added in v0.1.2
func (in *RateLimiter) DeepCopy() *RateLimiter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimiter. Required by controller-gen.
func (*RateLimiter) DeepCopyInterface ¶ added in v0.1.2
func (in *RateLimiter) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new RateLimiter. Required by controller-gen.
func (*RateLimiter) DeepCopyInto ¶ added in v0.1.2
func (in *RateLimiter) DeepCopyInto(out *RateLimiter)
DeepCopyInto supports using RateLimiter within kubernetes types, where deepcopy-gen is used.
func (*RateLimiter) Descriptor
deprecated
func (*RateLimiter) Descriptor() ([]byte, []int)
Deprecated: Use RateLimiter.ProtoReflect.Descriptor instead.
func (*RateLimiter) GetInPorts ¶
func (x *RateLimiter) GetInPorts() *RateLimiter_Ins
func (*RateLimiter) GetLabelKey ¶
func (x *RateLimiter) GetLabelKey() string
func (*RateLimiter) GetLazySync ¶
func (x *RateLimiter) GetLazySync() *RateLimiter_LazySync
func (*RateLimiter) GetLimitResetInterval ¶
func (x *RateLimiter) GetLimitResetInterval() *durationpb.Duration
func (*RateLimiter) GetOverrides ¶
func (x *RateLimiter) GetOverrides() []*RateLimiter_Override
func (*RateLimiter) GetSelector ¶
func (x *RateLimiter) GetSelector() *v1.Selector
func (*RateLimiter) MarshalJSON ¶
func (msg *RateLimiter) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*RateLimiter) ProtoMessage ¶
func (*RateLimiter) ProtoMessage()
func (*RateLimiter) ProtoReflect ¶
func (x *RateLimiter) ProtoReflect() protoreflect.Message
func (*RateLimiter) Reset ¶
func (x *RateLimiter) Reset()
func (*RateLimiter) String ¶
func (x *RateLimiter) String() string
func (*RateLimiter) UnmarshalJSON ¶
func (msg *RateLimiter) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type RateLimiter_Ins ¶
type RateLimiter_Ins struct { // Number of flows allowed per _limit\_reset\_interval_ per each label. // Negative values disable the ratelimiter. // // :::tip // Negative limit can be useful to _conditionally_ enable the ratelimiter // under certain circumstances. [Decider](#v1-decider) might be helpful. // ::: Limit *Port `protobuf:"bytes,1,opt,name=limit,proto3" json:"limit,omitempty" validate:"required"` // @gotags: validate:"required" // contains filtered or unexported fields }
Inputs for the RateLimiter component
func (*RateLimiter_Ins) DeepCopy ¶ added in v0.1.2
func (in *RateLimiter_Ins) DeepCopy() *RateLimiter_Ins
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimiter_Ins. Required by controller-gen.
func (*RateLimiter_Ins) DeepCopyInterface ¶ added in v0.1.2
func (in *RateLimiter_Ins) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new RateLimiter_Ins. Required by controller-gen.
func (*RateLimiter_Ins) DeepCopyInto ¶ added in v0.1.2
func (in *RateLimiter_Ins) DeepCopyInto(out *RateLimiter_Ins)
DeepCopyInto supports using RateLimiter_Ins within kubernetes types, where deepcopy-gen is used.
func (*RateLimiter_Ins) Descriptor
deprecated
func (*RateLimiter_Ins) Descriptor() ([]byte, []int)
Deprecated: Use RateLimiter_Ins.ProtoReflect.Descriptor instead.
func (*RateLimiter_Ins) GetLimit ¶
func (x *RateLimiter_Ins) GetLimit() *Port
func (*RateLimiter_Ins) MarshalJSON ¶
func (msg *RateLimiter_Ins) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*RateLimiter_Ins) ProtoMessage ¶
func (*RateLimiter_Ins) ProtoMessage()
func (*RateLimiter_Ins) ProtoReflect ¶
func (x *RateLimiter_Ins) ProtoReflect() protoreflect.Message
func (*RateLimiter_Ins) Reset ¶
func (x *RateLimiter_Ins) Reset()
func (*RateLimiter_Ins) String ¶
func (x *RateLimiter_Ins) String() string
func (*RateLimiter_Ins) UnmarshalJSON ¶
func (msg *RateLimiter_Ins) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type RateLimiter_LazySync ¶
type RateLimiter_LazySync struct { // Enables lazy sync // // TODO document what happens when lazy sync is disabled Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty" default:"false"` // @gotags: default:"false" // Number of times to lazy sync within the _limit\_reset\_interval_. NumSync uint32 `protobuf:"varint,2,opt,name=num_sync,json=numSync,proto3" json:"num_sync,omitempty" default:"5" validate:"gt=0"` // @gotags: default:"5" validate:"gt=0" // contains filtered or unexported fields }
func (*RateLimiter_LazySync) DeepCopy ¶ added in v0.1.2
func (in *RateLimiter_LazySync) DeepCopy() *RateLimiter_LazySync
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimiter_LazySync. Required by controller-gen.
func (*RateLimiter_LazySync) DeepCopyInterface ¶ added in v0.1.2
func (in *RateLimiter_LazySync) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new RateLimiter_LazySync. Required by controller-gen.
func (*RateLimiter_LazySync) DeepCopyInto ¶ added in v0.1.2
func (in *RateLimiter_LazySync) DeepCopyInto(out *RateLimiter_LazySync)
DeepCopyInto supports using RateLimiter_LazySync within kubernetes types, where deepcopy-gen is used.
func (*RateLimiter_LazySync) Descriptor
deprecated
func (*RateLimiter_LazySync) Descriptor() ([]byte, []int)
Deprecated: Use RateLimiter_LazySync.ProtoReflect.Descriptor instead.
func (*RateLimiter_LazySync) GetEnabled ¶
func (x *RateLimiter_LazySync) GetEnabled() bool
func (*RateLimiter_LazySync) GetNumSync ¶
func (x *RateLimiter_LazySync) GetNumSync() uint32
func (*RateLimiter_LazySync) MarshalJSON ¶
func (msg *RateLimiter_LazySync) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*RateLimiter_LazySync) ProtoMessage ¶
func (*RateLimiter_LazySync) ProtoMessage()
func (*RateLimiter_LazySync) ProtoReflect ¶
func (x *RateLimiter_LazySync) ProtoReflect() protoreflect.Message
func (*RateLimiter_LazySync) Reset ¶
func (x *RateLimiter_LazySync) Reset()
func (*RateLimiter_LazySync) String ¶
func (x *RateLimiter_LazySync) String() string
func (*RateLimiter_LazySync) UnmarshalJSON ¶
func (msg *RateLimiter_LazySync) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type RateLimiter_Override ¶
type RateLimiter_Override struct { // Value of the label for which the override should be applied. LabelValue string `protobuf:"bytes,1,opt,name=label_value,json=labelValue,proto3" json:"label_value,omitempty" validate:"required"` // @gotags: validate:"required" // Amount by which the _in\_ports.limit_ should be multiplied for this label value. LimitScaleFactor float64 `` // @gotags: default:"1.0" /* 127-byte string literal not displayed */ // contains filtered or unexported fields }
func (*RateLimiter_Override) DeepCopy ¶ added in v0.1.2
func (in *RateLimiter_Override) DeepCopy() *RateLimiter_Override
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimiter_Override. Required by controller-gen.
func (*RateLimiter_Override) DeepCopyInterface ¶ added in v0.1.2
func (in *RateLimiter_Override) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new RateLimiter_Override. Required by controller-gen.
func (*RateLimiter_Override) DeepCopyInto ¶ added in v0.1.2
func (in *RateLimiter_Override) DeepCopyInto(out *RateLimiter_Override)
DeepCopyInto supports using RateLimiter_Override within kubernetes types, where deepcopy-gen is used.
func (*RateLimiter_Override) Descriptor
deprecated
func (*RateLimiter_Override) Descriptor() ([]byte, []int)
Deprecated: Use RateLimiter_Override.ProtoReflect.Descriptor instead.
func (*RateLimiter_Override) GetLabelValue ¶
func (x *RateLimiter_Override) GetLabelValue() string
func (*RateLimiter_Override) GetLimitScaleFactor ¶
func (x *RateLimiter_Override) GetLimitScaleFactor() float64
func (*RateLimiter_Override) MarshalJSON ¶
func (msg *RateLimiter_Override) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*RateLimiter_Override) ProtoMessage ¶
func (*RateLimiter_Override) ProtoMessage()
func (*RateLimiter_Override) ProtoReflect ¶
func (x *RateLimiter_Override) ProtoReflect() protoreflect.Message
func (*RateLimiter_Override) Reset ¶
func (x *RateLimiter_Override) Reset()
func (*RateLimiter_Override) String ¶
func (x *RateLimiter_Override) String() string
func (*RateLimiter_Override) UnmarshalJSON ¶
func (msg *RateLimiter_Override) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type Resources ¶
type Resources struct { // FluxMeters are installed in the data-plane and form the observability leg of the feedback loop. // // FluxMeters'-created metrics can be consumed as input to the circuit via the PromQL component. FluxMeters map[string]*FluxMeter `` /* 179-byte string literal not displayed */ // Classifiers are installed in the data-plane and are used to label the requests based on payload content. // // The flow labels created by Classifiers can be matched by FluxMeters to create metrics for control purposes. Classifiers []*Classifier `protobuf:"bytes,2,rep,name=classifiers,proto3" json:"classifiers,omitempty"` // contains filtered or unexported fields }
Resources that need to be setup for the policy to function
Resources are typically FluxMeters, Classifiers, etc. that can be used to create on-demand metrics or label the flows.
func (*Resources) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resources. Required by controller-gen.
func (*Resources) DeepCopyInterface ¶ added in v0.1.2
func (in *Resources) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Resources. Required by controller-gen.
func (*Resources) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Resources within kubernetes types, where deepcopy-gen is used.
func (*Resources) Descriptor
deprecated
func (*Resources) GetClassifiers ¶
func (x *Resources) GetClassifiers() []*Classifier
func (*Resources) GetFluxMeters ¶
func (*Resources) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Resources) ProtoMessage ¶
func (*Resources) ProtoMessage()
func (*Resources) ProtoReflect ¶
func (x *Resources) ProtoReflect() protoreflect.Message
func (*Resources) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Rule ¶
type Rule struct { // Types that are assignable to Source: // *Rule_Extractor // *Rule_Rego_ Source isRule_Source `protobuf_oneof:"source"` // Decides if the created label should be applied to the whole request chain // (propagated in [baggage](/concepts/flow-control/label/label.md#baggage)) // (default=true). Propagate *wrapperspb.BoolValue `protobuf:"bytes,3,opt,name=propagate,proto3" json:"propagate,omitempty"` // Decides if the created flow label should be hidden from the telemetry. // A hidden flow label is still accessible in policies and can be used as eg. // fairness key. // // :::caution // When using [FluxNinja Cloud plugin](cloud/plugin.md), all non-hidden // labels are sent to cloud for observability. We thus recommend to set this // _hidden_ flag for high-cardinality labels, such as usernames or ids, to // avoid bloating analytics database. _Hidden_ flag should also be set for // sensitive labels. // ::: Hidden bool `protobuf:"varint,4,opt,name=hidden,proto3" json:"hidden,omitempty"` // contains filtered or unexported fields }
Rule describes a single Flow Classification Rule
Flow classification rule extracts a value from request metadata. More specifically, from `input`, which has the same spec as [Envoy's External Authorization Attribute Context][attribute-context]. See <https://play.openpolicyagent.org/p/gU7vcLkc70> for an example input. There are two ways to define a flow classification rule: * Using a declarative extractor – suitable from simple cases, such as directly reading a value from header or a field from json body. * Rego expression.
Performance note: It's recommended to use declarative extractors where possible, as they may be slightly performant than Rego expressions. [attribute-context](https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/auth/v3/attribute_context.proto)
Example of Declarative JSON extractor: ```yaml extractor:
json: from: request.http.body pointer: /user/name
```
Example of Rego module which also disables propagation of a label: ```yaml rego:
query: data.user_from_cookie.user source: | package: user_from_cookie cookies: split(input.attributes.request.http.headers.cookie, ';') cookie: cookies[_] cookie.startswith: ('session=') session: substring(cookie, count('session='), -1) parts: split(session, '.') object: json.unmarshal(base64url.decode(parts[0])) user: object.user
propagate: false ```
func (*Rule) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rule. Required by controller-gen.
func (*Rule) DeepCopyInterface ¶ added in v0.1.2
func (in *Rule) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Rule. Required by controller-gen.
func (*Rule) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Rule within kubernetes types, where deepcopy-gen is used.
func (*Rule) Descriptor
deprecated
func (*Rule) GetExtractor ¶
func (*Rule) GetPropagate ¶
func (x *Rule) GetPropagate() *wrapperspb.BoolValue
func (*Rule) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Rule) ProtoMessage ¶
func (*Rule) ProtoMessage()
func (*Rule) ProtoReflect ¶
func (x *Rule) ProtoReflect() protoreflect.Message
func (*Rule) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Rule_Extractor ¶
type Rule_Extractor struct { // High-level declarative extractor. Extractor *Extractor `protobuf:"bytes,1,opt,name=extractor,proto3,oneof"` }
type Rule_Rego ¶
type Rule_Rego struct { // Source code of the rego module. // // Note: Must include a "package" declaration. Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` // Query string to extract a value (eg. `data.<mymodulename>.<variablename>`). // // Note: The module name must match the package name from the "source". Query string `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` // contains filtered or unexported fields }
Raw rego rules are compiled 1:1 to rego queries
High-level extractor-based rules are compiled into a single rego query.
func (*Rule_Rego) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rule_Rego. Required by controller-gen.
func (*Rule_Rego) DeepCopyInterface ¶ added in v0.1.2
func (in *Rule_Rego) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Rule_Rego. Required by controller-gen.
func (*Rule_Rego) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Rule_Rego within kubernetes types, where deepcopy-gen is used.
func (*Rule_Rego) Descriptor
deprecated
func (*Rule_Rego) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Rule_Rego) ProtoMessage ¶
func (*Rule_Rego) ProtoMessage()
func (*Rule_Rego) ProtoReflect ¶
func (x *Rule_Rego) ProtoReflect() protoreflect.Message
func (*Rule_Rego) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Rule_Rego_ ¶
type Rule_Rego_ struct { // Rego module to extract a value from the rego module. Rego *Rule_Rego `protobuf:"bytes,2,opt,name=rego,proto3,oneof"` }
type Scheduler ¶
type Scheduler struct { // Output ports for the Scheduler component. OutPorts *Scheduler_Outs `protobuf:"bytes,1,opt,name=out_ports,json=outPorts,proto3" json:"out_ports,omitempty"` // Selector decides for which service or flows the scheduler will be applied. Selector *v1.Selector `protobuf:"bytes,2,opt,name=selector,proto3" json:"selector,omitempty"` // List of workloads to be used in scheduler. // // Categorizing [flows](/concepts/flow-control/flow-control.md#flow) into workloads // allows for load-shedding to be "smarter" than just "randomly deny 50% of // requests". There are two aspects of this "smartness": // * Scheduler can more precisely calculate concurrency if it understands // that flows belonging to different classes have different weights (eg. // inserts vs lookups). // * Setting different priorities to different workloads lets the scheduler // avoid dropping important traffic during overload. // // Each workload in this list specifies also a matcher that's used to // determine which flow will be categorized into which workload. // In case of multiple matching workloads, the first matching one will be used. // If none of workloads match, `default_workload` will be used. // // :::info // See also [workload definition in the concepts // section](/concepts/flow-control/actuators/scheduler.md#workload). // ::: Workloads []*Scheduler_WorkloadAndLabelMatcher `protobuf:"bytes,3,rep,name=workloads,proto3" json:"workloads,omitempty"` // Workload to be used if none of workloads specified in `workloads` match. DefaultWorkload *Scheduler_Workload `protobuf:"bytes,4,opt,name=default_workload,json=defaultWorkload,proto3" json:"default_workload,omitempty"` // Automatically estimate weight of flows in each workload, based on // historical latency. Each workload's `tokens` will be set to average // latency of flows in that workload during last few seconds (exact duration // of this average can change). AutoTokens bool `protobuf:"varint,5,opt,name=auto_tokens,json=autoTokens,proto3" json:"auto_tokens,omitempty" default:"true"` // @gotags: default:"true" // Timeout as a factor of tokens for a flow in a workload // // If a flow is not able to get tokens within `timeout_factor` * `tokens` of duration, // it will be rejected. // // This value impacts the prioritization and fairness because the larger the timeout the higher the chance a request has to get scheduled. TimeoutFactor float64 `` // @gotags: validate:"gte=0.0" default:"0.5" /* 135-byte string literal not displayed */ // Max Timeout is the value with which the flow timeout calculated by `timeout_factor` is capped // // :::caution // This timeout needs to be strictly less than the timeout set on the // client for the whole GRPC call: // * in case of envoy, timeout set on `grpc_service` used in `ext_authz` filter, // * in case of libraries, timeout configured... TODO. // // We're using fail-open logic in integrations, so if the GRPC timeout // fires first, the flow will end up being unconditionally allowed while // it're still waiting on the scheduler. // // To avoid such cases, the end-to-end GRPC timeout should also contain // some headroom for constant overhead like serialization, etc. Default // value for GRPC timeouts is 500ms, giving 50ms of headeroom, so when // tweaking this timeout, make sure to adjust the GRPC timeout accordingly. // ::: MaxTimeout *durationpb.Duration `protobuf:"bytes,7,opt,name=max_timeout,json=maxTimeout,proto3" json:"max_timeout,omitempty" default:"0.45s"` // @gotags: default:"0.45s" // contains filtered or unexported fields }
Weighted Fair Queuing-based workload scheduler
:::note Each Agent instantiates an independent copy of the scheduler, but output signal are aggregated across all agents. :::
See ConcurrencyLimiter(#languagev1-concurrency-limiter) for more context.
func (*Scheduler) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduler. Required by controller-gen.
func (*Scheduler) DeepCopyInterface ¶ added in v0.1.2
func (in *Scheduler) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Scheduler. Required by controller-gen.
func (*Scheduler) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Scheduler within kubernetes types, where deepcopy-gen is used.
func (*Scheduler) Descriptor
deprecated
func (*Scheduler) GetAutoTokens ¶
func (*Scheduler) GetDefaultWorkload ¶
func (x *Scheduler) GetDefaultWorkload() *Scheduler_Workload
func (*Scheduler) GetMaxTimeout ¶ added in v0.1.2
func (x *Scheduler) GetMaxTimeout() *durationpb.Duration
func (*Scheduler) GetOutPorts ¶
func (x *Scheduler) GetOutPorts() *Scheduler_Outs
func (*Scheduler) GetSelector ¶
func (*Scheduler) GetTimeoutFactor ¶ added in v0.1.2
func (*Scheduler) GetWorkloads ¶
func (x *Scheduler) GetWorkloads() []*Scheduler_WorkloadAndLabelMatcher
func (*Scheduler) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Scheduler) ProtoMessage ¶
func (*Scheduler) ProtoMessage()
func (*Scheduler) ProtoReflect ¶
func (x *Scheduler) ProtoReflect() protoreflect.Message
func (*Scheduler) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Scheduler_Outs ¶
type Scheduler_Outs struct { // Accepted concurrency is the number of accepted tokens per second. // // :::info // **Accepted tokens** are tokens associated with // [flows](/concepts/flow-control/flow-control.md#flow) that were accepted by // this scheduler. Number of tokens for a flow is determined by a // [workload](#scheduler-workload) that the flow was assigned to (either // via `auto_tokens` or explicitly by `Workload.tokens`). // ::: // // Value of this signal is the sum across all the relevant schedulers. AcceptedConcurrency *Port `protobuf:"bytes,1,opt,name=accepted_concurrency,json=acceptedConcurrency,proto3" json:"accepted_concurrency,omitempty"` // Incoming concurrency is the number of incoming tokens/sec. // This is the same as `accepted_concurrency`, but across all the flows // entering scheduler, including rejected ones. IncomingConcurrency *Port `protobuf:"bytes,2,opt,name=incoming_concurrency,json=incomingConcurrency,proto3" json:"incoming_concurrency,omitempty"` // contains filtered or unexported fields }
Output for the Scheduler component.
func (*Scheduler_Outs) DeepCopy ¶ added in v0.1.2
func (in *Scheduler_Outs) DeepCopy() *Scheduler_Outs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduler_Outs. Required by controller-gen.
func (*Scheduler_Outs) DeepCopyInterface ¶ added in v0.1.2
func (in *Scheduler_Outs) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Scheduler_Outs. Required by controller-gen.
func (*Scheduler_Outs) DeepCopyInto ¶ added in v0.1.2
func (in *Scheduler_Outs) DeepCopyInto(out *Scheduler_Outs)
DeepCopyInto supports using Scheduler_Outs within kubernetes types, where deepcopy-gen is used.
func (*Scheduler_Outs) Descriptor
deprecated
func (*Scheduler_Outs) Descriptor() ([]byte, []int)
Deprecated: Use Scheduler_Outs.ProtoReflect.Descriptor instead.
func (*Scheduler_Outs) GetAcceptedConcurrency ¶
func (x *Scheduler_Outs) GetAcceptedConcurrency() *Port
func (*Scheduler_Outs) GetIncomingConcurrency ¶
func (x *Scheduler_Outs) GetIncomingConcurrency() *Port
func (*Scheduler_Outs) MarshalJSON ¶
func (msg *Scheduler_Outs) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*Scheduler_Outs) ProtoMessage ¶
func (*Scheduler_Outs) ProtoMessage()
func (*Scheduler_Outs) ProtoReflect ¶
func (x *Scheduler_Outs) ProtoReflect() protoreflect.Message
func (*Scheduler_Outs) Reset ¶
func (x *Scheduler_Outs) Reset()
func (*Scheduler_Outs) String ¶
func (x *Scheduler_Outs) String() string
func (*Scheduler_Outs) UnmarshalJSON ¶
func (msg *Scheduler_Outs) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type Scheduler_Workload ¶
type Scheduler_Workload struct { // Describes priority level of the requests within the workload. // Priority level ranges from 0 to 255. // Higher numbers means higher priority level. Priority uint32 `protobuf:"varint,1,opt,name=priority,proto3" json:"priority,omitempty" validate:"gte=0,lte=255"` // @gotags: validate:"gte=0,lte=255" // Tokens determines the cost of admitting a single request the workload, which is typically defined as milliseconds of response latency. // This override is applicable only if `auto_tokens` is set to false. Tokens uint64 `protobuf:"varint,2,opt,name=tokens,proto3" json:"tokens,omitempty" default:"1"` // @gotags: default:"1" // Fairness key is a label key that can be used to provide fairness within a workload. // Any [flow label](/concepts/flow-control/label/label.md) can be used here. Eg. if // you have a classifier that sets `user` flow label, you might want to set // `fairness_key = "user"`. FairnessKey string `protobuf:"bytes,3,opt,name=fairness_key,json=fairnessKey,proto3" json:"fairness_key,omitempty"` // contains filtered or unexported fields }
Workload defines a class of requests that preferably have similar properties such as response latency or desired priority.
func (*Scheduler_Workload) DeepCopy ¶ added in v0.1.2
func (in *Scheduler_Workload) DeepCopy() *Scheduler_Workload
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduler_Workload. Required by controller-gen.
func (*Scheduler_Workload) DeepCopyInterface ¶ added in v0.1.2
func (in *Scheduler_Workload) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Scheduler_Workload. Required by controller-gen.
func (*Scheduler_Workload) DeepCopyInto ¶ added in v0.1.2
func (in *Scheduler_Workload) DeepCopyInto(out *Scheduler_Workload)
DeepCopyInto supports using Scheduler_Workload within kubernetes types, where deepcopy-gen is used.
func (*Scheduler_Workload) Descriptor
deprecated
func (*Scheduler_Workload) Descriptor() ([]byte, []int)
Deprecated: Use Scheduler_Workload.ProtoReflect.Descriptor instead.
func (*Scheduler_Workload) GetFairnessKey ¶
func (x *Scheduler_Workload) GetFairnessKey() string
func (*Scheduler_Workload) GetPriority ¶
func (x *Scheduler_Workload) GetPriority() uint32
func (*Scheduler_Workload) GetTokens ¶
func (x *Scheduler_Workload) GetTokens() uint64
func (*Scheduler_Workload) MarshalJSON ¶
func (msg *Scheduler_Workload) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*Scheduler_Workload) ProtoMessage ¶
func (*Scheduler_Workload) ProtoMessage()
func (*Scheduler_Workload) ProtoReflect ¶
func (x *Scheduler_Workload) ProtoReflect() protoreflect.Message
func (*Scheduler_Workload) Reset ¶
func (x *Scheduler_Workload) Reset()
func (*Scheduler_Workload) String ¶
func (x *Scheduler_Workload) String() string
func (*Scheduler_Workload) UnmarshalJSON ¶
func (msg *Scheduler_Workload) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type Scheduler_WorkloadAndLabelMatcher ¶
type Scheduler_WorkloadAndLabelMatcher struct { // Workload associated with flows matching the label matcher. Workload *Scheduler_Workload `protobuf:"bytes,1,opt,name=workload,proto3" json:"workload,omitempty"` // Label Matcher to select a Workload based on // [flow labels](/concepts/flow-control/label/label.md). LabelMatcher *v11.LabelMatcher `protobuf:"bytes,2,opt,name=label_matcher,json=labelMatcher,proto3" json:"label_matcher,omitempty"` // contains filtered or unexported fields }
func (*Scheduler_WorkloadAndLabelMatcher) DeepCopy ¶ added in v0.1.2
func (in *Scheduler_WorkloadAndLabelMatcher) DeepCopy() *Scheduler_WorkloadAndLabelMatcher
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduler_WorkloadAndLabelMatcher. Required by controller-gen.
func (*Scheduler_WorkloadAndLabelMatcher) DeepCopyInterface ¶ added in v0.1.2
func (in *Scheduler_WorkloadAndLabelMatcher) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Scheduler_WorkloadAndLabelMatcher. Required by controller-gen.
func (*Scheduler_WorkloadAndLabelMatcher) DeepCopyInto ¶ added in v0.1.2
func (in *Scheduler_WorkloadAndLabelMatcher) DeepCopyInto(out *Scheduler_WorkloadAndLabelMatcher)
DeepCopyInto supports using Scheduler_WorkloadAndLabelMatcher within kubernetes types, where deepcopy-gen is used.
func (*Scheduler_WorkloadAndLabelMatcher) Descriptor
deprecated
func (*Scheduler_WorkloadAndLabelMatcher) Descriptor() ([]byte, []int)
Deprecated: Use Scheduler_WorkloadAndLabelMatcher.ProtoReflect.Descriptor instead.
func (*Scheduler_WorkloadAndLabelMatcher) GetLabelMatcher ¶
func (x *Scheduler_WorkloadAndLabelMatcher) GetLabelMatcher() *v11.LabelMatcher
func (*Scheduler_WorkloadAndLabelMatcher) GetWorkload ¶
func (x *Scheduler_WorkloadAndLabelMatcher) GetWorkload() *Scheduler_Workload
func (*Scheduler_WorkloadAndLabelMatcher) MarshalJSON ¶
func (msg *Scheduler_WorkloadAndLabelMatcher) MarshalJSON() ([]byte, error)
MarshalJSON implements json.Marshaler
func (*Scheduler_WorkloadAndLabelMatcher) ProtoMessage ¶
func (*Scheduler_WorkloadAndLabelMatcher) ProtoMessage()
func (*Scheduler_WorkloadAndLabelMatcher) ProtoReflect ¶
func (x *Scheduler_WorkloadAndLabelMatcher) ProtoReflect() protoreflect.Message
func (*Scheduler_WorkloadAndLabelMatcher) Reset ¶
func (x *Scheduler_WorkloadAndLabelMatcher) Reset()
func (*Scheduler_WorkloadAndLabelMatcher) String ¶
func (x *Scheduler_WorkloadAndLabelMatcher) String() string
func (*Scheduler_WorkloadAndLabelMatcher) UnmarshalJSON ¶
func (msg *Scheduler_WorkloadAndLabelMatcher) UnmarshalJSON(b []byte) error
UnmarshalJSON implements json.Unmarshaler
type Sqrt ¶
type Sqrt struct { // Input ports for the Sqrt component. InPorts *Sqrt_Ins `protobuf:"bytes,1,opt,name=in_ports,json=inPorts,proto3" json:"in_ports,omitempty"` // Output ports for the Sqrt component. OutPorts *Sqrt_Outs `protobuf:"bytes,2,opt,name=out_ports,json=outPorts,proto3" json:"out_ports,omitempty"` // Scaling factor to be multiplied with the square root of the input signal. Scale float64 `protobuf:"fixed64,3,opt,name=scale,proto3" json:"scale,omitempty"` // @gotags default:"1.0" // contains filtered or unexported fields }
Takes an input signal and emits the square root of it multiplied by scale as an output
$$ \text{output} = \text{scale} \sqrt{\text{input}} $$
func (*Sqrt) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sqrt. Required by controller-gen.
func (*Sqrt) DeepCopyInterface ¶ added in v0.1.2
func (in *Sqrt) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Sqrt. Required by controller-gen.
func (*Sqrt) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Sqrt within kubernetes types, where deepcopy-gen is used.
func (*Sqrt) Descriptor
deprecated
func (*Sqrt) GetInPorts ¶
func (*Sqrt) GetOutPorts ¶
func (*Sqrt) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Sqrt) ProtoMessage ¶
func (*Sqrt) ProtoMessage()
func (*Sqrt) ProtoReflect ¶
func (x *Sqrt) ProtoReflect() protoreflect.Message
func (*Sqrt) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Sqrt_Ins ¶
type Sqrt_Ins struct { // Input signal. Input *Port `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` // contains filtered or unexported fields }
Inputs for the Sqrt component.
func (*Sqrt_Ins) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sqrt_Ins. Required by controller-gen.
func (*Sqrt_Ins) DeepCopyInterface ¶ added in v0.1.2
func (in *Sqrt_Ins) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Sqrt_Ins. Required by controller-gen.
func (*Sqrt_Ins) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Sqrt_Ins within kubernetes types, where deepcopy-gen is used.
func (*Sqrt_Ins) Descriptor
deprecated
func (*Sqrt_Ins) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Sqrt_Ins) ProtoMessage ¶
func (*Sqrt_Ins) ProtoMessage()
func (*Sqrt_Ins) ProtoReflect ¶
func (x *Sqrt_Ins) ProtoReflect() protoreflect.Message
func (*Sqrt_Ins) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type Sqrt_Outs ¶
type Sqrt_Outs struct { // Output signal. Output *Port `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` // contains filtered or unexported fields }
Outputs for the Sqrt component.
func (*Sqrt_Outs) DeepCopy ¶ added in v0.1.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sqrt_Outs. Required by controller-gen.
func (*Sqrt_Outs) DeepCopyInterface ¶ added in v0.1.2
func (in *Sqrt_Outs) DeepCopyInterface() interface{}
DeepCopyInterface is an autogenerated deepcopy function, copying the receiver, creating a new Sqrt_Outs. Required by controller-gen.
func (*Sqrt_Outs) DeepCopyInto ¶ added in v0.1.2
DeepCopyInto supports using Sqrt_Outs within kubernetes types, where deepcopy-gen is used.
func (*Sqrt_Outs) Descriptor
deprecated
func (*Sqrt_Outs) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (*Sqrt_Outs) ProtoMessage ¶
func (*Sqrt_Outs) ProtoMessage()
func (*Sqrt_Outs) ProtoReflect ¶
func (x *Sqrt_Outs) ProtoReflect() protoreflect.Message
func (*Sqrt_Outs) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
type UnimplementedPolicyServiceServer ¶
type UnimplementedPolicyServiceServer struct { }
UnimplementedPolicyServiceServer should be embedded to have forward compatible implementations.
func (UnimplementedPolicyServiceServer) AllPolicies ¶
func (UnimplementedPolicyServiceServer) AllPolicies(context.Context, *emptypb.Empty) (*AllPoliciesResponse, error)
type UnsafePolicyServiceServer ¶
type UnsafePolicyServiceServer interface {
// contains filtered or unexported methods
}
UnsafePolicyServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to PolicyServiceServer will result in compilation errors.