Assembling and Executing Kieker Analysis Configurations via Java - - PowerPoint PPT Presentation

assembling and executing kieker analysis configurations
SMART_READER_LITE
LIVE PREVIEW

Assembling and Executing Kieker Analysis Configurations via Java - - PowerPoint PPT Presentation

Assembling and Executing Kieker Analysis Configurations via Java API and Web UI Kieker Days 2012 Nils Christian Ehmke Software Engineering Group Kiel University, Germany November 30, 2012 @ Kiel Nils Christian Ehmke Kieker


slide-1
SLIDE 1

Assembling and Executing Kieker Analysis Configurations via Java API and Web UI

— Kieker Days 2012 — Nils Christian Ehmke

Software Engineering Group Kiel University, Germany

November 30, 2012 @ Kiel

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 1 / 19

slide-2
SLIDE 2

Motivation: Pipes-and-Filters Analysis

Raw Image Data Split Grad X Grad Y Binomial Filter Binomial Filter Harris Corner Detector Interest Points

Figure : Interest Point Detection

Monitoring Data FSReader MyResponseTimeFilter ValidPrinter InvalidPrinter [Valid] ...bookstoreTracing.Catalog, ... [Valid] ...bookstoreTracing.Catalog, ... [Invalid] ...bookstoreTracing.Catalog, ... [Invalid] ...bookstoreTracing.Catalog, ...

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 2 / 19

slide-3
SLIDE 3

Motivation: Pipes-and-Filters Analysis

Raw Image Data Split Grad X Grad Y Binomial Filter Binomial Filter Harris Corner Detector Interest Points

Figure : Interest Point Detection

Monitoring Data FSReader MyResponseTimeFilter ValidPrinter InvalidPrinter [Valid] ...bookstoreTracing.Catalog, ... [Valid] ...bookstoreTracing.Catalog, ... [Invalid] ...bookstoreTracing.Catalog, ... [Invalid] ...bookstoreTracing.Catalog, ...

Figure : Kieker: Response time analysis

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 2 / 19

slide-4
SLIDE 4

1

Kieker’s Pipes and Filters API

2

Kieker.WebGUI

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 3 / 19

slide-5
SLIDE 5

Purpose

Kieker’s Pipes and Filters API

Question

Why do we need a pipes-and-filters API?

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 4 / 19

slide-6
SLIDE 6

Purpose

Kieker’s Pipes and Filters API

Question

Why do we need a pipes-and-filters API?

Answer

  • Assemble, save, load analysis configurations
  • Creation of custom analyses
  • Reusability of filters

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 4 / 19

slide-7
SLIDE 7

History

Kieker’s Pipes and Filters API

≤ Kieker 1.4

  • Pipes and filters possible — very difficult to use
  • Only programmatic assembly and execution
  • Reader 1

Filter 1 ... Filter 3 Filter n Reader 2 Filter 2 Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 5 / 19

slide-8
SLIDE 8

History

Kieker’s Pipes and Filters API

≤ Kieker 1.4

  • Pipes and filters possible — very difficult to use
  • Only programmatic assembly and execution
  • ≥ Kieker 1.5
  • Configurable and easy to use
  • Easy extendible pipes and filters

Reader 1 Filter 1 ... Filter 3 Filter n Reader 2 Filter 2 Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 5 / 19

slide-9
SLIDE 9

The Meta Model Behind the P&F API

Kieker’s Pipes and Filters API

Figure : The Pipes-and-Filters Ecore Model (Simplified)

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 6 / 19

slide-10
SLIDE 10

P&F Assembly and Execution Methods

Kieker’s Pipes and Filters API

Question

How to use the pipes and filters API?

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 7 / 19

slide-11
SLIDE 11

P&F Assembly and Execution Methods

Kieker’s Pipes and Filters API

Question

How to use the pipes and filters API?

Answer

  • Implement and execute in plain Java code
  • Persist in kax files
  • Implement and execute in a WebGUI
  • (Implement own plugins)

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 7 / 19

slide-12
SLIDE 12

P&F Assembly and Execution Method #1

Kieker’s Pipes and Filters API

// Create an analysis controller AnalysisController analysisController = new AnalysisController();

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 8 / 19

slide-13
SLIDE 13

P&F Assembly and Execution Method #1

Kieker’s Pipes and Filters API

// Create an analysis controller AnalysisController analysisController = new AnalysisController(); // Programmatic assembly of pipes-and-filter configuration Configuration config = new Configuration(); config.setProperty(...); MyResponseTimePrinter printer = new MyResponseTimePrinter(config);

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 8 / 19

slide-14
SLIDE 14

P&F Assembly and Execution Method #1

Kieker’s Pipes and Filters API

// Create an analysis controller AnalysisController analysisController = new AnalysisController(); // Programmatic assembly of pipes-and-filter configuration Configuration config = new Configuration(); config.setProperty(...); MyResponseTimePrinter printer = new MyResponseTimePrinter(config); analysisController.registerFilter(printer);

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 8 / 19

slide-15
SLIDE 15

P&F Assembly and Execution Method #1

Kieker’s Pipes and Filters API

// Create an analysis controller AnalysisController analysisController = new AnalysisController(); // Programmatic assembly of pipes-and-filter configuration Configuration config = new Configuration(); config.setProperty(...); MyResponseTimePrinter printer = new MyResponseTimePrinter(config); analysisController.registerFilter(printer); analysisController.connect( filter, MyResponseTimeFilter.OUTPUT_PORT_NAME_RT_VALID, printer, MyResponseTimeOutputPrinter.INPUT_PORT_NAME_EVENTS);

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 8 / 19

slide-16
SLIDE 16

P&F Assembly and Execution Method #1

Kieker’s Pipes and Filters API

// Create an analysis controller AnalysisController analysisController = new AnalysisController(); // Programmatic assembly of pipes-and-filter configuration Configuration config = new Configuration(); config.setProperty(...); MyResponseTimePrinter printer = new MyResponseTimePrinter(config); analysisController.registerFilter(printer); analysisController.connect( filter, MyResponseTimeFilter.OUTPUT_PORT_NAME_RT_VALID, printer, MyResponseTimeOutputPrinter.INPUT_PORT_NAME_EVENTS); // Starting the analysis analysisController.run();

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 8 / 19

slide-17
SLIDE 17

P&F Assembly and Execution Method #1

Kieker’s Pipes and Filters API

Note: We can also save the analysis for later // Save the analysis in a kax file analysisController.saveToFile(new File("analysis.kax"));

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 9 / 19

slide-18
SLIDE 18

P&F Assembly and Execution Method #2

Kieker’s Pipes and Filters API

The resulting kax file (XMI format)

... <plugins xsi:type="Filter" name="Valid Printer" classname="..."> <properties name="validOutput" value="true"/> <inputPorts name="newEvent"/> </plugins> ... <plugins xsi:type="Filter" name="MyResponseTimeFilter" classname="..."> <properties name="thresholdNanos" value="1900000"/> <outputPorts name="validResponseTimes" subscribers="//@plugins.4/@inputPorts.0"/> <outputPorts name="invalidResponseTimes" subscribers="//@plugins.3/@inputPorts.0"/> <inputPorts name="newResponseTime"/> </plugins>

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 10 / 19

slide-19
SLIDE 19

P&F Assembly and Execution Method #2

Kieker’s Pipes and Filters API

Running the analysis using the Java API

new AnalysisController(new File("analysis.kax")).run();

Running the analysis via the Kax-Runner

kax-run.bat/sh -i analysis.kax

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 11 / 19

slide-20
SLIDE 20

P&F Assembly and Execution Method #3

Kieker’s Pipes and Filters API

Assembling the analysis in the WebGUI

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 12 / 19

slide-21
SLIDE 21

P&F Assembly and Execution Method #3

Kieker’s Pipes and Filters API

Running the analysis in the WebGUI

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 13 / 19

slide-22
SLIDE 22

Implement Own Plugins

Kieker’s Pipes and Filters API

@Plugin( name = "Response time filter",

  • utputPorts = {

@OutputPort(name = "out", eventTypes = {MyResponseTimeRecord.class})}, configuration = { @Property(name = "thresholdNanos", defaultValue = "1000000")}) public class MyResponseTimeFilter extends AbstractFilterPlugin { @InputPort( name = "newResponseTime", eventTypes = {MyResponseTimeRecord.class}) public void newResponseTime(final MyResponseTimeRecord rtRecord) { ... super.deliver("out", rtRecord); } }

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 14 / 19

slide-23
SLIDE 23

1

Kieker’s Pipes and Filters API

2

Kieker.WebGUI

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 15 / 19

slide-24
SLIDE 24

Specification / Project Goals

Kieker.WebGUI

Initial (coarse) specification / project goals

  • Web application for the analysis
  • Tool to assemble and execute an analysis

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 16 / 19

slide-25
SLIDE 25

Specification / Project Goals

Kieker.WebGUI

Initial (coarse) specification / project goals

  • Web application for the analysis
  • Tool to assemble and execute an analysis

Current Specification

  • Multi-user web application with integrated user management
  • Management for the analysis projects
  • Visual analysis editor
  • Cockpit editor with cockpit / dashboard

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 16 / 19

slide-26
SLIDE 26

Current State

Kieker.WebGUI

  • Is currently developed in an iterative way
  • Project management implemented
  • User management implemented
  • Visual analysis editor
  • Execution of analyses possible

IUserDAO DerbyUserDAOImpl IProjectDAO FSProjectDAOImpl IUserService UserServiceImpl IProjectService ProjectServiceImpl ACManager Converter Beans JSF JSF Web Layer Service Layer Persistence Layer Domain and Common Objects Apache Derby FS / JCR

Kieker.WebGUI Architecture

Figure : Current Architecture

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 17 / 19

slide-27
SLIDE 27

Demonstration

Kieker.WebGUI

Live Demonstration

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 18 / 19

slide-28
SLIDE 28

Conclusion

Conclusion

Summary

  • Kieker’s pipes-and-filters API
  • Different assembly and execution methods
  • Kieker.WebGUI: Goals and Demo

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 19 / 19

slide-29
SLIDE 29

Conclusion

Conclusion

Summary

  • Kieker’s pipes-and-filters API
  • Different assembly and execution methods
  • Kieker.WebGUI: Goals and Demo

Next Steps

  • Visual and interactive cockpit
  • Refinement and refactoring of existing code
  • Improve configuration possibilities
  • User manual and screencast
  • Textual DSL for kax files

Kieker.WebGUI (Beta) included since Kieker 1.6 http://kieker-monitoring.net

Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 19 / 19