Enterprise monitoring comes to PHP
Zend Platform sheds much-needed light on PHP performanceFollow @peterwayner
During the past few years, PHP has grown to be more than just a simple tag-centered scripting language for neophyte Web designers who want to do a bit of programming. A quick survey of the breadth and depth of the open source projects using the language shows that people can and will build enterprise-grade applications with the embedded tags. Now Zend Technologies, the company steering the language, is rolling out more tools to support the enterprise-grade servers that run these more serious applications.
The latest offering, Zend Platform, brings sophisticated monitoring to system administrators who want to ensure that all clients get their data. The tool tracks the performance of all scripts and integrates with Zend's accelerator to offer faster performance through script compilation and caching. If the server fails to provide the right level of service, the tool can fire up Zend's development studio for direct debugging.
The Platform begins at a subscription of $995 for one year. Zend continues to distribute the basic PHP toolkit for free as an open source package that is practically bundled with the omnipresent Apache, a tie-in that encourages people to experiment with the language. The fees from add-on products such as the Zend Platform support the general development of the language, a process that is adding more sophisticated object-oriented features and making PHP more and more like JavaServer Pages.
I tested the system by installing it on a Macintosh running several of the common PHP applications such as PHP-Nuke on the built-in version of PHP. The process couldn't have been simpler. After unpacking the system and running the installer scripts, the Zend Platform started tracking all pages served by the system. There was no recompilation of the scripts or reintegration. It just started working, and the information was immediately available through the Web server.
It was a bit harder to get the Platform to communicate with the debugger in the Zend Development Environment, but I was able to solve it with some help from Zend. The debugger software was well-designed with some nice tools for testing these connections when specified, but the tools for connecting the Platform with the IDE were not always sufficient.
The pulse of PHP
The first thing a user sees when firing up Zend Platform is a dashboard that lists scripts that are not performing quickly. The five worst offenders are listed with a graph highlighting the overall response time of the server. If you want to understand what is going wrong, you can click on one of these scripts and a page opens with all the information that triggers the call. You can look at any cookies, parameters, or files in the HTTP request that were causing the trouble.
If you want to watch what happens when the server handles a troublesome HTTP request, you can either send it directly to the server again or pass it to the Zend Development Environment, an IDE with a built-in debugger and profiler sold separately. Both techniques can pinpoint slow scripts or problems with a Web site.
The Zend Platform covers a wide range of problems, and it includes a good, basic mechanism for programming alerts when trouble arises. It sends e-mail to an address or posts a report to a URL when it identifies a slow script, an error, or a high load on a server. Alerts can even be triggered by the slow execution of a particular PHP function, something that allows you to pinpoint sluggish parts of the system such as databases.