assembling and executing kieker analysis configurations
play

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


  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

  2. [Valid] ...bookstoreTracing.Catalog, ... ValidPrinter [Valid] ...bookstoreTracing.Catalog, ... Monitoring Data FSReader MyResponseTimeFilter [Invalid] ...bookstoreTracing.Catalog, ... InvalidPrinter [Invalid] ...bookstoreTracing.Catalog, ... Motivation: Pipes-and-Filters Analysis Grad X Binomial Filter Raw Image Data Split Harris Corner Detector Interest Points Grad Y Binomial Filter Figure : Interest Point Detection Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 2 / 19

  3. Motivation: Pipes-and-Filters Analysis Grad X Binomial Filter Raw Image Data Split Harris Corner Detector Interest Points Grad Y Binomial Filter Figure : Interest Point Detection [Valid] ...bookstoreTracing.Catalog, ... ValidPrinter [Valid] ...bookstoreTracing.Catalog, ... Monitoring Data FSReader MyResponseTimeFilter [Invalid] ...bookstoreTracing.Catalog, ... InvalidPrinter [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

  4. Kieker’s Pipes and Filters API 1 Kieker.WebGUI 2 Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 3 / 19

  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

  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

  7. ... Filter n Reader 1 Filter 1 Filter 3 Reader 2 Filter 2 History Kieker’s Pipes and Filters API ≤ Kieker 1.4 • Pipes and filters possible — very difficult to use • Only programmatic assembly and execution ���������� ������ ������������������� ��� ���������� Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 5 / 19

  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 ... Filter n Reader 1 Filter 1 Filter 3 Reader 2 Filter 2 Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 5 / 19

  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

  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

  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

  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

  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

  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

  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

  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

  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

  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

  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

  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

  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

  22. Implement Own Plugins Kieker’s Pipes and Filters API @Plugin( name = "Response time filter", outputPorts = { @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

  23. Kieker’s Pipes and Filters API 1 Kieker.WebGUI 2 Nils Christian Ehmke Kieker Pipes-and-Filters API and Web UI November 30, 2012 @ Kiel 15 / 19

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend