Autoscale Triggers Override
The Console provides a per-Service autoscale configuration that lets you enable, edit, and disable autoscaling through the UI without editing convox.yml. Console-driven autoscale settings persist across deploys.
Autoscale States
Each Service displays one of three autoscale states in its Scaling tab:
| State | Badge | Action |
|---|---|---|
| Not configured | Autoscale: Not configured |
Enable triggers |
From convox.yml |
Autoscale: From convox.yml |
Override triggers |
| Override active | Autoscale: Override active |
Disable override |
Not configured: The Service has no autoscaling defined in convox.yml and no Console override. The Service runs at a fixed replica count.
From convox.yml: The Service has autoscaling defined in convox.yml (via scale.autoscale, scale.targets, or scale.count: N-M). The Console displays the configured thresholds and offers an Override triggers action.
Override active: A Console-driven autoscaler is managing this Service. The convox.yml autoscale configuration is preserved but inactive until the override is disabled.
Trigger Types
| Type | Requirements |
|---|---|
| CPU utilization | Works on every Rack |
| Memory utilization | Works on every Rack |
| GPU utilization | Requires keda_enable=true and scale.gpu.count >= 1 in convox.yml |
| Queue depth | Requires keda_enable=true |
CPU and memory triggers work on any Rack. GPU and queue depth triggers require KEDA to be enabled.
GPU triggers also require the Service to declare GPU resources in convox.yml. Without a GPU reservation, the trigger has no metrics to scale on. The Console displays an error if GPU triggers are selected without a GPU reservation.
Enable / Override / Disable
Enable Triggers
Click Enable triggers on a Service with no autoscale configuration. The dialog asks for:
- Min replicas (defaults to current replica count)
- Max replicas (defaults to 3x current count or 5, whichever is higher)
- Trigger checkboxes: Select the trigger types to enable. Each row has a threshold input with a default value (CPU 70%, Memory 80%, GPU utilization 75%, Queue depth 100).
At least one trigger must be selected to save.
Override Triggers
Click Override triggers on a Service with existing convox.yml autoscale settings. The dialog pre-populates with the current thresholds from the manifest. Uncheck a trigger to remove it from the override.
Edit Thresholds
When an override is active, each threshold cell in the Scaling tab shows a pencil icon. Click to edit the value inline. Changes take effect without re-enabling the full override.
Disable Override
Click Disable override to remove the Console-driven autoscaler. On the next deploy, the convox.yml autoscale configuration (if any) takes effect again. If the manifest has no autoscale block, the Service returns to a fixed replica count.
CLI Commands
The same operations are available from the CLI:
$ convox services triggers enable web --min 1 --max 5 --cpu 70 -a my-app
$ convox services triggers disable web -a my-app
$ convox services triggers threshold-set web --type cpu --threshold 80 -a my-app
The --type argument accepts cpu, memory, gpu, or queue.
What Persists Across Deploys
Console-driven autoscale settings persist across deploys. The autoscaler continues running with the same thresholds and replica bounds regardless of new releases.
When the override is disabled, the Console-driven autoscaler is removed and the next deploy restores the convox.yml autoscale configuration (or removes autoscaling if the manifest has none).
Limitations
The Console override covers the four trigger types listed above. Advanced autoscale configuration stays in convox.yml:
- Cooldown, polling interval, and stabilization window settings
- Custom KEDA triggers (
scale.keda.triggersblock for SQS, Pub/Sub, custom Prometheus queries) - Vertical Pod Autoscaler (independent of triggers)
Important for scale.keda.triggers users: Enabling a Console override replaces any custom KEDA triggers with the four Console-managed trigger types. Custom triggers are restored on the next deploy after you disable the override.
Authorization
Autoscale trigger actions require the Read+Write role on the App, the same permission level as deploy, scale, and environment edits. Each action is recorded in the audit log with the acting user's email.
Requirements
Requires Rack version 3.24.6 or later. The Console displays an upgrade-required message when targeting an older Rack.
Operational Notes
- Scale to zero: CPU and memory triggers require
min >= 1. To enable scale-to-zero, use GPU or queue depth triggers (which require KEDA). - Threshold propagation: After editing a threshold, the new value takes effect within 15 to 30 seconds.