SlideShare a Scribd company logo
Designing an Unobtrusive
Analytics Framework
for Monitoring Java Applications
Sampo Suonsyrjä and Tommi Mikkonen
Dept. of Pervasive Computing
Tampere University of Technology
Contents
•  Context
–  Paradigm change in
software development
–  Web apps vs. installable
programs
•  Motivation
–  Why the
unobtrusiveness?
•  Case
–  Vaadin framework as the
platform of a target program
–  The designed analytics
framework
•  Discussion
•  Conclusions
17.10.15 2
Paradigm Change in Software Development
•  Waterfall method and such
–  User involvement only before
development
–  Requirements defined before
any use
–  Systems remained the same
throughout their life
–  Changes in user
requirements? No more use!
Throw the cd away
•  Agile methods
–  Requirements defined as late
as possible
–  Users involved iteratively
–  More knowledge of what is
possible and needed
–  Developing less, but with a
greater accuracy
–  Changes in user requirements?
Order an extension to the sw.
dev. project
17.10.15 3
Paradigm Change and the First Frontier
•  Feedback with agile methods
–  User surveys, thinking aloud,
observations
–  Manually collected
qualitative data
–  Stops when development
stops
•  Continuous Delivery &
Deployment systems
–  New versions are delivered
faster than ever
–  Developing experiments, not
just reacting to requirements
–  Usage Data = results from
these experiments
–  Automatic collecting needed
•  Web as a platform for analytics
–  Channel is clear
–  Tools are available
–  A/B testing is easier than ever
–  Continuous experimentation
17.10.15 4
Why the Unobtrusiveness?
•  Collecting usage data leads to changes in the target program
•  Target program is continuously under change
•  Target program can be built by others
•  Data should remain
–  Collectable
–  Comparable between different versions
•  If data collecting is independent of the target..
•  ..then data collecting mechanism could be reused
17.10.15 5
Vaadin Framework
•  Open source framework
for developing Rich
Internet Applications
•  Applications are written
in Java..
•  ..and then transformed
into AJAX applications
17.10.15 6
Target Program
•  Demo app of the Vaadin
Framework
•  QuickTickets Dashboard
Demo
•  Source code available
•  Built by someone else
than the researchers
17.10.15 7
Target Program
public DashboardView() {
HorizontalLayout top = new HorizontalLayout();
addComponent(top);
Button notify = new Button('2');
Notify.addClickListener(
new ClickListener(){
...
});
top.addComponent(notify);
};
17.10.15 8
The Designed Framework for
Unobtrusive Analytics
•  AspectJ for usage
monitoring
•  Fluentd for collecting
•  ElasticSearch for storing
•  Kibana for visualizing
17.10.15 9
AspectJ
public aspect AddComponentListener {
pointcut addComponentCall(Button b):
call(* *.addComponent(*))&& args(b);
after(final Button b):addComponentCall(b)
{
b.addClickListener(
new Button.ClickListener()
{ public void
click(ClickEvent e) {
dataCollector.logEvent(b, e);
}
});
}}
public DashboardView() {
HorizontalLayout top = new
HorizontalLayout();
addComponent(top);
Button notify = new Button('2');
Notify.addClickListener(
new ClickListener(){
...
});
top.addComponent(notify);
};
17.10.15 10
AspectJ
•  Aspect-oriented programming is unobtrusive by
nature
•  No alteration of the original source code
•  Tooling is affected however
–  AspectJ dependency inserted
–  Aspect class file inserted
–  Normal compiling + aspect weaving
17.10.15 11
Fluentd
•  Implemented similarly as
aspects
–  Fluentd dependency added
–  A logging class added
•  Parses data into JSON
•  Sends data for storing
•  In this case, Fluentd was
installed and run on the same
machine as the target
program
17.10.15 12
Fluentd
public class DataLogger {
private static FluentLogger LOG =
FluentLogger.getLogger("button.click");
public void logButtonClick(Button b, ClickEvent event){
Map<String, Object> data = new HashMap<String, Object>();
data.put("Button Caption", b.getCaption());
data.put("Button ID", b.getId());
...
LOG.log("click", data);
}}
17.10.15 13
ElasticSearch and Kibana
•  ElasticSearch is document
oriented
•  Data was already in JSON
àName fields automatically
•  Real-time access with Kibana
•  Different visualizations readily
available
17.10.15 14
Discussion
•  RQ1: To what extent can a data collecting feature be
implemented without compromising the evolution of the target
program?
•  Usage monitoring inserted without changing the source code
•  Aspect and logging class files and dependencies inserted
•  Target application’s evolution was not compromised
–  No additional effort needed if new version has different buttons
–  However, if the new version introduces new ways of implementing
buttons aspects need changing as well
17.10.15 15
Discussion
•  RQ2: What types of data can be collected with the given
approach?
•  Aspect-oriented monitoring is flexible
–  Pointcuts could be made on a vast variety of different points
–  Advices can include almost arbitrary code
–  Access to the target program in source code level
•  Vaadin Framework provided an abundant platform for collecting data
•  Usage data collected in this case
•  Perhaps end-user feedback in the future?
17.10.15 16
Discussion
•  RQ3: How to connect the data collecting feature with an
analysis framework?
•  Aspect-code can be put to produce data in various formats
àUnified logging layer (Fluentd: JSON)
àPossibility to use standardized storing and visualization tools
àUseful when combining different kinds of data (access, error,
application logs etc.)
17.10.15 17
Conclusions
•  New means of getting feedback
from end-users are needed
à Analytics with usage data
•  New versions continuously
à Need for unobtrusiveness
à Aspect-oriented collecting
Thank you!
17.10.15 18

More Related Content

PPTX
Gitana: a SQL-based Git Repository Inspector
PPTX
Using React Native in a digital health solution
PPTX
Fifth elephant 2017 Data Pipeline workshop
PPTX
CipherCloud Microservice Meetup - Managing Services in a Lean Startup
PPTX
How to Empower a Platform With a Data Pipeline At a Scale
PPTX
360Vers Business Objects version control
PDF
MuleSoft_Meetup_Datagraph and Async APIs.pptx.pdf
PPTX
Matlab Based Projects Research guidance
Gitana: a SQL-based Git Repository Inspector
Using React Native in a digital health solution
Fifth elephant 2017 Data Pipeline workshop
CipherCloud Microservice Meetup - Managing Services in a Lean Startup
How to Empower a Platform With a Data Pipeline At a Scale
360Vers Business Objects version control
MuleSoft_Meetup_Datagraph and Async APIs.pptx.pdf
Matlab Based Projects Research guidance

What's hot (18)

PPTX
MATLAB GUI Projects Research Ideas
PPTX
Embedded World 2015: Internet of Things Changes the Definition of What a Prod...
PDF
Roofline Model for FPGA: A tool for Performance Analysis and Application Opti...
PPT
Batch Process Analytics
PPTX
Webinar: What is new in codeBeamer 7.6?
PDF
Using React.js to extend your CMS
PPTX
Mint
PDF
Reactive Integrations - Caveats and bumps in the road explained
PPTX
Network-Simulations-in-Qualnet
PPTX
QA Team Goes to Agile and Continuous integration
PDF
Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...
PPTX
databricks ml flow demonstration using automatic features engineering
PDF
Deploying GraphQL Services as Managed APIs
PPTX
Scrum
PPTX
ALM iStack - Application Lifecycle Management using Linked Data
PDF
Lesson 2 software processes
PPTX
Practicing Agile in Offshore Environment
PPTX
Application Lifecycle Management with Visual Studio 2013
MATLAB GUI Projects Research Ideas
Embedded World 2015: Internet of Things Changes the Definition of What a Prod...
Roofline Model for FPGA: A tool for Performance Analysis and Application Opti...
Batch Process Analytics
Webinar: What is new in codeBeamer 7.6?
Using React.js to extend your CMS
Mint
Reactive Integrations - Caveats and bumps in the road explained
Network-Simulations-in-Qualnet
QA Team Goes to Agile and Continuous integration
Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...
databricks ml flow demonstration using automatic features engineering
Deploying GraphQL Services as Managed APIs
Scrum
ALM iStack - Application Lifecycle Management using Linked Data
Lesson 2 software processes
Practicing Agile in Offshore Environment
Application Lifecycle Management with Visual Studio 2013
Ad

Viewers also liked (14)

PDF
Festa família 2013
PPT
Estadistica itsaj
PPTX
Boy’s christian t shirts
PDF
migration certificate
DOC
Programa de becas para maestria 2012
PPTX
Lenguajes pictoricos, estilos
DOCX
Carta al consejo nacioal
PPT
Внедрение системы ЕГАИС в розничном звене
DOCX
EDU 320 Entire Course 2015 version
PPT
ЕГАИС инструкция по заполнению заявки
DOCX
Makalah manajemen
PPTX
Mic sesión 11
PPT
"Glocal" marketing & New Media Localisation
DOCX
Trabajo
Festa família 2013
Estadistica itsaj
Boy’s christian t shirts
migration certificate
Programa de becas para maestria 2012
Lenguajes pictoricos, estilos
Carta al consejo nacioal
Внедрение системы ЕГАИС в розничном звене
EDU 320 Entire Course 2015 version
ЕГАИС инструкция по заполнению заявки
Makalah manajemen
Mic sesión 11
"Glocal" marketing & New Media Localisation
Trabajo
Ad

Similar to Designing an unobtrusive analytics framework for monitoring java applications sampo suonsyrjä (20)

PDF
Cytoscape: Now and Future
PPTX
Shopify - CNCF March 2025 Meetup - Presentation - 26-03-25.pptx
PPTX
The differing ways to monitor and instrument
PDF
Rakuten’s Journey with Splunk - Evolution of Splunk as a Service
PDF
Nagios Conference 2007 | Enterprise Application Monitoring with Nagios by Jam...
DOC
Ananth_Ravishankar
PPTX
Techniques for scaling application with security and visibility in cloud
PDF
VMworld 2013: EUC Application Strategy Best Practices
PPTX
Monitoring federation open stack infrastructure
PPTX
Disruptive Trends in Application Development
PPTX
Design and Prototypical Implementation of a Mobile Healthcare Application: He...
PDF
MuleSoft Manchester Meetup #4 slides 11th February 2021
PPTX
redpill Mobile Case Study (Salvation Army)
PPTX
Do I Need A Service Mesh.pptx
PDF
PDF
Presentation
PPT
A Low-Cost IoT Application for the Urban Traffic of Vehicles, Based on Wirele...
PDF
AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...
PDF
Developing Tizen OS Based Solutions (IDF13) - Chris Norman
DOC
VINOD_6yrs
Cytoscape: Now and Future
Shopify - CNCF March 2025 Meetup - Presentation - 26-03-25.pptx
The differing ways to monitor and instrument
Rakuten’s Journey with Splunk - Evolution of Splunk as a Service
Nagios Conference 2007 | Enterprise Application Monitoring with Nagios by Jam...
Ananth_Ravishankar
Techniques for scaling application with security and visibility in cloud
VMworld 2013: EUC Application Strategy Best Practices
Monitoring federation open stack infrastructure
Disruptive Trends in Application Development
Design and Prototypical Implementation of a Mobile Healthcare Application: He...
MuleSoft Manchester Meetup #4 slides 11th February 2021
redpill Mobile Case Study (Salvation Army)
Do I Need A Service Mesh.pptx
Presentation
A Low-Cost IoT Application for the Urban Traffic of Vehicles, Based on Wirele...
AppSphere 15 - How AppDynamics is Shaking up the Synthetic Monitoring Product...
Developing Tizen OS Based Solutions (IDF13) - Chris Norman
VINOD_6yrs

More from IWSM Mensura (20)

PDF
When do software issues get reported in large open source software - Rakesh Rana
PDF
Accounting for non functional and project requirements - cosmic and ifpug dev...
PPTX
Workshop early or rapid cosmic fsm - Frank Vogelezang
PDF
Tips and hints for an effective cosmic learning process gained from industria...
PDF
The significance of ifpug base functionality types in effort estimation cig...
PDF
The effects of duration based moving windows with estimation by analogy - sou...
PDF
Software or service that's the question luigi buglione
PDF
Requirements effort estimation state of the practice - mohamad kassab
PDF
Quantitative functional change impact analysis in activity diagrams a cosmi...
PDF
Practical usage of fpa and automatic code review piotr popovski
PDF
Performance measurement of agile teams harold van heeringen
PDF
Measurement as-a-service a new way of organizing metrics programs - wilhelm m...
PDF
Improving the cosmic approximate sizing using the fuzzy logic epcu model al...
PDF
Functional size measurement for processor load estimation hassan soubra
PDF
From software to service sustainability a still broader perspective - luigi...
PDF
Estimation and measuring of software size within the atos gobal delivery plat...
PDF
Energy wasting rate jérôme rocheteau
PDF
Do we measure functional size or do we count thomas fehlmann
PDF
Combining qualitative and quantitative software process evaluation sylvie t...
PDF
Automatic measurements of use cases with cosmic thomas fehlmann
When do software issues get reported in large open source software - Rakesh Rana
Accounting for non functional and project requirements - cosmic and ifpug dev...
Workshop early or rapid cosmic fsm - Frank Vogelezang
Tips and hints for an effective cosmic learning process gained from industria...
The significance of ifpug base functionality types in effort estimation cig...
The effects of duration based moving windows with estimation by analogy - sou...
Software or service that's the question luigi buglione
Requirements effort estimation state of the practice - mohamad kassab
Quantitative functional change impact analysis in activity diagrams a cosmi...
Practical usage of fpa and automatic code review piotr popovski
Performance measurement of agile teams harold van heeringen
Measurement as-a-service a new way of organizing metrics programs - wilhelm m...
Improving the cosmic approximate sizing using the fuzzy logic epcu model al...
Functional size measurement for processor load estimation hassan soubra
From software to service sustainability a still broader perspective - luigi...
Estimation and measuring of software size within the atos gobal delivery plat...
Energy wasting rate jérôme rocheteau
Do we measure functional size or do we count thomas fehlmann
Combining qualitative and quantitative software process evaluation sylvie t...
Automatic measurements of use cases with cosmic thomas fehlmann

Recently uploaded (20)

PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
history of c programming in notes for students .pptx
PDF
medical staffing services at VALiNTRY
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
Transform Your Business with a Software ERP System
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Introduction to Artificial Intelligence
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
top salesforce developer skills in 2025.pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
L1 - Introduction to python Backend.pptx
Design an Analysis of Algorithms I-SECS-1021-03
history of c programming in notes for students .pptx
medical staffing services at VALiNTRY
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
wealthsignaloriginal-com-DS-text-... (1).pdf
Wondershare Filmora 15 Crack With Activation Key [2025
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
How to Migrate SBCGlobal Email to Yahoo Easily
Transform Your Business with a Software ERP System
VVF-Customer-Presentation2025-Ver1.9.pptx
CHAPTER 2 - PM Management and IT Context
Odoo Companies in India – Driving Business Transformation.pdf
Introduction to Artificial Intelligence
Softaken Excel to vCard Converter Software.pdf
top salesforce developer skills in 2025.pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Upgrade and Innovation Strategies for SAP ERP Customers
L1 - Introduction to python Backend.pptx

Designing an unobtrusive analytics framework for monitoring java applications sampo suonsyrjä

  • 1. Designing an Unobtrusive Analytics Framework for Monitoring Java Applications Sampo Suonsyrjä and Tommi Mikkonen Dept. of Pervasive Computing Tampere University of Technology
  • 2. Contents •  Context –  Paradigm change in software development –  Web apps vs. installable programs •  Motivation –  Why the unobtrusiveness? •  Case –  Vaadin framework as the platform of a target program –  The designed analytics framework •  Discussion •  Conclusions 17.10.15 2
  • 3. Paradigm Change in Software Development •  Waterfall method and such –  User involvement only before development –  Requirements defined before any use –  Systems remained the same throughout their life –  Changes in user requirements? No more use! Throw the cd away •  Agile methods –  Requirements defined as late as possible –  Users involved iteratively –  More knowledge of what is possible and needed –  Developing less, but with a greater accuracy –  Changes in user requirements? Order an extension to the sw. dev. project 17.10.15 3
  • 4. Paradigm Change and the First Frontier •  Feedback with agile methods –  User surveys, thinking aloud, observations –  Manually collected qualitative data –  Stops when development stops •  Continuous Delivery & Deployment systems –  New versions are delivered faster than ever –  Developing experiments, not just reacting to requirements –  Usage Data = results from these experiments –  Automatic collecting needed •  Web as a platform for analytics –  Channel is clear –  Tools are available –  A/B testing is easier than ever –  Continuous experimentation 17.10.15 4
  • 5. Why the Unobtrusiveness? •  Collecting usage data leads to changes in the target program •  Target program is continuously under change •  Target program can be built by others •  Data should remain –  Collectable –  Comparable between different versions •  If data collecting is independent of the target.. •  ..then data collecting mechanism could be reused 17.10.15 5
  • 6. Vaadin Framework •  Open source framework for developing Rich Internet Applications •  Applications are written in Java.. •  ..and then transformed into AJAX applications 17.10.15 6
  • 7. Target Program •  Demo app of the Vaadin Framework •  QuickTickets Dashboard Demo •  Source code available •  Built by someone else than the researchers 17.10.15 7
  • 8. Target Program public DashboardView() { HorizontalLayout top = new HorizontalLayout(); addComponent(top); Button notify = new Button('2'); Notify.addClickListener( new ClickListener(){ ... }); top.addComponent(notify); }; 17.10.15 8
  • 9. The Designed Framework for Unobtrusive Analytics •  AspectJ for usage monitoring •  Fluentd for collecting •  ElasticSearch for storing •  Kibana for visualizing 17.10.15 9
  • 10. AspectJ public aspect AddComponentListener { pointcut addComponentCall(Button b): call(* *.addComponent(*))&& args(b); after(final Button b):addComponentCall(b) { b.addClickListener( new Button.ClickListener() { public void click(ClickEvent e) { dataCollector.logEvent(b, e); } }); }} public DashboardView() { HorizontalLayout top = new HorizontalLayout(); addComponent(top); Button notify = new Button('2'); Notify.addClickListener( new ClickListener(){ ... }); top.addComponent(notify); }; 17.10.15 10
  • 11. AspectJ •  Aspect-oriented programming is unobtrusive by nature •  No alteration of the original source code •  Tooling is affected however –  AspectJ dependency inserted –  Aspect class file inserted –  Normal compiling + aspect weaving 17.10.15 11
  • 12. Fluentd •  Implemented similarly as aspects –  Fluentd dependency added –  A logging class added •  Parses data into JSON •  Sends data for storing •  In this case, Fluentd was installed and run on the same machine as the target program 17.10.15 12
  • 13. Fluentd public class DataLogger { private static FluentLogger LOG = FluentLogger.getLogger("button.click"); public void logButtonClick(Button b, ClickEvent event){ Map<String, Object> data = new HashMap<String, Object>(); data.put("Button Caption", b.getCaption()); data.put("Button ID", b.getId()); ... LOG.log("click", data); }} 17.10.15 13
  • 14. ElasticSearch and Kibana •  ElasticSearch is document oriented •  Data was already in JSON àName fields automatically •  Real-time access with Kibana •  Different visualizations readily available 17.10.15 14
  • 15. Discussion •  RQ1: To what extent can a data collecting feature be implemented without compromising the evolution of the target program? •  Usage monitoring inserted without changing the source code •  Aspect and logging class files and dependencies inserted •  Target application’s evolution was not compromised –  No additional effort needed if new version has different buttons –  However, if the new version introduces new ways of implementing buttons aspects need changing as well 17.10.15 15
  • 16. Discussion •  RQ2: What types of data can be collected with the given approach? •  Aspect-oriented monitoring is flexible –  Pointcuts could be made on a vast variety of different points –  Advices can include almost arbitrary code –  Access to the target program in source code level •  Vaadin Framework provided an abundant platform for collecting data •  Usage data collected in this case •  Perhaps end-user feedback in the future? 17.10.15 16
  • 17. Discussion •  RQ3: How to connect the data collecting feature with an analysis framework? •  Aspect-code can be put to produce data in various formats àUnified logging layer (Fluentd: JSON) àPossibility to use standardized storing and visualization tools àUseful when combining different kinds of data (access, error, application logs etc.) 17.10.15 17
  • 18. Conclusions •  New means of getting feedback from end-users are needed à Analytics with usage data •  New versions continuously à Need for unobtrusiveness à Aspect-oriented collecting Thank you! 17.10.15 18