All too often PHP engineers find themselves repeating the same tasks to triage their application problems. Issues can range from poorly written code to database bottlenecks, slow remote service API calls, or machine issues including I/O bottlenecks — whether hardware or network related.
In certain cases, these issues are nearly impossible to discover due to the nonexistence of a mechanism for tracking and reporting particular events that may impact the performance of your application when those events are not directly related to the application code itself.
For example, imagine the frustration when a recent PHP upgrade causes a fatal error. What if routine configuration changes to your maintenance scripts also impacts your ability to read from your database?
Perhaps switching database table engines from MyISAM to to InnoDB is causing application slowdown. The numerous types of events outside of the normal development workflow can compromise the integrity of your application’s user experience while at the same time creating unwanted frustration.
Types of Events
Event tracking is an integral part of maintaining true and transparent insight into the various events that revolve around the performance of your application. One of my favorite core APM features is Event Tracking: the ability to track a change in the state of your application that is of potential interest. Some examples of the various actions you can track are:
Upgrading your PHP framework
Application deployments AND rollbacks
Switching database table engines (e.g. MyISAM to InnoDB)
Changes/upgrades to hardware
Upgrades to your OS, MySQL, web server, etc.
Installing/upgrading PHP extensions
I think you get the idea – you want to track anything that could potentially impact the performance of your application.
AppDynamics Event Tracking
The AppDynamics Event Tracking feature can be accessed by clicking the Events link in the main navigation menu.
Once clicked, you’re presented with a view of all events that have occurred in your application at that time. In this example, we’re presented with Health Rule Violations and an instance of a server being restarted. To narrow down what you’re looking for, you have the option of using an advanced search filter. Select ‘Show Filters’ and you will see a list of choices to the left of the event list.
‘Compare Releases’ shows the real power of AppDynamics and is the reason why it remains one of my favorite core APM features. Under the Analyze menu item, click ‘Compare Releases’ and you’ll be shown a screen comparing your application between two different time periods. A unique column here is the ‘Events’ column displaying any events registered during the specified time range to give you further insight into what may have been previously overlooked. In this specific example, we’re comparing the application’s KPIs between two different weeks. You can see that our error rate decreased the week later with no health rule violations registered as events. The screenshot shows a definitive performance improvement between the two time periods.
We encourage you to explore the Events feature further. You will see how you can combine both the power of Change Releases and our Alert & Respond feature to execute custom scripts based upon triggered events.. an added bonus, the Events feature is also accessible by a RESTful API that allows you to register a change event from anywhere at anytime.
Take five minutes to get complete visibility into the performance of your production applications with AppDynamics Pro today.