Today, we are launching the Passenger Status Service. This service makes Passenger status reports (the passenger-status
tool) work on Heroku.
What are Passenger Status reports?
One of the features provided by the Passenger application server is the ability to introspect its state using the passenger-status
tool. This tool generates a status reports and tells you what application processes are running, how much memory and CPU they are using, how many requests are queued, etc. Many problems can be diagnosed using this tool.
Here is an example status report:
$ passenger-status Version : 5.0.6 Date : 2015-04-14 21:55:30 +0100 Instance: 25002 ----------- General information ----------- Max pool size : 6 Processes : 1 Requests in top-level queue : 0 ----------- Application groups ----------- /Users/phusion/testapp#default: App root: /Users/phusion/testapp Requests in queue: 0 * PID: 25012 Sessions: 0 Processed: 1 Uptime: 9s CPU: 0% Memory : 14M Last used: 3s ago
The problem with Passenger status reports on Heroku
Unfortunately, passenger-status
does not work on Heroku. Heroku does not provide SSH access to the servers on which apps are running, so it is not possible to run the passenger-status
tool to obtain a status report from Passenger.
The heroku run
command spawns a one-off dyno instead of granting you access to the running servers, so that doesn't work either.
This is why we have created the Passenger Status Service, which solves this problem. It works as follows:
- You add a reporting command to your Procfile. This reporting command gathers a status report from the local Heroku server and posts it to the Passenger Status Service.
- You view the status reports through the Passenger Status Service.
About the Passenger Status Service
The Passenger Status Service is a free service provided by Phusion. It may be used by open source Passenger and Passenger Enterprise users alike, at no charge.
Furthermore, we have released this service's source code under an open source license, so that you can self-host it if you so wish. The source code can be found at Github.
Please visit the Passenger Status Service website to learn more.