Feature Rollout Policy
Introduction
This policy rolls out new features based on closed loop feedback. The rollout criteria are defined by drivers that determine conditions for advancing, reversing, or resetting the rollout to its initial state. The rollout process consists of a series of steps that progress if the feature is considered healthy.
info
Please see reference for the
LoadRamp
component that is used
within this blueprint.
info
See the tutorial on Feature Rollout with Average Latency Feedback to see this blueprint in use.
Configuration
Blueprint name: policies/feature-rollout/base
Parameters
Parameter | policy |
Description | Parameters for the Feature Rollout policy. |
Type | Object (rollout_policy) |
Default Value | Expand
|
dashboard
Parameter | dashboard.extra_filters |
Description | Additional filters to pass to each query to Grafana datasource. |
Type | Object (map[string]string) |
Default Value | Expand
|
Parameter | dashboard.refresh_interval |
Description | Refresh interval for dashboard panels. |
Type | string |
Default Value | 5s |
Parameter | dashboard.time_from |
Description | From time of dashboard. |
Type | string |
Default Value | now-15m |
Parameter | dashboard.time_to |
Description | To time of dashboard. |
Type | string |
Default Value | now |
Parameter | dashboard.title |
Description | Name of the main dashboard. |
Type | string |
Default Value | Aperture Feature Rollout |
dashboard.datasource
Parameter | dashboard.datasource.filter_regex |
Description | Datasource filter regex. |
Type | string |
Default Value |
|
Parameter | dashboard.datasource.name |
Description | Datasource name. |
Type | string |
Default Value | $datasource |
Schemas
promql_driver
Parameter | query_string |
Description | The Prometheus query to be run. Must return a scalar or a vector with a single element. |
Type | string |
Default Value | __REQUIRED_FIELD__ |
criteria
backward
Parameter | operator |
Description | The operator for the backward criteria. oneof: `gt | lt | gte | lte | eq | neq` |
Type | string |
Default Value |
|
Parameter | threshold |
Description | The threshold for the backward criteria. |
Type | Number (double) |
Default Value |
|
forward
Parameter | operator |
Description | The operator for the forward criteria. oneof: `gt | lt | gte | lte | eq | neq` |
Type | string |
Default Value | __REQUIRED_FIELD__ |
Parameter | threshold |
Description | The threshold for the forward criteria. |
Type | Number (double) |
Default Value | __REQUIRED_FIELD__ |
reset
Parameter | operator |
Description | The operator for the reset criteria. oneof: `gt | lt | gte | lte | eq | neq` |
Type | string |
Default Value |
|
Parameter | threshold |
Description | The threshold for the reset criteria. |
Type | Number (double) |
Default Value |
|
average_latency_driver
Parameter | selectors |
Description | Identify the service and flows whose latency needs to be measured. |
Type | Array of Object (aperture.spec.v1.Selector) |
Default Value | Expand
|
criteria
backward
Parameter | threshold |
Description | The threshold for the backward criteria. |
Type | Number (double) |
Default Value |
|
forward
Parameter | threshold |
Description | The threshold for the forward criteria. |
Type | Number (double) |
Default Value | __REQUIRED_FIELD__ |
reset
Parameter | threshold |
Description | The threshold for the reset criteria. |
Type | Number (double) |
Default Value |
|
percentile_latency_driver
Parameter | flux_meter |
Description | FluxMeter specifies the flows whose latency needs to be measured and parameters for the histogram metrics. |
Type | Object (aperture.spec.v1.FluxMeter) |
Default Value | Expand
|
Parameter | percentile |
Description | The percentile to be used for latency measurement. |
Type | Number (double) |
Default Value | 95 |
criteria
backward
Parameter | threshold |
Description | The threshold for the backward criteria. |
Type | Number (double) |
Default Value |
|
forward
Parameter | threshold |
Description | The threshold for the forward criteria. |
Type | Number (double) |
Default Value | __REQUIRED_FIELD__ |
reset
Parameter | threshold |
Description | The threshold for the reset criteria. |
Type | Number (double) |
Default Value |
|
rollout_policy
Parameter | components |
Description | List of additional circuit components. |
Type | Array of Object (aperture.spec.v1.Component) |
Default Value | Expand
|
Parameter | evaluation_interval |
Description | The interval between successive evaluations of the Circuit. |
Type | string |
Default Value | 10s |
Parameter | load_ramp |
Description | Identify the service and flows of the feature that needs to be rolled out. And specify feature rollout steps. |
Type | Object (aperture.spec.v1.LoadRampParameters) |
Default Value | Expand
|
Parameter | policy_name |
Description | Name of the policy. |
Type | string |
Default Value | __REQUIRED_FIELD__ |
Parameter | resources |
Description | List of additional resources. |
Type | Object (aperture.spec.v1.Resources) |
Default Value | Expand
|
Parameter | rollout |
Description | Whether to start the rollout. This setting may be overridden at runtime via dynamic configuration. |
Type | Boolean |
Default Value | false |
drivers
Parameter | average_latency_drivers |
Description | List of drivers that compare average latency against forward, backward and reset thresholds. |
Type | Array of Object (average_latency_driver) |
Default Value |
|
Parameter | percentile_latency_drivers |
Description | List of drivers that compare percentile latency against forward, backward and reset thresholds. |
Type | Array of Object (percentile_latency_driver) |
Default Value |
|
Parameter | promql_drivers |
Description | List of promql drivers that compare results of a Prometheus query against forward, backward and reset thresholds. |
Type | Array of Object (promql_driver) |
Default Value |
|
Dynamic Configuration
note
The following configuration parameters can be dynamically configured at runtime, without reloading the policy.
Parameters
Parameter | pass_through_label_values |
Description | Specify certain label values to be always accepted by the _Sampler_ regardless of accept percentage. This configuration can be updated at the runtime without shutting down the policy. |
Type | Array of string |
Default Value | Expand
|
Parameter | reset |
Description | Reset feature rollout to the first step. This setting can be updated at the runtime without shutting down the policy. |
Type | Boolean |
Default Value | false |
Parameter | rollout |
Description | Start feature rollout. This setting can be updated at runtime without shutting down the policy. The feature rollout gets paused if this flag is set to false in the middle of a feature rollout. |
Type | Boolean |
Default Value | false |