Autoscaling with Response Time
We offer autoscaling web dynos using response time as a fallback option when we don’t have an adapter for your language. This is how Heroku’s autoscaler works, and while it’s not as effective as queue time autoscaling, it’s much better than no autoscaling at all.
When should you use response time autoscaling?
You should use response time autoscaling when queue time autoscaling isn’t an option—in other words, when we don’t have an adapter for your language. We currently have adapters for Ruby, Python, and Node JS, and we’re working on more.
If your app is written in Java, PHP, Go, Crystal, or any other language, you can still autoscale effectively with response time.
How do you set up response time autoscaling?
When you launch Judoscale for the first time, you’ll see our adapter setup wizard.
If we don’t have an adapter for your language, you’ll be prompted to "monitor response time". This sets up a log drain from your Heroku app to Judoscale so we can parse your router logs to get response time data.
Once you’ve enabled response time monitoring, you will see your response time data in the Judoscale dashboard. Review the autoscale settings (the defaults are usually a great place to start) and click "Save and Enable Autoscaling".
How effective is response time autoscaling?
Of course we are big fans of queue time autoscaling, but response time autoscaling is still better than non-request-based metrics like CPU or memory usage. It’s also better than no autoscaling at all.
Naturally, some apps have web endpoints that are slower than others, and these requests can skew your response time data. This can cause response time autoscaling to have more "false positive" scale events than queue time autoscaling. You may want to increase your target response time range to compensate for this.
How does Judoscale response time autoscaling compare with Heroku?
Heroku’s autoscaler is based on response time, but there are some significant differences with Judoscale even when using our response time autoscaling:
- Judoscale works with all dyno types, not just performance dynos.
- Judoscale offers you more control over how your dynos scale. You can jump by multiple dynos at a time, and you can setup a schedule for predictable traffic dips or spikes.
- Judoscale is fast! We can respond to a traffic spike as quickly as 30 seconds, when it often takes Heroku several minutes.