Phusion Passenger 3.0.8 released »

Created at: 03.08.2011 21:04, source: Phusion Corporate Blog, tagged: Phusion Passenger Union Station

Phusion Passenger is an Apache and Nginx module for deploying Ruby web applications. It has a strong focus on ease of use, stability and performance. Phusion Passenger is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since version 3.0 it can also run standalone without an external web server, making it not only easier for first-time users but also ideal on development environments.

Recent changes

Phusion Passenger is under constant maintenance and development. We are pleased to announce Phusion Passenger version 3.0.8. This is a bug fix release.

  • [Nginx] Upgraded preferred Nginx version to 1.0.5.
  • [Nginx] Fixed various compilation problems on various platforms.
  • [Nginx] We now ensure that SERVER_NAME is equal to HTTP_HOST without the port part.
    This is needed for Rack compliance. By default Nginx sets SERVER_NAME to whatever is specified in the server_name directive, but that’s not necessarily the correct value. This fixes, for example, the use of the ‘map’ statement in config.ru.
  • [Nginx] Added the options passenger_buffer_size, passenger_buffers and passenger_busy_buffers_size.
    These options are similar to proxy_module’s similarly named options. You can use these to e.g. increase the maximum header size limit.
  • [Nginx] passenger_pre_start now supports virtual hosts that listen on Unix domain sockets.
  • [Apache] Fixed the pcre.h compilation problem.
  • [Standalone] Fixed ‘passenger stop’.
    It didn’t work properly because it kept waiting for ‘tail’ to exit. We now properly terminate ‘tail’ as well.
  • Fixed compatibility with Rake 0.9.
  • Fixed various Ruby 1.9 compatibility issues.
  • Various documentation improvements.
  • New Union Station filter language features.
    It now supports status codes and response times. Please refer to https://engage.unionstationapp.com/help#filtering for more information.

How do I upgrade to 3.0.8?

Via a gem

First install the gem with the following command:

gem install passenger

If you’re using Phusion Passenger for Apache or for Nginx, then re-run the Apache or Nginx module installer, whichever is appropriate:

passenger-install-apache2-module
passenger-install-nginx-module

At the end the installer will tell you to paste a configuration snippet into your web server config file. Replace the old snippet that you already had with this new one.

Phusion Passenger Standalone users don’t need to run anything else. Whenever you type

passenger start

it will automatically upgrade itself.

Via Ubuntu packages

John Leach from Brightbox has kindly provided Ubuntu packages for Phusion Passenger. The package is available from the Brightbox repository which you can find at:

http://apt.brightbox.net

Add the following line to the Third Party Software Sources:

deb http://apt.brightbox.net hardy main

(The simplest way to do that is to create a file in /etc/apt/sources.list.d/ containing the deb instruction, and then run ‘apt-get update’).

Once you’ve done this then you can install Phusion Passenger by running:

sudo apt-get install libapache2-mod-passenger

-or-

sudo apt-get install nginx-brightbox

(Note that John is currently packaging 3.0.8, so it might take a while before this release shows up in the apt repository.)

Via RedHat/CentOS packages

YUM repositories with RPMs are maintained by Erik Ogan and Stealthy Monkeys Consulting. Please note that Erik is currently packaging 3.0.8, so it might take a while before this release shows up in the yum repositories.

Step 1: install the release package

The easiest way to install Phusion Passenger and keep it up to date is to install the passenger-release package from the main repository:

Fedora Core 14:

rpm -Uvh http://passenger.stealthymonkeys.com/fedora/14/passenger-release.noarch.rpm

Fedora Core 13:

rpm -Uvh http://passenger.stealthymonkeys.com/fedora/13/passenger-release.noarch.rpm

RHEL 5 / CentOS 5 / ScientificLinux 5:
(Note: these packages depend on EPEL.)

rpm -Uvh http://passenger.stealthymonkeys.com/rhel/5/passenger-release.noarch.rpm

RHEL 6 / CentOS 6 / ScientificLinux 6:
These packages will be available as soon as there is a stable beta of either CentOS 6 or SL 6 to use as a build platform.

Step 2: use Yum

From there you can use Yum to install packages. For example, try one of these:

yum install nginx-passenger

or

yum install mod_passenger

or

yum install passenger-standalone

Building your own packages

There are instructions for building your own packages and Yum repositories in the rpm directory ReadMe within the GitHub repository.

Final

Phusion Passenger is provided to the community for free. If you like Phusion Passenger, please consider sending us a donation. Thank you!


more »

Starting Union Station beta phase 2, reopening registrations »

Created at: 27.04.2011 00:47, source: Phusion Corporate Blog, tagged: Union Station

Union Station is our state-of-the-art web application performance monitoring and behavior analysis service. It is currently in public beta, which started on March 2. You can follow us on Twitter through @unionstationapp.

We’ve been in beta for little over a month now, and during that period in time, we’ve been fortunate enough to have been able to receive a lot of valuable feedback from our beta testers. As of today we are entering the next phase of the beta. Previous beta accounts have been removed, and all people are once again given a chance again to register. This is necessary due to some changes we’ve made to the terms of service (in particular the ability for beta testers to opt-in for announcements like these via email pertaining to Union Station) as well as a new offering in plans. Like last time there is a registration limit.

During the last beta a number of people have requested an account. These people were put on a waiting list. When the registration limit has been reached we’ll manually register as many people on this waiting list, as well as people who have given us feedback during the first beta, as we can.

Please note that the Terms of Service are still a work in progress and may be subject to changes in the near future, and that Union Station is still in beta.

New account plans

After having gained a better idea of our resource requirements we have been working on refining our offerings accordingly. In particular, we’ve decided to deprecate the Hobby plan in favor of buffing up the Startup plan in terms of retention time by doubling it from 7 to 14 days.

In place of the Hobby plan, we’ve introduced the Jumbo plan for the medium to large-sized sites, which allows up to 8 nodes.

Plans are still subject to change as we’re still in beta, but we believe we’ve found a much better balance with this new offering in terms of features and pricing.

Larger data retention time during the new beta

During the previous beta we capped data retention times for all plans to 7 days. During this phase of the beta however, we’re going to attempt to double that data retention time to 14 days to see how all the back-end changes hold up in the current situation.

UI polishes, bug fixes and features

We’ve fixed many of the bugs and UI quirks that users have reported. Some of the most important UI polishes and new features that we’ve introduced include:

  • HTTP response status codes are now logged as well. This requires Phusion Passenger 3.0.7 or later. The user interface highlights the requests for which the status code is not successful (i.e. in the 4xx-5xx range).
  • Requests with exceptions are now highlighted.
  • Requests now display all associated exceptions in a tab.
  • The Union Station filter language has been further improved.
  • Time range and active tab information are now saved. Previously, changing the tab would reset the viewed time range to the default value of “Past 30 minutes”. Clicking on another node would reset the active tab back to “Analysis”. The UI now remembers which time range you’ve chosen and which tab was active.
  • The ‘throughput’ chart has been revamped. It previously displayed requests per hour, but due to many reports about the unintuitiveness of the chart we’ve now changed it to display requests per minute.
  • We now work well with different time zones. We used to try to autodetect the user’s browser time zone through Javascript but this has proven to be far less reliable than we hoped it would be. We now store time zone information on the server and recalculate all dates according to the user’s preferred time zone. You can change your time zone on your user profile page.
  • Authorizing another user now works as expected. Previously when you wanted to authorize another person to view the data for your web app, that person must first register a Viewer account after which you can authorize his email address. This was a bit cumbersome and we’ve now streamlined the process by automatically sending that person an invitation email which allows him to sign up for a Viewer account immediately.


more »

Phusion Passenger 3.0.7 released with support for Nginx 1.0.0 »

Created at: 14.04.2011 12:10, source: Phusion Corporate Blog, tagged: Phusion Passenger Union Station

Phusion Passenger is an Apache and Nginx module for deploying Ruby web applications. It has a strong focus on ease of use, stability and performance. Phusion Passenger is built on top of tried-and-true, battle-hardened Unix technologies, yet at the same time introduces innovations not found in most traditional Unix servers. Since version 3.0 it can also run standalone without an external web server, making it not only easier for first-time users but also ideal on development environments.

Recent changes

Phusion Passenger is under constant maintenance and development. We are pleased to announce Phusion Passenger version 3.0.7. This is a bug fix release.

  • Fixed a bug passenger-install-apache2-module. It could crash on some systems due to a typo in the code.
  • Upgraded preferred Nginx version to 1.0.0.
  • Phusion Passenger Standalone now pre-starts application processes at startup instead of doing that at the first request.
  • When sending data to Union Station, the HTTP status code is now also logged.
  • Various Union Station-related stability improvements.
  • The Linux OOM killer was previously erroneously disabled for all Phusion Passenger processes, including application processes. The intention was to only disable it for the Watchdog. This has been fixed, and the Watchdog is now the only process for which the OOM killer is disabled.
  • Fixed some compilation problems on OpenBSD.
  • Due to a typo, the dependency on file-tail was not entirely removed in 3.0.6. This has now been fixed.

How do I upgrade to 3.0.7?

Via a gem

First install the gem with the following command:

gem install passenger

If you’re using Phusion Passenger for Apache or for Nginx, then re-run the Apache or Nginx module installer, whichever is appropriate:

passenger-install-apache2-module
passenger-install-nginx-module

At the end the installer will tell you to paste a configuration snippet into your web server config file. Replace the old snippet that you already had with this new one.

Phusion Passenger Standalone users don’t need to run anything else. Whenever you type

passenger start

it will automatically upgrade itself.

Via Ubuntu packages

John Leach from Brightbox has kindly provided Ubuntu packages for Phusion Passenger. The package is available from the Brightbox repository which you can find at:

http://apt.brightbox.net

Add the following line to the Third Party Software Sources:

deb http://apt.brightbox.net hardy main

(The simplest way to do that is to create a file in /etc/apt/sources.list.d/ containing the deb instruction, and then run ‘apt-get update’).

Once you’ve done this then you can install Phusion Passenger by running:

sudo apt-get install libapache2-mod-passenger

-or-

sudo apt-get install nginx-brightbox

(Note that John is currently packaging 3.0.7, so it might take a while before this release shows up in the apt repository.)

Via RedHat/CentOS packages

YUM repositories with RPMs are maintained by Erik Ogan and Stealthy Monkeys Consulting. Please note that Erik is currently packaging 3.0.7, so it might take a while before this release shows up in the yum repositories.

Step 1: install the release package

The easiest way to install Phusion Passenger and keep it up to date is to install the passenger-release package from the main repository:

Fedora Core 14:

rpm -Uvh http://passenger.stealthymonkeys.com/fedora/14/passenger-release.noarch.rpm

Fedora Core 13:

rpm -Uvh http://passenger.stealthymonkeys.com/fedora/13/passenger-release.noarch.rpm

RHEL 5 / CentOS 5 / ScientificLinux 5:
(Note: these packages depend on EPEL.)

rpm -Uvh http://passenger.stealthymonkeys.com/rhel/5/passenger-release.noarch.rpm

RHEL 6 / CentOS 6 / ScientificLinux 6:
These packages will be available as soon as there is a stable beta of either CentOS 6 or SL 6 to use as a build platform.

Step 2: use Yum

From there you can use Yum to install packages. For example, try one of these:

yum install nginx-passenger

or

yum install mod_passenger

or

yum install passenger-standalone

Building your own packages

There are instructions for building your own packages and Yum repositories in the rpm directory ReadMe within the GitHub repository.

Final

Phusion Passenger is provided to the community for free. If you like Phusion Passenger, please consider sending us a donation. Thank you!


more »

Slight interruption of service at Union Station »

Created at: 10.04.2011 17:28, source: Phusion Corporate Blog, tagged: Union Station

At 3:00 PM CET a slight interruption of service has occurred due to network problems at our data center. As a result some databases could not be reached, resulting in the web interface displaying error messages. After 45 minutes, the network problems were restored. Access to the databases were restored 15 minutes later, at 4:00 PM CET, due to emergency checkups.

No data has been lost during this event. The Union Station server architecture was designed with failures like this mind; during the down time, all data sent to us was stored in a backlog. Our background workers restored the backlog at 4:25 PM CET, i.e. within 30 minutes.

In the past few weeks we’ve been fixing bugs, adding features as well as tuning and optimizing our backend servers. The tuning and optimizing have paid off greatly and it is evidenced by the fact that the background workers and the databases were holding up during peak load (which is around this time) while restoring the backlog. We shall blog about the changes in a new blog post soon.

Our apologies for the inconvenience caused today.


more »

Introducing the Union Station filter language »

Created at: 11.03.2011 13:31, source: Phusion Corporate Blog, tagged: Union Station

Union Station is our state-of-the-art web application performance monitoring and behavior analysis service. It is currently in public beta, which started on March 2. You can follow us on Twitter through @unionstationapp.

One of the unique selling points of Union Station is that we collect data on all requests, not just the slow ones. Union Station is not just a performance monitor that warns you about slow requests, it’s a full web application behavior history browser: you can browse back into any point in time and see exactly what your web application was doing.

However we have noticed that there are quite some heavy-duty users on our beta who receive tons upon tons of traffic. For some of those people it might be unfeasible or undesirable to collect data on all requests. After our server cluster expansion we can process all that data just fine, but sending all that data to Union Station may still impose some stress on users’ network connections that they may want to avoid (note: Phusion Passenger already compresses data before sending to Union Station). Some users are just not interested in some data and don’t want them to be logged at all.

We are pleased to announce a new Union Station feature: the filter language. With this language one can specify which requests one wants and doesn’t want to log, e.g. because you are only interested in slow requests or only interested in requests to a certain controller. Filters are run on the client side and are supported since Phusion Passenger 3.0.5, released today. One writes filters in the Union Station filter language and specifies them in the web server config file. The result of a filter is either true (allow the given data to be sent to Union Station) or false (don’t allow the given data to be sent). After logging a request, Phusion Passenger runs all defined filters to determine whether to send the request’s data to Union Station.

Filters are defined with the UnionStationFilter directive (Apache) or the union_station_filter directive (Nginx).

The Union Station filter language somewhat resembles expressions in many popular languages such as C, Javascript and Ruby. Every filter is a combination of expressions, each of which evaluate to a boolean. An expression is either a matching expression or a function call.

Quick examples

Example 1: URI must be exactly equal to /foo/bar:

uri == "/foo/bar"

Example 2: Response time must be larger than 150 miliseconds (150000 microseconds):

response_time > 150000

Example 3: URI must match the regular expression /animals/(dog|cat)
and the response time must be larger than 60 miliseconds (60000 microseconds):

uri =~ /\/animals\/(dog|cat)/ && response_time > 60000

More information

Please read the Union Station help page for more information about this filter language.


more »