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

MethodPathDescription
POST/v1/autoscale/policiesCreate a scaling policy
GET/v1/autoscale/policiesList all scaling policies
GET/v1/autoscale/statusCurrent scaling status
GET/v1/autoscale/historyScaling event history
POST/v1/autoscale/metricsPush custom metrics
## Create Scaling Policy
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

FieldTypeRequiredDescription
resource_idstringYesResource to scale
min_instancesintYesMinimum instance count
max_instancesintYesMaximum instance count
scale_up_metricstringYesMetric name for scale-up trigger
scale_up_thresholdfloatYesThreshold value to trigger scale-up
scale_down_metricstringYesMetric name for scale-down trigger
scale_down_thresholdfloatYesThreshold value to trigger scale-down
cooldown_secondsintNoMinimum time between scaling events (default: 300)
## Get Scaling Status
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"
    }
  ]
}