Skip to main content
Version: 2.6.0

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

Parameterpolicy
DescriptionParameters for the Feature Rollout policy.
TypeObject (rollout_policy)
Default Value
Expand
components: []
drivers: {}
evaluation_interval: 10s
load_ramp:
sampler:
label_key: ''
selectors:
- control_point: __REQUIRED_FIELD__
service: __REQUIRED_FIELD__
steps:
- duration: __REQUIRED_FIELD__
target_accept_percentage: __REQUIRED_FIELD__
policy_name: __REQUIRED_FIELD__
resources:
flow_control:
classifiers: []
rollout: false

dashboard

Parameterdashboard.extra_filters
DescriptionAdditional filters to pass to each query to Grafana datasource.
TypeObject (map[string]string)
Default Value
Expand
{}
Parameterdashboard.refresh_interval
DescriptionRefresh interval for dashboard panels.
Typestring
Default Value5s
Parameterdashboard.time_from
DescriptionFrom time of dashboard.
Typestring
Default Valuenow-15m
Parameterdashboard.time_to
DescriptionTo time of dashboard.
Typestring
Default Valuenow
Parameterdashboard.title
DescriptionName of the main dashboard.
Typestring
Default ValueAperture Feature Rollout
dashboard.datasource
Parameterdashboard.datasource.filter_regex
DescriptionDatasource filter regex.
Typestring
Default Value
Parameterdashboard.datasource.name
DescriptionDatasource name.
Typestring
Default Value$datasource

Schemas

promql_driver

Parameterquery_string
DescriptionThe Prometheus query to be run. Must return a scalar or a vector with a single element.
Typestring
Default Value__REQUIRED_FIELD__
criteria
backward
Parameteroperator
DescriptionThe operator for the backward criteria. oneof: `gt | lt | gte | lte | eq | neq`
Typestring
Default Value
Parameterthreshold
DescriptionThe threshold for the backward criteria.
TypeNumber (double)
Default Value
forward
Parameteroperator
DescriptionThe operator for the forward criteria. oneof: `gt | lt | gte | lte | eq | neq`
Typestring
Default Value__REQUIRED_FIELD__
Parameterthreshold
DescriptionThe threshold for the forward criteria.
TypeNumber (double)
Default Value__REQUIRED_FIELD__
reset
Parameteroperator
DescriptionThe operator for the reset criteria. oneof: `gt | lt | gte | lte | eq | neq`
Typestring
Default Value
Parameterthreshold
DescriptionThe threshold for the reset criteria.
TypeNumber (double)
Default Value

average_latency_driver

Parameterselectors
DescriptionIdentify the service and flows whose latency needs to be measured.
TypeArray of Object (aperture.spec.v1.Selector)
Default Value
Expand
- control_point: __REQUIRED_FIELD__
service: __REQUIRED_FIELD__
criteria
backward
Parameterthreshold
DescriptionThe threshold for the backward criteria.
TypeNumber (double)
Default Value
forward
Parameterthreshold
DescriptionThe threshold for the forward criteria.
TypeNumber (double)
Default Value__REQUIRED_FIELD__
reset
Parameterthreshold
DescriptionThe threshold for the reset criteria.
TypeNumber (double)
Default Value

percentile_latency_driver

Parameterflux_meter
DescriptionFluxMeter specifies the flows whose latency needs to be measured and parameters for the histogram metrics.
TypeObject (aperture.spec.v1.FluxMeter)
Default Value
Expand
selector:
- control_point: __REQUIRED_FIELD__
service: __REQUIRED_FIELD__
static_buckets:
buckets:
- 5
- 10
- 25
- 50
- 100
- 250
- 500
- 1000
- 2500
- 5000
- 10000
Parameterpercentile
DescriptionThe percentile to be used for latency measurement.
TypeNumber (double)
Default Value95
criteria
backward
Parameterthreshold
DescriptionThe threshold for the backward criteria.
TypeNumber (double)
Default Value
forward
Parameterthreshold
DescriptionThe threshold for the forward criteria.
TypeNumber (double)
Default Value__REQUIRED_FIELD__
reset
Parameterthreshold
DescriptionThe threshold for the reset criteria.
TypeNumber (double)
Default Value

rollout_policy

Parametercomponents
DescriptionList of additional circuit components.
TypeArray of Object (aperture.spec.v1.Component)
Default Value
Expand
[]
Parameterevaluation_interval
DescriptionThe interval between successive evaluations of the Circuit.
Typestring
Default Value10s
Parameterload_ramp
DescriptionIdentify the service and flows of the feature that needs to be rolled out. And specify feature rollout steps.
TypeObject (aperture.spec.v1.LoadRampParameters)
Default Value
Expand
sampler:
label_key: ''
selectors:
- control_point: __REQUIRED_FIELD__
service: __REQUIRED_FIELD__
steps:
- duration: __REQUIRED_FIELD__
target_accept_percentage: __REQUIRED_FIELD__
Parameterpolicy_name
DescriptionName of the policy.
Typestring
Default Value__REQUIRED_FIELD__
Parameterresources
DescriptionList of additional resources.
TypeObject (aperture.spec.v1.Resources)
Default Value
Expand
flow_control:
classifiers: []
Parameterrollout
DescriptionWhether to start the rollout. This setting may be overridden at runtime via dynamic configuration.
TypeBoolean
Default Valuefalse
drivers
Parameteraverage_latency_drivers
DescriptionList of drivers that compare average latency against forward, backward and reset thresholds.
TypeArray of Object (average_latency_driver)
Default Value
Parameterpercentile_latency_drivers
DescriptionList of drivers that compare percentile latency against forward, backward and reset thresholds.
TypeArray of Object (percentile_latency_driver)
Default Value
Parameterpromql_drivers
DescriptionList of promql drivers that compare results of a Prometheus query against forward, backward and reset thresholds.
TypeArray of Object (promql_driver)
Default Value

Dynamic Configuration

note

The following configuration parameters can be dynamically configured at runtime, without reloading the policy.

Parameters

Parameterpass_through_label_values
DescriptionSpecify 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.
TypeArray of string
Default Value
Expand
- __REQUIRED_FIELD__

Parameterreset
DescriptionReset feature rollout to the first step. This setting can be updated at the runtime without shutting down the policy.
TypeBoolean
Default Valuefalse

Parameterrollout
DescriptionStart 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.
TypeBoolean
Default Valuefalse