The Application Autoscaler is a Cloud Foundry component that automatically adjusts computational resources for applications through three primary mechanisms: dynamic scaling based on application performance metrics, dynamic scaling based on custom metrics, and scheduled scaling based on time. The repository contains the core source code that was extracted and refactored from the app-autoscaler-release repository, representing a modular approach to autoscaling functionality within the Cloud Foundry ecosystem.
The system is architected as a collection of microservices, each deployed as a Cloud Foundry application. The api component serves as the public-facing interface for policy management and scaling history queries. The servicebroker implements Cloud Foundry's service broker specification for integration with the platform. The scheduler manages scheduled scaling policies and triggers scaling actions based on time-based rules. The eventgenerator evaluates scaling rules and generates scaling events by analyzing application metrics. The scalingengine executes the actual scaling decisions by adjusting the number of application instances. The metricsforwarder handles the submission and forwarding of custom application metrics to the autoscaler system. Finally, the operator component manages autoscaler operations and maintains instance synchronization across the deployment.
The repository provides comprehensive API specifications through OpenAPI documentation covering application metrics, custom metrics submission, policy management, and scaling history queries, both for external and internal use. Development is supported through a Go-based codebase requiring Go 1.24.3 or later, with Docker for database dependencies and optional tools like devbox and direnv for environment management. The scheduler component is Java-based and requires Maven for building. The project includes extensive testing infrastructure with make targets for unit tests, integration tests, and acceptance tests, all running against PostgreSQL.
The most active labels tracked are unscheduled with six occurrences, bug with four, and enhancement with one. The repository maintains connections with related Cloud Foundry projects including app-autoscaler-release, the CLI, and external projects like Apollo Client through overlapping contributor networks.
Each microservice component exposes health endpoints protected with basic authentication for monitoring purposes, with credentials managed through credhub. The project is released under the Apache License 2.0 and includes comprehensive documentation covering acceptance tests, scheduler-specific implementation details, and API specifications. The modular microservice architecture allows for independent scaling and deployment of each component while maintaining cohesive autoscaling functionality for Cloud Foundry applications.