cbdw2014 - profile and monitor with profilebox
Post on 30-Jun-2015
81 Views
Preview:
DESCRIPTION
TRANSCRIPT
ProfileBoxPerformance Monitoring for ColdBox
Fusion Reactor
Your New Best Friend
FusionReactor: Benes and Feats.
● Real-time monitoring of your ColdFusion servers
● Massive insight into the most granular details of request performance
● Robust notifications● Analytics, UX insights, and 1 billion other
things
ProfileBox
Your Best Friend’s Best Friend
ProfileBox: Introduction
● Profile any and all ColdBox events● Get metrics on layout and view renderings● Trace request collections● Custom annotations for object profiling● CacheBox profiling● Much more!
ProfileBox: Why???
● Performance is the foundation of successful applications
● Complexity + Entropy =
KNOWLEDGE IS POWER!
ProfileBox: Installation(Spoiler: It’s super easy!)
ProfileBox: Installation
1. Purchase ProfileBoxhttp://www.ortussolutions.com/products/profilebox
2. Download ProfileBox module3. Add module to your ColdBox application4. Configure module with your key and email5. Reap the benefits of awesome profiling!
ProfileBox: Installation
// config/settings.json.cfm
{
“licenceKey”: “myLicenseKey”,
“licenseEmail”: “existdissolve@gmail.com”,
...
}
Installation Complete!(Now let’s see it in action!)
Configuring ProfileBox
Configuration Options● profileHandlers
● handlerRegex
● profileViews
● profileObjects
● traceCollections
● traceObjectResults
● traceHandlerResults
● traceAppender
● notifyExceptions
Example #1: Profile an Event
● Prehandler processing● onRequestStart processing● onRequestEnd processing● Basic layout/view rendering
Example #1: History
Example #1: Event Detail
Example #2: View Rendering Metrics
● Prehandler processing● onRequestStart processing● onRequestEnd processing● Basic layout/view rendering● Slow view rendering!
Example #2: View Rendering History
Example #3: Profiling Objects
● Prehandler processing● onRequestStart processing● onRequestEnd processing● Basic layout/view rendering● Hidden object performance cost
Example #3: Object History
Example #4: Custom Notifications
● LogBox integration baked in (min=fatal,
max=info)
● API for more customized notifications
Custom Notification: API Example
getModel( "FRNotify" ).info(
title="Rollout Stress Test (via API)",
message="1000 RPM Threshold Exceeded",
origin="UserAccessService"
);
Custom Notifications Result
User Experience Tracking
// config/settings.json.cfm
“userExperienceTracking”: “true” ...
● Will append tracking script:
<script src="/fusionreactor/UEMJS.cfm" type="text/javascript"></script>
User Experience Tracking
● DB Time: Time in database (includes ORM)
● Web Request Time: Time in ColdFusion/ColdBox
● Network Time: Time from server to browser
● Client Time: Rendering Time
Remember: Perception is everything!
Tips &Suggestions
Tips & Suggestions
● Be modest with your ProfileBox configuration
● Use the Tracer and Notification APIs!
● Experiment, experiment, experiment!
Resources● FusionReactor: http://www.fusion-reactor.
com/
● More About ProfileBox:
https://www.ortussolutions.
com/products/profilebox/
top related