At LET, we wanted to have a detailed monitoring of the web application frontends. We did not want to rely on simple HTTP requests of single pages, but rather test whole process flows of visitors using our web applications.

At first, our monitoring was based on Nagios with the WebInject plugin. However, we were not satisfied by the level of detail we could test with WebInject. My task was to re-write the WebInject monitor and enhance the functionality for our needs.

I decided to write my new monitor “RInject” in Ruby as it provides a flexible approach to HTTP requests. RInject can be configured using XML syntax. It is not limited in the number of subsequent requests, can keep track of Cookies and submit GET and POST forms. RInject parses the HTTP responses (headers and content) with regular expressions. With these it is possible to detect if the application is behaving as expected, or if any error messages occur on the site.

The project can be found at https://github.com/bekoeppel/RInject.