CBDW2014 - Profile and Monitor with ProfileBox

Post on 30-Jun-2015

81 views 0 download

description

This session will cover how to tune your Box applications with our ProfileBox module that ties your apps performance metrics right inside of FusionReactor.

Transcript of CBDW2014 - Profile and Monitor with ProfileBox

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!