Sign inSign up

undeadops/speculator

By undeadops

•Updated almost 8 years ago

Watch requested CPU/Memory, scale AWS AutoScaler Worker group based on thresholds

Image
0

2.3K

undeadops/speculator repository overview

⁠Speculator


Speculator is an automated scaling service for AWS EC2 AutoScale Groups based on Kubernetes Pod CPU/Memory Request Percentages of the cluster.

Default Ideal range is lower than typical solutions (40%-57%) because of the way Deis deploys on my cluster. Range is modifyable via environment variables.

⁠Building

I still build and deploy this in deis (aka: git push) but basic binary should be buildable with a go build -o speculator *.go

⁠Running

Currently, its built to look at the Kubernetes internal API and will need a service account. I'm not using RBAC at the moment because of Deis as well.

It needs a few environment variables in order to run.

ASGROUPNAME     - AWS AutoScaler Group Name 
AWSREGION       - AWS Region (default: us-east-1)
ENABLED         - TRUE|FALSE Enable scaling to take place (default: False) 
DISABLECOOLDOWN - TRUE|FALSE - Disable AWS ASG Cooldown timeout period 
CPUWATERMARK    - CPU Requests Watermark Percentage, When to scale down (default:"40")
CPUTHRESHOLD    - CPU Threshold Percentage, When to scale up (default:"56")
AWS_ACCESS_KEY  - AWS KEY with permissions to ASG 
AWS_SECRET_ACCESS_KEY - AWS KEY with permissions to ASG 

Prometheus metrics are exported (default port 5000 /metrics). Metrics are prefixed with speculator

⁠Documentation

Thorough documentation is on the wiki⁠.

⁠Example Prometheus Graph

alt text

⁠Contributing

Check out CONTRIBUTING.md⁠ for notes on making contributions.

⁠License

This library is licensed under the Apache 2.0 License.

Tag summary

Content type

Image

Digest

Size

37.2 MB

Last updated

almost 8 years ago

docker pull undeadops/speculator