Schedule
Following the learning period, Optimize Live generates recommendations at the interval defined by the schedule. An optional recommendation validity period can be configured independently from the recommendation schedule.
For more details and examples showing how these settings are related, see the Schedule, Validity period, Learning period, and Preliminary recommendations sections in the Concepts topic.
Recommendation settings:
Schedule
The schedule on which Optimize Live generates new recommendations for a workload.
| Annotation | Default value |
|---|---|
live.stormforge.io/schedule |
"@daily" (equivalent to P1D) |
Description
Recommendations are generated automatically for workloads on a schedule, defined by a schedule string. The shortest valid recommendation schedule is once an hour.
To prevent the restarting of many workloads at the same time, Optimize Live staggers the generation and applying of recommendations throughout the schedule period (when the schedule is an ISO 8601 Duration string or equivalent schedule macro). Examples:
@dailyorP1D: recommendations are generated and applied across 24 hoursPT12H: recommendations are generated and applied across 12 hours
If you require more precise timing for when recommendations are applied, use a cron expression as described below.
Duration expressions
Valid ISO 8601 Duration strings can be specified.
Examples
PT1H– Once an hourP1D– Once a dayP7D– Once a week
Cron expressions
Cron strings can be used to designate schedules with more specific requirements, such as day-of-week. Cron expressions should specify five fields. For day-of-week, friendly terms such as WED or THU are acceptable in place of numbers. Optimize Live recognizes the special value H in a field to mean “hash” this value, and use a deterministic, but functionally random value for that field.
Cron times must always be specified in UTC.
Examples
H H * * THU– Once every Thursday30 0 * * SAT,MON– 12:30am each Saturday and each Monday UTCH H(0-2) * * *– Every day between 12:00am and 2:59am UTCH H(7-9) * * SATL- Between 7:00am and 9:59am UTC on the last Saturday of the month
Schedule macros
Macros are shorthand that can be used as syntactic sugar for common schedules. The available macros are described below and compared with their duration and cron equivalents.
| Macro | Duration | Cron | Description |
|---|---|---|---|
@never |
P0D |
N/A | Do not generate recommendations automatically |
@hourly |
PT1H |
H * * * * |
Once every hour |
@daily |
P1D |
H H * * * |
Once every day |
@weekly |
P7D |
H H * * H |
Once every week |
@midnight |
N/A | H H(0-2) * * * |
Every day between 12:00am and 2:59am UTC |
Key points
- Each workload can have one and only one schedule string defined for it, of either a duration, cron expression, or schedule macro.
- Exact times are not guaranteed for recommendation generation. For exact cron strings, recommendations are generated within an hour of the time specified.
- To avoid concentrated pod churn when new recommendations are applied, use schedules that spread optimization over a period of time. The
Hcapability in cron expressions or using non-specific durations can both help achieve an appropriate scheduling distribution.
Validity period
Defines the duration for which a recommendation remains valid.
| Annotation | Default value |
|---|---|
live.stormforge.io/validity-period |
None |
Description
Overrides the default recommendation validity period where recommendations remain valid until new recommendations are generated according to the recommendation schedule.
Validity period must be greater than the recommendation schedule frequency for the validity period to take effect. For example, if the recommendation schedule is @daily, validity period must be set to at least P1DT1H.
If validity period is configured to be equal to or less than the recommendation schedule, validity continues to be based on the recommendation schedule.
Duration expressions
Only valid ISO 8601 Duration strings can be specified.
Examples
- “
P5D” – Five days - “
P14D” – Two weeks