Configuration
Basic Parameters
Simulation Results
Configure your parameters above and hit Simulate to see results.
Export
Source Config Export
Save or share your simulation setup as YAML.
Target Config Export
Generate a deployable manifest for your platform.
What is scalings.xyz?
scalings.xyz is an interactive, fully client-side autoscaling simulator. It lets engineers configure autoscaling parameters, select a traffic pattern, and run a discrete-time simulation to visualize whether their scaling policy can handle the load.
When to use it
- Prioritize optimizations — Is it worth cutting pod startup time from 30s to 10s? Would faster metric delivery help more? Or is simply overprovisioning cheaper? Change one parameter, compare runs, and see exactly how many dropped requests each option saves you.
- Set optimization targets — Don't guess what your startup time or cooldown "should" be. Simulate a range of values against your actual traffic pattern and pick the one that balances cost vs. reliability.
- Validate before deploying — Test a new HPA config, ASG policy, or MIG setup against realistic traffic patterns before it hits production.
- Post-incident analysis — Replay a traffic spike that caused an outage. Tweak the scaling config until the sim shows zero drops, then export the fix.
- Capacity planning — Model upcoming events (product launches, seasonal traffic) to figure out min replicas, max replicas, and cost ahead of time.
- Chaos engineering — Schedule pod failures at specific times to test how your scaling policy recovers from node outages or AZ failures during load.
Supported Platforms
- Kubernetes HPA — Horizontal Pod Autoscaler
- AWS ASG — Auto Scaling Group
- GCP MIG — Managed Instance Group
- Custom / Generic — Any autoscaler
Parameters Reference
Basic Parameters:
min_replicas— Floor for scale-down (default: 2)max_replicas— Ceiling for scale-up (default: 50)scale_up_threshold— Utilization % that triggers scale-up (default: 70%)scale_down_threshold— Utilization % that triggers scale-down (default: 30%)startup_time— Seconds for a new pod to become ready (default: 30s)capacity_per_replica— Max RPS a single pod can handle (default: 100)
Advanced Parameters:
metric_observation_delay— Lag before autoscaler detects changes (default: 15s)cooldown_scale_up/cooldown_scale_down— Stabilization windowsnode_provisioning_time— Time to spin up a new node (default: 120s, 0=pre-provisioned)cluster_node_capacity— Max nodes in the cluster (default: 20)pods_per_node— Max pods that fit on a single node (default: 10)graceful_shutdown_time— Seconds a terminating pod keeps serving (default: 10s)scale_up_step/scale_down_step— Pods added/removed per event (default: 1)cost_per_replica_hour— USD per pod-hour for cost estimation (default: $0.05)
Chaos Engineering:
pod_failure_rate— Random failure percentage per tick, 0-100 (default: 0)random_seed— Seed for reproducible chaos; 0 = non-deterministic (default: 0)failure_events— Scheduled pod kills: array of{time, count}objects
Traffic Patterns
- Steady — Constant RPS. Params:
rps - Gradual Ramp — Linear increase. Params:
start_rps,end_rps - Spike — Sudden jump. Params:
base_rps,spike_rps,spike_start,spike_duration - Wave — Sinusoidal. Params:
base_rps,amplitude,period - Step Function — Discrete steps. Params:
steps[{rps, duration}] - Custom — User-defined. Params:
series[{t, rps}]
YAML Config Schema
# scalings.xyz simulator config v1
version: 1
name: "Black Friday load test"
platform: kubernetes-hpa
simulation:
duration: 600
tick_interval: 1
scaling:
min_replicas: 2
max_replicas: 50
scale_up_threshold: 70
scale_down_threshold: 30
capacity_per_replica: 100
startup_time: 30
scale_up_step: 1
scale_down_step: 1
advanced:
metric_observation_delay: 15
cooldown_scale_up: 60
cooldown_scale_down: 300
node_provisioning_time: 120
cluster_node_capacity: 20
pods_per_node: 10
graceful_shutdown_time: 10
cost_per_replica_hour: 0.05
chaos:
pod_failure_rate: 0
random_seed: 0
failure_events:
- { time: 120, count: 3 }
traffic:
pattern: spike
params:
base_rps: 200
spike_rps: 2000
spike_start: 120
spike_duration: 60
URL Hash API
Share a pre-configured simulation via URL:
scalings.xyz/#config=<base64-encoded-json>
The config parameter is a base64-encoded JSON object matching the SimulationConfig schema. Add &autorun=true to auto-run the simulation on page load.
AI agents and scripts can construct these URLs programmatically to link users directly to a pre-configured simulation.
Export Types
Source Config Export — Saves/shares the full simulation scenario (YAML). Use for version control and sharing with teammates.
Target Config Export — Generates a deployable manifest for your platform (K8s HPA YAML, AWS CloudFormation, GCP Terraform).