Developing annotation based monitoring framework Fedor Romanov, TomTom.

Slides:



Advertisements
Similar presentations
Java Virtual Machine Profiling
Advertisements

TCP Monitor and Auto Tuner. Need Analysis Enable monitoring of TCP Connections Enable maximum bandwidth utilization No such utility available in MONALISA.
MIT Lincoln Laboratory A Service-Oriented Approach to Application Development Robert Darneille & Gary Schorer WPI MQP Presentations ICS Group 10 October.
SSRS 2008 Architecture Improvements Scale-out SSRS 2008 Report Engine Scalability Improvements.
Keeping our websites running - troubleshooting with Appdynamics Benoit Villaumie Lead Architect Guillaume Postaire Infrastructure Manager.
ManageEngine TM Applications Manager 8 Monitoring Custom Applications.
Multiple Tiers in Action
TimeTracker 2, Take 1  Servlets Web Interface (jsp) Servlet (business logic and processing) App Engine Datastore Form Submit R/W.
What Can You do With BTM? Business Transaction Management touches the following disciplines:  Performance Management  Application Management  Capacity.
Struts 2.0 an Overview ( )
Spring Roo CS476 Aleksey Bukin Peter Lew. What is Roo? Productivity tool Allows for easy creation of Enterprise Java applications Runs alongside existing.
Module 8: Server Management. Overview Server-level and instance-level resources such as memory and processes Database-level resources such as logical.
Samuvel Johnson nd MCA B. Contents  Introduction to Real-time systems  Two main types of system  Testing real-time software  Difficulties.
Web/App Performance How to keep you out of the News
Bill Au CBS Interactive Troubleshooting Slow or Hung Java Applications.
Bill Au CBS Interactive Troubleshooting Slow or Hung Java Applications.
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
JA-SIG 12/4/20051 JMX For Monitoring and Maintenance JA-SIG - December 4, 2005 – Atlanta, GA Eric Dalquist Division of Information Technology University.
AppDynamics Ohio User Group. What is ExactTarget? Software as a Service Marketing 500 million s sent a day 200 million web transactions a day.
T ECHNICAL INTRODUCTION TO O SKARI FOSS4G 2015 Hanna Visuri National Land Survey of Finland
Module 14 Monitoring and Optimizing SharePoint Performance.
Click to add text © 2012 IBM Corporation Design Manager Server Instrumentation Instrumentation Data Documentation Gary Johnston, Performance Focal Point,
COGNOS 8BI Introduction and Architecture
Guide to MCSE , Enhanced1 Activity 11-1: Using Task Manager to Manage Applications and Processes Objective: To explore managing applications and.
Monitoring and Managing Server Performance. Server Monitoring To become familiar with the server’s performance – typical behavior Prevent problems before.
RESTful Microservices In Java With Jersey Jakub Podlešák Software Engineer Oracle, Application Server Group September 29, 2014 Copyright © 2014, Oracle.
February, TRANSCEND SHIRO-CAS INTEGRATION ANALYSIS.
Java Monitoring Java monitoring using Glassfish, JMX, Glassbox and JConsole by Greg Heithaus.
Monitoring Hive: Metrics and WebUI
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Overview of the Spring Framework Introducing.
Recent Developments in Directories: Performance Monitoring with “Look” Brendan Bellina, University of Notre Dame Spring 2003 Internet2 Member Meeting.
The Chain of Responsibility Pattern (Behavioral) ©SoftMoore ConsultingSlide 1.
21 Copyright © 2008, Oracle. All rights reserved. Enabling Usage Tracking.
WebScan: Implementing QueryServer 2.0 Karl Geiger, Amgen Inc. BRS NA UG August 1999.
Google Code Libraries Dima Ionut Daniel. Contents What is Google Code? LDAPBeans Object-ldap-mapping Ldap-ODM Bug4j jOOR Rapa jongo Conclusion Bibliography.
#SummitNow Inspecting Alfresco – Tools and Techniques Nathan McMinn Technical Consultant - Alfresco.
Copyright © 2006, Oracle. All rights reserved Oracle Web Services Manager.
Bishnu Priya Nanda , Tata Consultancy Services Ltd.
GlassFish Performance Tuning: Tips from the Field
TrueSight Operations Management 11.0 Architecture
Hector Aguilar Director, Connector Development May 2006
Shared Services with Spotfire
Software Architecture in Practice
SQL Server Data Collector From Every Angle
Query Performance Tuning: Start to Finish
Java 9: The Quest for Very Large Heaps
Strategies for improving Web site performance
Operating System (013022) Dr. H. Iwidat
The Client/Server Database Environment
Software Architecture in Practice
Linternals SysInternals for Linux
Chapter 1: Introduction
Microsoft Build /20/2018 5:17 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Monitoring Java Applications with JAMon
Web Application Architectures
Evaluating Transaction System Performance
ColdFusion Performance Troubleshooting and Tuning
Android Topics UI Thread and Limited processing resources
Web Application Architectures
Database Connectivity and Web Development
Business Intelligence
COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require understanding.
UFCEUS-20-2 Web Programming
Web Application Architectures
Lecture 34: Testing II April 24, 2017 Selenium testing script 7/7/2019
AEM Operations Dec 2017.
Java Virtual Machine Profiling. Agenda Introduction JVM overview Performance concepts Monitoring Profiling VisualVM demo Tuning Conclusions.
Ponder policy toolkit Jovana Balkoski, Rashid Mijumbi
SharePoint 2013 Best Practices
Presentation transcript:

Developing annotation based monitoring framework Fedor Romanov, TomTom

Monitoring distributed back-end a request takes 527ms to complete—where to look for clues? © 2015 TomTom. All rights reserved. Confidential information. 2

Monitoring avoids troubleshooting inspect individual transactions 1. An incoming web request is dispatched to the component responsible for generating the response. 2. The request may need to be authenticated against an LDAP server. 3. The controller component makes queries against a database. 4. The controller component also makes calls to a third-party web service. 5. The controller component aggregates all of the retrieved data into a set of business objects for display. 6. The business objects are rendered and the response is sent to the user's browser. 7. AJAX code running in the browser causes additional requests to be sent back to the server. © 2015 TomTom. All rights reserved. Confidential information. 3

Collecting the stats 4 What types of statistics can be gathered Application Response Time time per request Database Response Time time per request Errors errors within application Garbage Collection time spent in GC Thread State active thread states Memory Allocation heap and PermGen © 2013 TomTom. All rights reserved. Confidential information. Method ServiceA::doA() was called 302 times and consumed on avg 100ms Method ServiceB::doB() was called 53 times and consumed on avg 1200ms

Use JDK tools at hand 5 Too generic and low-level 1.Logs 2.JVisualVM 3.JStack 4.JMap 5.App server Monitoring 6.JConsole © 2013 TomTom. All rights reserved. Confidential information.

Modern APM tools 6 make monitoring easier Targeted a different type of developers from enterprise to startups Both use Java agent to collect performance data. Not the best fit for microservices, need to see instantly what is taking so long. © 2013 TomTom. All rights reserved. Confidential information.

Requirements for TT monitoring fw 7 Avoid high coupling with 3d partly libs Easy to set-up as use. No DevOps needed. Low performance impact Non-intrusive: Easy monitoring of entire methods by simply adding an annotation Ability to disable and reset accumulated data Easily swap underlying monitoring implementation(should be open source) Spring support Standard deviation © 2013 TomTom. All rights reserved. Confidential information.

Why non-intrusiveness matters 8 Errors during monitoring cannot affect an application Adding performance logging statements in code reduces “signal-to-noise” ratio. Not safe, can throw NullPointerException: Stopwatch stopwatch = SimonManager.getStopwatch("sampled- stopwatch"); System.out.println("Stopwatch sample: " + stopwatch.sample()); © 2013 TomTom. All rights reserved. Confidential information.

Exploring available tools 9 Establishing common functionality 1.Javasimon simon simon 1.JAMon Metrics rics rics © 2013 TomTom. All rights reserved. Confidential information. Based on intersection, the interfaces have been defined and implemented.

Base notions 10 3 paramount interfaces under the hood Counter, for counting events. Has methods: void increase() void descrease() int getValue() Stopwatch, for timing events. Has methods: Split start() void addTime(long) Split, a subcomponent of the Stopwatch, representing a running Stopwatch. Contains: long stop() long runningFor() © 2013 TomTom. All rights reserved. Confidential information.

Client annotations 11 How it looks from actual code AnnotationApplied toUsageHow does it count method calls. uses AOP to run code before the a Counter or Stopwatch monitor into a field. uses Spring to find fields using the annotation, injects a corresponding object into the time a monitor. uses AOP to run code before and after the method. © 2013 TomTom. All rights reserved. Confidential information.

Time to get to the code 12 © 2013 TomTom. All rights reserved. Confidential information.

Thank you Any questions?