Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku Architecture
    • Dynos (app containers)
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Command Line
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery
    • Continuous Integration
  • Language Support
    • Node.js
    • Ruby
      • Working with Bundler
      • Rails Support
    • Python
      • Background Jobs in Python
      • Working with Django
    • Java
      • Working with Maven
      • Java Database Operations
      • Working with the Play Framework
      • Working with Spring Boot
      • Java Advanced Topics
    • PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
    • Heroku Redis
    • Apache Kafka on Heroku
    • Other Data Stores
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
    • Compliance
  • Heroku Enterprise
    • Private Spaces
      • Infrastructure Networking
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
    • Single Sign-on (SSO)
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
  • Add-ons
  • All Add-ons
  • 123 Dyno
123 Dyno

This add-on is operated by Rafael Ancheta

Autoscaling and load analytics for maximum web dyno performance.

123 Dyno

Last updated February 24, 2022

The 123 Dyno add-on is currently in beta.

Table of Contents

  • Provisioning the Add-on
  • Dashboard
  • Troubleshooting
  • Migrating Between Plans
  • Removing the Add-on
  • Support

The 123 Dyno addon provides threshold-based autoscaling and load analytics for web dynos. 123 Dyno provides tools to help you analyze, respond, and autoscale your app for changing web traffic intelligently.

Provisioning the Add-on

Attach 123 Dyno to a Heroku application via the CLI:

$ heroku addons:create d123
Creating d123 on exceptional-meercat-5555... free
Your add-on has been provisioned successfully

123 Dyno also requires Heroku Labs log-runtime-metrics to use Dyno Load options:

$ heroku labs:enable log-runtime-metrics
Enabling log-runtime-metrics for myapp... done
$ heroku restart

You must configure the add-on in the dashboard after provisioning.

Dashboard

Access the dashboard via the CLI:

$ heroku addons:open d123
Opening d123 for jovial-brook-1515

The dashboard opens to the Overview page. Use the dashboard to configure autoscaling.

Overview

Access metrics including dynos currently provisioned, average and maximum response times, and dyno load on the Overview page. The system might not have enough data to display if you recently provisioned the add-on.

Autoscaling

Select the tab on the left to configure autoscaling. The autoscaling tab contains configuration elements for the current app. You can select the help icons for more information.

Autoscaling On - Toggles autoscaling on or off for the application.

Dyno Scaling Range - Specifies the min and max number of dyno’s, capped at your account maximum.

Autoscaling Metric - Specifies the autoscaling metric used to scale the dyno:

  • Average values typically provide smoother dyno movement
  • Maximum values scales your formation upwards more conservatively
  • m95 (95th percentile of responses) provides a middle ground, omitting outlier response times
  • Dyno load provides a way to scale based on CPU request queue for more advanced users

Sample Window - The lookback time period used to calculate your autoscaling metric. For example, a 15-minutes window autoscales based on the last 15 minutes of data.

Autoscaling Speed - Determines how your application scales and how quickly it scales when given an up or down signal. Upscaling and downscaling can be configured separately. The static setting increases your formations quantity by a static amount while the dynamic setting increases based on the magnitude from your desired thresholds. The default setting is the most conservative setting. Autoscaling is set up to scale up dynamically and scale down statically by increments of one, allowing you to accommodate increased traffic and prepare for more.

Metric Thresholds - The application tries to keep metrics in between these values in a sort of “Goldilocks range”. Choose threshold values for the scale metric you specified. Signals to upscale occur when metrics break the max threshold. Signals to downscale occur when metrics drop below the minimum.

Analytics

The dashboard provides in-depth analytics of how your application functions under load. The topmost chart features dyno count and response times. To view only one metric against another, toggle the boxes in the top legend to hide and show metrics.

Below the graph are path-specific max response times, average response times, and routes most frequented. Use these values to debug which routes respond the slowest in your application or block paths to help tune scaling.

Logs

Basic logs are enabled in the Logs section of 123 Dyno. Basic logs can help you troubleshooting and fine-tune your autoscaling configuration. For example, you can determine which outlier endpoints to remove from the autoscaling calculations.

Path Blocklist

Some endpoints take longer to process than others. For example, an endpoint might process file uploads, stream data, or have WebSockets that never terminate. The response service time for WebSockets in Heroku represents the entire session length and must be omitted from metrics. If these endpoints aren’t removed from metric calculations, autoscaling can get stuck at maximums. Standard string matching is used for the blocklist.

Troubleshooting

  • If dynos seem to be getting stuck at max then monitor service logs and put variant long response time endpoints into the path blocklist
  • If dyno load charts are always empty, ensure that Heroku Labs log-runtime-metrics are enabled as in the provisioning section of this article

Migrating Between Plans

Use the heroku addons:upgrade command to migrate to a new plan.

$ heroku addons:upgrade d123:startup
-----> Upgrading d123:startup to filly-dexter-6006... done, v19 ($35/mo)
       Your plan has been updated to: d123:startup

Removing the Add-on

Remove 123 Dyno via the CLI:

This destroys all associated data and can’t be undone!

$ heroku addons:destroy d123
-----> Removing d123 from verdant-lake-3088... done, v20 (free)

Support

Submit all 123 Dyno support and runtime issues via one of the Heroku Support channels. Any non-support-related issues or product feedback is welcome at info@123dyno.com.

Keep reading

  • All Add-ons

Feedback

Log in to submit feedback.

Ziggeo Ably

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Podcasts
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing

Subscribe to our monthly newsletter

Your email address:

  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Heroku Podcasts
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Facebook
  • Instagram
  • Github
  • LinkedIn
  • YouTube
Heroku is acompany

 © Salesforce.com

  • heroku.com
  • Terms of Service
  • Privacy
  • Cookies
  • Cookie Preferences