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 @platfromatic/watt-extra notices that one of the applications 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 watt scaling patterns and scales watts up and down in advance to anticipate demand fluctuations and optimize resource allocation.

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

This image shows 2 pods in a healty state

image.png

But pods can be in an un-healthy state which the algorithm will try to mitigate accordingly.

image.png

The first page is an overview of the running pods, with information about the latest signals received and HEAP/ELU metrics and a their state of health.

Clicking on one of the pods will send you to the Pod Detail section.

The Pod Detail section has its own sidebar and has 3 sections. The first one is the Pod Detail page, where you can see

  • The latest signals received
  • Memory/CPU usage graphs
  • Historic Trend of CPU, ELU, Memory and Latency

image.png

Then you have the Signals History page, with a list of the latest signals.

Clicking on one of the signals will open the details, explaining cause and effects of that signal. If the signal led to a Scaling Event, the button will send you to the Scaling History with the related scaling event highlighted.

Here you can find the list of all scaling events generated by the algorithm. Clicking on an event will show the reason why the event was generated and, if collected, CPU/ELU details for each application

image.png