Auto-scale Compute based on Custom Metrics from Applications

As a user of OpenStack I want to define a logical group of compute resources which are increased or decreased automatically based on metrics which are emitted from an application running in the cloud.

Problem description

An Application developer will define metrics which their application can emit to a Monitoring Service. This could be a report of RPS from a web application. Or information about distribution of objects reported by Swift. The Monitoring Service would generate alarms based on the metrics or report them to a Decision Service for analysis. Commands would be passed to an Orchestration Engine to scale up or down.

This use case was called out in the Denver 2019 PTG - https://etherpad.openstack.org/p/DEN-auto-scaling-SIG

OpenStack projects used

Inputs and decision-making

Auto-scaling

Existing implementation(s)

  • Monasca and Heat

    Monasca can receive metrics from an application and generate alarms if a metric exceeds a threshold. The alarm notification can then trigger a Heat template and scale the topology appropriately.

  • <TODO: record other options>

Future work

Dependencies