FireStick 1.0 – Performance logging add-on library for CodeIgniter
FireStick is a (relatively) simple to configure library that enables easy and low-overhead performance logging in CodeIgniter.
Performance measuring and logging is an important part of application maintenance and improvement. FireStick makes it easy to record page render times, MySQL call times, and other related information that you can use to track down performance issues.
FireStick relies on CodeIgniter’s built-in performance and benchmarking capabilities and a post-system hook. When the hook is called, FireStick logs all this information to the database for review at a later date.
Logs are split up into multiple tables based on date, with each new day’s table created automatically on the first request of each new day. All logs are added using INSERT DELAYED so as to minimize impact on the database server.
Main project page: http://code.google.com/p/firestick/
Project source: http://firestick.googlecode.com/files/firestick-1.0.zip
Installation instructions: http://code.google.com/p/firestick/wiki/Installation
I’ve been reading High Performance MySQL lately, and the very first section of the book is on profiling, why it’s a good idea, and how to go about doing it. Since I’ve deployed ComingUp out in the wild, I figured I should be profiling, too.
So I put together this little add-on library for CodeIgniter that takes the basics presented in the text and adapts them to CodeIgniter’s already well-rounded benchmark system. CodeIgniter already has total script execution time measured, total script memory consumption, and a full list of all DB calls and the amount of time they took. I just collated all of that and put it into a sensible DB logging system.
The whole deal is open source, too. GPL v3. Any CodeIgniter developer anywhere can feel free to use this, and I’d be happy if they did.
If you are using it, and you encounter any bugs or want to provide feedback, please leave a comment in the FireStick thread on the CodeIgniter forums, and I’ll be happy to address it.