API: Autoscaling
REST API endpoints for autoscaling policy management and monitoring.
API: Autoscaling
Overview
The autoscaling system dynamically adjusts resource counts based on metrics. Define scaling policies with thresholds and cooldown periods, and the system handles scale-up and scale-down operations automatically.
Endpoints
| Method | Path | Description |
|---|---|---|
| POST | /v1/autoscale/policies | Create a scaling policy |
| GET | /v1/autoscale/policies | List all scaling policies |
| GET | /v1/autoscale/status | Current scaling status |
| GET | /v1/autoscale/history | Scaling event history |
| POST | /v1/autoscale/metrics | Push custom metrics |
POST /v1/autoscale/policies
{
"resource_id": "k3s-abc123",
"min_instances": 2,
"max_instances": 20,
"scale_up_metric": "cpu_utilization",
"scale_up_threshold": 80,
"scale_down_metric": "cpu_utilization",
"scale_down_threshold": 30,
"cooldown_seconds": 300
}
ScalingPolicy Fields
| Field | Type | Required | Description |
|---|---|---|---|
resource_id | string | Yes | Resource to scale |
min_instances | int | Yes | Minimum instance count |
max_instances | int | Yes | Maximum instance count |
scale_up_metric | string | Yes | Metric name for scale-up trigger |
scale_up_threshold | float | Yes | Threshold value to trigger scale-up |
scale_down_metric | string | Yes | Metric name for scale-down trigger |
scale_down_threshold | float | Yes | Threshold value to trigger scale-down |
cooldown_seconds | int | No | Minimum time between scaling events (default: 300) |
GET /v1/autoscale/status
{
"policies": [
{
"resource_id": "k3s-abc123",
"current_instances": 5,
"min_instances": 2,
"max_instances": 20,
"last_scale_event": "2025-01-15T10:25:00Z",
"current_metrics": {
"cpu_utilization": 65.2
}
}
]
}
Push Custom Metrics
POST /v1/autoscale/metrics
{
"resource_id": "fn-abc123",
"metrics": {
"request_rate": 1500,
"queue_depth": 250
}
}
Scaling History
GET /v1/autoscale/history?resource_id=k3s-abc123
{
"items": [
{
"resource_id": "k3s-abc123",
"event": "scale_up",
"from_count": 3,
"to_count": 5,
"trigger_metric": "cpu_utilization",
"trigger_value": 85.3,
"timestamp": "2025-01-15T10:25:00Z"
}
]
}