illuminate - performance analystics driven by machine learning
DESCRIPTION
This is an introduction slide deck which gives you the motivation of why we built illuminate and why it is so very different to the traditional APMs out there!TRANSCRIPT
Focus on what’s important
!
Performance analytics driven by machine learning
Why we built illuminate
• To diagnose performance issues – Without human intervention – Machine scalable performance diagnostics and analysis !
• Industry not happy with existing tools – Current state of the art is about raw metrics, no analysis – “Collect everything and hope for the best” !
• We could build on a proven methodology – Methodology proven through years of customer engagements – Required the use of Machine Learning
Why illuminate is different!
• Lightweight – Small memory footprint, small CPU footprint, small network footprint !
• Intelligent – illuminate’s Machine Learning interprets the data for you !
• Adaptive – Scales up or down with your application !
• Pervasive – Fills out the server piece of the performance puzzle
illuminate analysis
• Machine Learning finds largest bottleneck – Points you in the right direction quickly – Concentrate on biggest problem! !
• illuminate looks at the overall server – The problem may not be caused by the Java application! !
• illuminate aggregates across servers – If X servers have a similar problem we wrap that up in one report !
• Next version auto-triggers on SLA breaches – Custom performance/business based metric trigger points
A sample of the bottlenecks that we find
Category Bottleneck Description
High Pause Times Shows you high pause times due to Garbage Collection (GC)
Too much time in GC Shows you if your application not progressing due to GC
Running out of memory Shows you if your application is close to an OOME
Heavy Disk I/O Shows you if you are reading or writing too much from disk
Waiting on external system Shows you threads that are waiting for a response from an external system, e.g. Database, Webservice etc
Blocked threads Shows you threads that are blocked (with profiles)
Deadlocked threads Shows you deadlocked threads (with profiles)
Sleeping threads Shows you threads that are sleeping (with profiles)
Hot Loop Shows you if your code is in a hot (infinite loop)
Context Switching Shows you if your application is battling others for CPU time
illuminate - How it works
Daemon calibrates *once* and then lies dormant until asked to perform a diagnosis (manual or auto). Machine Learning then kicks in, gathers a small amount of metrics from the O/S & the JVM/App. It then applies it's decision engine and sends back an answer quickly. Answers are aggregated and presented on a modern web UI in plain English.
Some technical details
• Supports RedHat/Debian Linux systems – Including Amazon AWS, MS Azure, Google Cloud Compute – Run via init.d or simple run-headless.sh shell script – /proc should be available to read from !
• Daemon Comms over SSL'd websocket – SaaS hosted dashboard (secure public, or secure in-house) – Self Updating Daemons / Dashboard as a virtual appliance !
• Supports modern web browsers – IE8+ (10 preferred), FF, Chrome, Safari, Opera
Sample Overview
Sample Diagnosis Result
Sample Action Plan & Explanation
Sample - Historical Timeline
illuminate roadmap
• Q3 2014 - Simple Time Budgeting – Simple hooks for Servlet Containers, JDBC Drivers etc – Allows for automatic diagnosis based on breach of SLA !
• Q4 2014 - Operations monitoring view – Simple Red, Amber, Green style monitoring for Ops teams !
• 2015+ - Extensive Roadmap… – Deeper analysis for popular APIs/Libraries/Frameworks/App Servers – .NET, Javascript, Ruby et al – Embedded Devices – Capacity planning – PaaS and IDE integrations – Self Healing applications…
Focus on what’s important !
Get your free trial at www.jclarity.com
Follow us on Twitter @jclarity