The Load Ramp is a high-level component in the policy circuit. It is specifically designed to facilitate controlled traffic ramp-up scenarios. This component allows for gradual increases in traffic by specifying rollout steps, each defined by a time duration and target percentage. The target percentage transitions linearly from one step to the next.
To achieve this functionality, the Load Ramp utilizes input ports named
reset to control its behavior. These input signals
drive the internal logic of the component. Additionally, the Load Ramp
internally leverages the Sampler component, providing it with an
accept_percentage signal and setting its
The Sampler component in Aperture is designed to manage the load at a Control Point by allowing only a specified percentage of flows at random or by sticky sessions. Sampler is useful for ramping the load in a controlled way.
The following example creates a Sampler at the
ingress control point of
user-service.default.svc.cluster.local service. It accepts 50% of the flows
with stickiness based on the value of
http.request.header.user_id flow label:
- control_point: ingress
When the label key is not specified, the Sampler acts as a stateless filter. In this mode, it selects a percentage of flows randomly. This is useful for controlling the overall load at a control point without focusing on specific sessions or users.
If a label key is specified, the Sampler acts as a sticky filter. In this mode, it ensures that a series of flows with the same value of the label key get the same decision, provided the accept percentage remains the same or higher. This is useful for maintaining consistent behavior for specific sessions or users.
The Sampler supports dynamic configuration by specifying certain label values to be accepted by the flow filter, regardless of the accept percentage. This enables making exceptions for specific sessions or users, granting them unhindered access to a control point.
The Flow Selector is responsible for determining the service and flows at which the Sampler is applied. By configuring the Flow Selector, one can control which parts of a service are affected by the Sampler.
Accept Percentage Signal
The Sampler component takes an accept-percentage input signal, based on which it decides the percentage of flows to accept, allowing for a fine-grained control.
ramp_mode flag set require at least one ramp component to accept
them, resulting in flow rejection if Aperture Agent is disconnected or policy is
not loaded. When Sampler's
ramp_mode flag is set, the Sampler becomes such
a ramp component and can accept ramp mode flows.