Introducing the Passenger Status Service for Heroku

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 -----------
  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.

Passenger Status Service overview

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

Listing of registered apps
One of the status reports
Agent setup instructions

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.

comments powered by Disqus