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
Parameter | policy.components |
Description | List of additional circuit components. |
Type | Array of Object (aperture.spec.v1.Component) |
Default Value | Expand
|
Parameter | policy.policy_name |
Description | Name of the policy. |
Type | string |
Default Value | __REQUIRED_FIELD__ |
Parameter | policy.resources |
Description | Additional resources. |
Type | Object (aperture.spec.v1.Resources) |
Default Value | Expand
|
Parameter | policy.kubelet_metrics |
Description | Kubelet metrics configuration. |
Type | Object (kubelet_metrics) |
Default Value | Expand
|
Parameter | policy.evaluation_interval |
Description | The interval between successive evaluations of the Circuit. |
Type | string |
Default Value | 10s |
Parameter | policy.load_ramp |
Description | Identify the service and flows of the feature that needs to be rolled out. And specify load ramp steps. |
Type | Object (aperture.spec.v1.LoadRampParameters) |
Default Value | Expand
|
Parameter | policy.start |
Description | Whether to start the ramp. This setting may be overridden at runtime via dynamic configuration. |
Type | Boolean |
Default Value | false |
policy.drivers
Parameter | policy.drivers.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 | Expand
|
Parameter | policy.drivers.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 | Expand
|
Parameter | policy.drivers.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 | 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 | 15s |
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 Load Ramp |
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
criteria
Parameter | threshold |
Description | The threshold for the criteria. |
Type | Number (double) |
Default Value | __REQUIRED_FIELD__ |
promql_criteria
Parameter | operator |
Description | The operator for the criteria. oneof: `gt | lt | gte | lte | eq | neq`. |
Type | string |
Default Value | __REQUIRED_FIELD__ |
Parameter | threshold |
Description | The threshold for the criteria. |
Type | Number (double) |
Default Value | __REQUIRED_FIELD__ |
driver_criteria
Parameter | backward |
Description | The backward criteria. |
Type | Object (criteria) |
Default Value | Expand
|
Parameter | forward |
Description | The forward criteria. |
Type | Object (criteria) |
Default Value | Expand
|
Parameter | reset |
Description | The reset criteria. |
Type | Object (criteria) |
Default Value | Expand
|
promql_driver_criteria
Parameter | backward |
Description | The backward criteria. |
Type | Object (promql_criteria) |
Default Value | Expand
|
Parameter | forward |
Description | The forward criteria. |
Type | Object (promql_criteria) |
Default Value | Expand
|
Parameter | reset |
Description | The reset criteria. |
Type | Object (promql_criteria) |
Default Value | Expand
|
kubelet_metrics_criteria
Parameter | pod_cpu |
Description | The criteria of the pod cpu usage driver. |
Type | Object (driver_criteria) |
Default Value | Expand
|
Parameter | pod_memory |
Description | The criteria of the pod memory usage driver. |
Type | Object (driver_criteria) |
Default Value | Expand
|
average_latency_driver
Parameter | criteria |
Description | The criteria of the driver. |
Type | Object (driver_criteria) |
Default Value | __REQUIRED_FIELD__ |
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
|
percentile_latency_driver
Parameter | criteria |
Description | The criteria of the driver. |
Type | Object (driver_criteria) |
Default Value | __REQUIRED_FIELD__ |
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 |
promql_driver
Parameter | criteria |
Description | The criteria of the driver. |
Type | Object (promql_driver_criteria) |
Default Value | __REQUIRED_FIELD__ |
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__ |
kubelet_metrics
Parameter | criteria |
Description | Criteria. |
Type | Object (kubelet_metrics_criteria) |
Default Value | __REQUIRED_FIELD__ |
Parameter | infra_context |
Description | Kubernetes selector for scraping metrics. |
Type | Object (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
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 load ramp to the first step. This setting can be updated at the runtime without shutting down the policy. |
Type | Boolean |
Default Value | false |
Parameter | start |
Description | Start 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. |
Type | Boolean |
Default Value | false |