Introduction

Setting Up Scaling Parameters with Judoscale on Heroku

This is the fun part! Let’s set up some basic scaling parameters for our application.

Access the Judoscale Dashboard

The simplest way to access the Judoscale dashboard for our app is to click through from the Heroku dashboard.

Screenshot: Launch Judoscale from the Heroku Resources tab

Once we arrive we’ll either see a prompt to install the adapters, or we’ll see our app vitals right away. The prompt will only show if your production app isn’t running the adapters yet.

👀 Note

If you’ve installed the adapter gem and you’re still seeing the installation prompt, check the status of your latest deploy.

Getting Around

At the top left you’ll find your dyno selector and at the top right you’ll find the master autoscale toggle for the selected dynos. In this case, we’re looking at our web dynos and currently have autoscaling enabled.

Screenshot: Judoscale dynos page with autoscaling enabled

Before enabling autoscaling for your app, familiarize yourself with the request queue time chart (in green) and make adjustments to your Target Queue Time Range. These changes will act as the guiding upper and lower bounds to determine your scale-up and scale-down events. You’ll see these bounds change interactively with your adjustments in the graph to help visualize your bounds in the context of the dyno’s queue time history.

Animation: Adjusting the queue time range

You can click, drag, and move the timeline above the charts to help refine the chunk of history you’re looking at as well.

Animation: Zooming the metrics timeline

Scaling Controls

Aside from Target Queue Time Range—the main driver of when scale events should occur—Judoscale gives you a few more dynamic controls for dyno scaling:

Screenshot: Scaling controls

  • Your Dyno Range sets limits on how many dynos are acceptible when scaling up or down,
  • Creating a Schedule allows you to predetermine separate Dyno Ranges over time (rather than having just one range all the time,
  • Upscale Jumps gives you flexibility to update by more than one-dyno-at-a-time if you prefer, and
  • Downscale Delay allows you to tune how quickly Judoscale will down-scale once your queue time is below your low-end threshold.

👀 Note

Remember that all scaling controls are on a per-dyno basis. The settings you configure for your web dynos are fully separate from those you configure for your worker dynos!