Getting Started with HireFire
HireFire is an autoscaling service for Heroku that provides a more advanced feature set and controls for autoscaling your web and worker dynos.
Key Benefits of Using HireFire Over Heroku Autoscaling
- Full Dyno Support: Scales both web and worker dynos across all dyno tiers, including Basic, Standard, Performance, Private, and Shield. Heroku is limited to only web dynos and Performance-tier and above.
- More Reliable Metrics: Uses reliable metrics like Request Queue Time for web dynos and Job Queue Latency and Size for worker dynos.
- High Frequency Checkups: Offers checkup and scaling frequencies as high as 15 seconds for timely dyno formation adjustments.
- Scheduled Scaling: Supports Time Ranges to proactively scale dynos in anticipation of traffic spikes.
- Custom Autoscaling Rules: Provide rules to fine-tune autoscaling behavior to your app's specific needs.
- Direct App Integration: Seamlessly integrates with Ruby, Python, and Node applications to gather necessary metrics.
- Alternative Strategies: Provides alternative autoscaling strategies for non-supported languages through Heroku Logplex/Logdrain, such as Load, Requests Per Minute, and Response Time.
Getting Started
To begin using HireFire, start by creating an account. You'll receive a 30-day free trial to explore the service at no cost.
Step-by-Step Guide
- Create a HireFire Account: Sign up at HireFire Registration.
- Create an Organization: After registration, you'll be prompted to create an organization. Assign it a name and specify your organization's time zone.
- Link Your Heroku Account: Connect your Heroku Account to HireFire to authorize scaling operations on your behalf. This can be done from the organization page by clicking on "Connect Account" under the "Heroku Accounts" section.
- Add Your First Heroku Application: After authorizing, add your application by clicking "Add Application" in the "Heroku Applications" section. Enter your application's name, making sure it matches the name registered with Heroku. You can leave the remaining options at their default values.
- Set Up Your First Dyno Manager (Autoscaler): From your application page, click on "Add a Dyno Manager". Choose the appropriate autoscaling strategy (see below) for your web and worker dynos. Each dyno type can have its own Dyno Manager. For example, if your Procfile defines a web, worker and mailer process, you could create one Dyno Manager for each of them.
Autoscaling Strategies
HireFire offers a range of strategies. For Ruby, Python, or Node applications, we recommend the following autoscaling strategies:
- HireFire - Request Queue Time for web dynos.
- HireFire - Job Queue Latency for worker dynos.
- HireFire - Job Queue Size for worker dynos.
The relevant integration instructions are provided in-app upon selecting one of these strategies while setting up the dyno manager. Please note, the HireFire - Job Queue Latency and HireFire - Job Queue Size strategies can also be used with non-Ruby, Python, or Node applications through a custom integration. For guidance on this integration, refer to:
- Job Queue Latency (Any Language) for worker dynos.
- Job Queue Size (Any Language) for worker dynos.
The following strategies are available for all applications:
- Logplex - Load for both web and worker dynos.
- Logplex - Response Time for web dynos.
- Logplex - Requests Per Minute for web dynos.
These strategies autoscale based on infrastructure/system level metrics extracted from Heroku's platform and are programming language-independent.
Review the links above to determine which strategies you would like to use, and configure the dyno manager(s) accordingly. For more details on the various autoscaling rules/options, see Manager Options.
Finalize and Enable
Once you've added your first dyno manager, enable it and it will start autoscaling your dynos. Repeat this process for every dyno type that you wish to autoscale (i.e. web, worker, mailer, etc).
Support
If you have any questions or need assistance getting started, please reach out to us at support@hirefire.io, we're happy to help!