SlideShare a Scribd company logo
Self-Aware Applications: Automatic Production Monitoring (TechDays NL 2017)
Self-Aware Applications: Automatic Production Monitoring (TechDays NL 2017)
• Motivation
• Hierarchy of self-monitoring
• CPU profiling
• GC monitoring
• Heap analysis
• Deadlock detection
• Why monitor?
• Why monitor?
• Why monitor?
• Why our own?
• Why monitor?
• Why our own?
• Why monitor?
• Why our own?
• Why monitor?
• Why our own?
• Use a hierarchical monitoring strategy
• Use a hierarchical monitoring strategy
• Lightweight for continuous and frequent monitoring
of all basics
Performance counters
• Use a hierarchical monitoring strategy
• Lightweight for continuous and frequent monitoring
of all basics
Performance counters
• Medium for less frequency events
ETW ClrMD
• Use a hierarchical monitoring strategy
• Lightweight for continuous and frequent monitoring
of all basics
Performance counters
• Medium for less frequency events
ETW ClrMD
• Invasive for deep-dive and concrete diagnostics
CLR Profiling API CLR Debugging API
Let’s Get to Business
• Monitor CPU using performance counters
• Are we above a certain threshold for a certain
amount of time?
LiveStacks
• AuthenticationController takes 95% CPU,
maybe we're being DDoS'ed
• Image processing component takes 100% CPU, need
to auto-scale the app
• Encoding this 30 second video takes 3 minutes at
100% CPU, tell the user she can send us a bug report
CPU Spikes
Demo
• Monitor GC performance using performance
counters
• Register on ETW’s GC events such as
GCAllocationTick
• Attach ClrMD to get heap breakdown
Allocation
Spikes
Demo
• Monitor memory usage using performance counters
• Has memory increased above a certain threshold for
a certain time?
Find a Leak
Demo
• Monitor for potential deadlock
• Attach ClrMD to create wait chains and detect
deadlocks
• Report, try to break, pray for a miracle…
Detect a
Deadlock
Demo
• Many more scenarios are possible
• Many more scenarios are possible
• Monitor heap fragmentation and compact large
objects if needed
• Many more scenarios are possible
• Monitor heap fragmentation and compact large
objects if needed
• Native memory leak analysis using ETW
• The pros are obvious (visibility, easy scaling…)
• The pros are obvious (visibility, easy scaling…)
• But there are some cons as well…
• The pros are obvious (visibility, easy scaling…)
• But there are some cons as well…
• The pros are obvious (visibility, easy scaling…)
• But there are some cons as well…
• The pros are obvious (visibility, easy scaling…)
• But there are some cons as well…
• Self-monitoring is important for all kinds of software
• Best to create a hierarchy of monitoring (and
overhead and complexity)
• Lots of scenarios: CPU, GC, memory, deadlocks
• Demos: https://github.com/dinazil/self-aware-
applications
Self-Aware Applications: Automatic Production Monitoring (TechDays NL 2017)

More Related Content

PDF
Training Slides: 252 - Monitoring & Troubleshooting
PPTX
Antifragility and testing for distributed systems failure
PDF
Self-Aware Applications: Automatic Production Monitoring (SDP November 2017)
PDF
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
PPTX
Leveraging HP Performance Center
PPTX
Manage your environment with DSC
PPTX
Stress driven development
PPTX
Omaha OWASP Dec 2016
Training Slides: 252 - Monitoring & Troubleshooting
Antifragility and testing for distributed systems failure
Self-Aware Applications: Automatic Production Monitoring (SDP November 2017)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Leveraging HP Performance Center
Manage your environment with DSC
Stress driven development
Omaha OWASP Dec 2016

Similar to Self-Aware Applications: Automatic Production Monitoring (TechDays NL 2017) (20)

PDF
Performance tuning Grails applications
PDF
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
PPTX
Performance tuning Grails Applications GR8Conf US 2014
PPTX
How to Leverage Log Data for Effective Threat Detection
PPTX
Leandro Melendez - Switching Performance Left & Right
PDF
Performance tuning Grails applications
PPTX
Observability - The good, the bad and the ugly Xp Days 2019 Kiev Ukraine
PDF
TechGIG_Memory leaks in_java_webnair_26th_july_2012
PPT
The economies of scaling software - Abdel Remani
PPT
How to become a testing expert
PDF
The Diabolical Developers Guide to Performance Tuning
PDF
Secure Boot Under Attack: Simulation to Enhance Fault Attacks & Defenses
PPT
The Economies of Scaling Software
PPT
PPT
PPTX
High Reliabilty Systems
PPTX
Performance optimization (balancer optimization)
PDF
Jose Luis Soria - XP2014 - Designing a Release Pipeline
PDF
A lean automation blueprint for testing in continuous delivery
PDF
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl
Performance tuning Grails applications
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Performance tuning Grails Applications GR8Conf US 2014
How to Leverage Log Data for Effective Threat Detection
Leandro Melendez - Switching Performance Left & Right
Performance tuning Grails applications
Observability - The good, the bad and the ugly Xp Days 2019 Kiev Ukraine
TechGIG_Memory leaks in_java_webnair_26th_july_2012
The economies of scaling software - Abdel Remani
How to become a testing expert
The Diabolical Developers Guide to Performance Tuning
Secure Boot Under Attack: Simulation to Enhance Fault Attacks & Defenses
The Economies of Scaling Software
High Reliabilty Systems
Performance optimization (balancer optimization)
Jose Luis Soria - XP2014 - Designing a Release Pipeline
A lean automation blueprint for testing in continuous delivery
OpenNebulaConf 2013 - Monitoring of OpenNebula installations by Florian Heigl
Ad

More from Dina Goldshtein (16)

PDF
How Does the Internet Work? (Wix she codes; branch)
PDF
Look Mommy, No GC! (TechDays NL 2017)
PDF
ETW - Monitor Anything, Anytime, Anywhere (Velocity NYC 2017)
PDF
Look Mommy, no GC! (.NET Summit 2017)
PDF
Self-Aware Applications: Automatic Production Monitoring (NDC Sydney 2017)
PDF
Look Mommy, no GC! (BrightSource)
PDF
ETW - Monitor Anything, Anytime, Anywhere (NDC Oslo 2017)
PDF
Look Mommy, no GC! (SDP May 2017)
PDF
Look Mommy, No GC! (Codecamp Iasi 2017)
PDF
Look Mommy, No GC! (NDC London 2017)
PDF
How does the Internet Work?
PDF
How does the Internet Work?
PPTX
Things They Don’t Teach You @ School
PPTX
What's New in C++ 11/14?
PPTX
HTML5 Canvas
PPTX
JavaScript Basics
How Does the Internet Work? (Wix she codes; branch)
Look Mommy, No GC! (TechDays NL 2017)
ETW - Monitor Anything, Anytime, Anywhere (Velocity NYC 2017)
Look Mommy, no GC! (.NET Summit 2017)
Self-Aware Applications: Automatic Production Monitoring (NDC Sydney 2017)
Look Mommy, no GC! (BrightSource)
ETW - Monitor Anything, Anytime, Anywhere (NDC Oslo 2017)
Look Mommy, no GC! (SDP May 2017)
Look Mommy, No GC! (Codecamp Iasi 2017)
Look Mommy, No GC! (NDC London 2017)
How does the Internet Work?
How does the Internet Work?
Things They Don’t Teach You @ School
What's New in C++ 11/14?
HTML5 Canvas
JavaScript Basics
Ad

Recently uploaded (20)

PDF
KodekX | Application Modernization Development
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Spectroscopy.pptx food analysis technology
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Approach and Philosophy of On baking technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Machine learning based COVID-19 study performance prediction
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
NewMind AI Weekly Chronicles - August'25 Week I
KodekX | Application Modernization Development
Chapter 3 Spatial Domain Image Processing.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Unlocking AI with Model Context Protocol (MCP)
MIND Revenue Release Quarter 2 2025 Press Release
Spectroscopy.pptx food analysis technology
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
MYSQL Presentation for SQL database connectivity
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Approach and Philosophy of On baking technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
The AUB Centre for AI in Media Proposal.docx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Advanced methodologies resolving dimensionality complications for autism neur...
Network Security Unit 5.pdf for BCA BBA.
Machine learning based COVID-19 study performance prediction
Mobile App Security Testing_ A Comprehensive Guide.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
NewMind AI Weekly Chronicles - August'25 Week I

Self-Aware Applications: Automatic Production Monitoring (TechDays NL 2017)

  • 3. • Motivation • Hierarchy of self-monitoring • CPU profiling • GC monitoring • Heap analysis • Deadlock detection
  • 6. • Why monitor? • Why our own?
  • 7. • Why monitor? • Why our own?
  • 8. • Why monitor? • Why our own?
  • 9. • Why monitor? • Why our own?
  • 10. • Use a hierarchical monitoring strategy
  • 11. • Use a hierarchical monitoring strategy • Lightweight for continuous and frequent monitoring of all basics Performance counters
  • 12. • Use a hierarchical monitoring strategy • Lightweight for continuous and frequent monitoring of all basics Performance counters • Medium for less frequency events ETW ClrMD
  • 13. • Use a hierarchical monitoring strategy • Lightweight for continuous and frequent monitoring of all basics Performance counters • Medium for less frequency events ETW ClrMD • Invasive for deep-dive and concrete diagnostics CLR Profiling API CLR Debugging API
  • 14. Let’s Get to Business
  • 15. • Monitor CPU using performance counters • Are we above a certain threshold for a certain amount of time? LiveStacks
  • 16. • AuthenticationController takes 95% CPU, maybe we're being DDoS'ed • Image processing component takes 100% CPU, need to auto-scale the app • Encoding this 30 second video takes 3 minutes at 100% CPU, tell the user she can send us a bug report
  • 18. • Monitor GC performance using performance counters • Register on ETW’s GC events such as GCAllocationTick • Attach ClrMD to get heap breakdown
  • 20. • Monitor memory usage using performance counters • Has memory increased above a certain threshold for a certain time?
  • 22. • Monitor for potential deadlock • Attach ClrMD to create wait chains and detect deadlocks • Report, try to break, pray for a miracle…
  • 24. • Many more scenarios are possible
  • 25. • Many more scenarios are possible • Monitor heap fragmentation and compact large objects if needed
  • 26. • Many more scenarios are possible • Monitor heap fragmentation and compact large objects if needed • Native memory leak analysis using ETW
  • 27. • The pros are obvious (visibility, easy scaling…)
  • 28. • The pros are obvious (visibility, easy scaling…) • But there are some cons as well…
  • 29. • The pros are obvious (visibility, easy scaling…) • But there are some cons as well…
  • 30. • The pros are obvious (visibility, easy scaling…) • But there are some cons as well…
  • 31. • The pros are obvious (visibility, easy scaling…) • But there are some cons as well…
  • 32. • Self-monitoring is important for all kinds of software • Best to create a hierarchy of monitoring (and overhead and complexity) • Lots of scenarios: CPU, GC, memory, deadlocks • Demos: https://github.com/dinazil/self-aware- applications