Skip to content

Autoscaler

ICC implements a dual-algorithm framework for intelligent autoscaling:

  1. Reactive Scaling Algorithm - Responds in real-time to performance signals (ELU > 90%, Heap > 80%)
  2. Trends Learning Algorithm - Analyzes historical patterns to predict future scaling needs

When wattpro notices that one of the services is unhealthy, it sends a health alert to ICC. By default the reasons to send an alert are:

  • high ELU (> 90%)
  • high memory consumption (heap > 80%)

After receiving an alert ICC makes a decision to scale up or not based on alerts from other pods and historical data. When high load conditions end, the ICC will scale pods down automatically.

The long-term scaling algorithm studies application scaling patterns and scales applications up and down in advance to anticipate demand fluctuations and optimize resource allocation.

On the Horizontal Pod Autoscaler page, you can see information about Kubernetes pod status and scaling events.

image.png

In the “Replica Set Scaling Metrics” section, you can see the aggregated metrics for all tracking subsystems for the current application.

The “Historic & Scaler Trend” chart shows the history of scaling decisions made by the ICC scaling algorithm.

In Pod Overview shows important information about individual pods including their state of health:

image.png

This shows how the system behaves in case of sudden heavy load, ramping up the number of pods:

image.png

…after which the pods are all in good health.

image.png

ICC then starts to scale down:

image.png

…eventually scaling down back to the minimum pod count if there is no traffic. The minimum and maximum amount of pods is configurable in ICC.

All the events are available in Scaling History:

image.png

The Pod Detail screen shows detailed metrics for an individual pod:

image.png