Skip to main content
Version: 2.7.0

Base Load Ramping Policy

Introduction

This policy rolls out new features based on closed loop feedback. The ramping criteria are defined by drivers that determine conditions for advancing, reversing, or resetting the ramping to its initial state. The ramping 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 use-case Percentage Rollout with Average Latency Feedback to see this blueprint in use.

Configuration

Blueprint name: load-ramping/base

Parameters

policy

Parameterpolicy.components
DescriptionList of additional circuit components.
TypeArray of Object (aperture.spec.v1.Component)
Default Value
Expand
[]
Parameterpolicy.policy_name
DescriptionName of the policy.
Typestring
Default Value__REQUIRED_FIELD__
Parameterpolicy.resources
DescriptionAdditional resources.
TypeObject (aperture.spec.v1.Resources)
Default Value
Expand
flow_control:
classifiers: []
Parameterpolicy.kubelet_metrics
DescriptionKubelet metrics configuration.
TypeObject (kubelet_metrics)
Default Value
Expand
{}
Parameterpolicy.evaluation_interval
DescriptionThe interval between successive evaluations of the Circuit.
Typestring
Default Value10s
Parameterpolicy.load_ramp
DescriptionIdentify the service and flows of the feature that needs to be rolled out. And specify load ramp 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.start
DescriptionWhether to start the ramp. This setting may be overridden at runtime via dynamic configuration.
TypeBoolean
Default Valuefalse
policy.drivers
Parameterpolicy.drivers.average_latency_drivers
DescriptionList of drivers that compare average latency against forward, backward and reset thresholds.
TypeArray of Object (average_latency_driver)
Default Value
Expand
[]
Parameterpolicy.drivers.percentile_latency_drivers
DescriptionList of drivers that compare percentile latency against forward, backward and reset thresholds.
TypeArray of Object (percentile_latency_driver)
Default Value
Expand
[]
Parameterpolicy.drivers.promql_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
Expand
[]

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 Value15s
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 Load Ramp
dashboard.datasource
Parameterdashboard.datasource.filter_regex
DescriptionDatasource filter regex.
Typestring
Default Value
Parameterdashboard.datasource.name
DescriptionDatasource name.
Typestring
Default Value$datasource

Schemas

criteria

Parameterthreshold
DescriptionThe threshold for the criteria.
TypeNumber (double)
Default Value__REQUIRED_FIELD__

promql_criteria

Parameteroperator
DescriptionThe operator for the criteria. oneof: `gt | lt | gte | lte | eq | neq`.
Typestring
Default Value__REQUIRED_FIELD__
Parameterthreshold
DescriptionThe threshold for the criteria.
TypeNumber (double)
Default Value__REQUIRED_FIELD__

driver_criteria

Parameterbackward
DescriptionThe backward criteria.
TypeObject (criteria)
Default Value
Expand
{}
Parameterforward
DescriptionThe forward criteria.
TypeObject (criteria)
Default Value
Expand
{}
Parameterreset
DescriptionThe reset criteria.
TypeObject (criteria)
Default Value
Expand
{}

promql_driver_criteria

Parameterbackward
DescriptionThe backward criteria.
TypeObject (promql_criteria)
Default Value
Expand
{}
Parameterforward
DescriptionThe forward criteria.
TypeObject (promql_criteria)
Default Value
Expand
{}
Parameterreset
DescriptionThe reset criteria.
TypeObject (promql_criteria)
Default Value
Expand
{}

kubelet_metrics_criteria

Parameterpod_cpu
DescriptionThe criteria of the pod cpu usage driver.
TypeObject (driver_criteria)
Default Value
Expand
{}
Parameterpod_memory
DescriptionThe criteria of the pod memory usage driver.
TypeObject (driver_criteria)
Default Value
Expand
{}

average_latency_driver

Parametercriteria
DescriptionThe criteria of the driver.
TypeObject (driver_criteria)
Default Value__REQUIRED_FIELD__
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__

percentile_latency_driver

Parametercriteria
DescriptionThe criteria of the driver.
TypeObject (driver_criteria)
Default Value__REQUIRED_FIELD__
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

promql_driver

Parametercriteria
DescriptionThe criteria of the driver.
TypeObject (promql_driver_criteria)
Default Value__REQUIRED_FIELD__
Parameterquery_string
DescriptionThe Prometheus query to be run. Must return a scalar or a vector with a single element.
Typestring
Default Value__REQUIRED_FIELD__

kubelet_metrics

Parametercriteria
DescriptionCriteria.
TypeObject (kubelet_metrics_criteria)
Default Value__REQUIRED_FIELD__
Parameterinfra_context
DescriptionKubernetes selector for scraping metrics.
TypeObject (aperture.spec.v1.KubernetesObjectSelector)
Default Value__REQUIRED_FIELD__

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 load ramp to the first step. This setting can be updated at the runtime without shutting down the policy.
TypeBoolean
Default Valuefalse

Parameterstart
DescriptionStart load ramp. This setting can be updated at runtime without shutting down the policy. The load ramp gets paused if this flag is set to false in the middle of a load ramp.
TypeBoolean
Default Valuefalse