Monitoring of Perl-based webapplications using Kieker



Similar documents
IBM WebSphere Server Administration

WebSphere Server Administration Course

WEBLOGIC ADMINISTRATION

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

Tuning WebSphere Application Server ND 7.0. Royal Cyber Inc.

PDA DRIVEN WAREHOUSE INVENTORY MANAGEMENT SYSTEM Sebastian Albert Master of Science in Technology

Oracle WebLogic Server 11g Administration

How to Design and Create Your Own Custom Ext Rep

11.1 inspectit inspectit

MySQL and Hadoop: Big Data Integration. Shubhangi Garg & Neha Kumari MySQL Engineering

There are numerous ways to access monitors:

No.1 IT Online training institute from Hyderabad URL: sriramtechnologies.com

EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH CERN ACCELERATORS AND TECHNOLOGY SECTOR A REMOTE TRACING FACILITY FOR DISTRIBUTED SYSTEMS

HP OO 10.X - SiteScope Monitoring Templates

GestióIP IPAM v3.0 IP address management software Installation Guide v0.1

Monitoring Remedy with BMC Solutions

Advanced Science and Technology Institute Department of Science and Technology

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

Tutorial: Load Testing with CLIF

Configuring Apache Derby for Performance and Durability Olav Sandstå

RTI Quick Start Guide for JBoss Operations Network Users

Lesson 06: Basics of Software Development (W02D2

Nuxeo, an open source platform for content-centric business applications. Stéfane Fermigier, Nuxeo Laurent Doguin, Nuxeo

Integrating VoltDB with Hadoop

Apache Jakarta Tomcat

Basic TCP/IP networking knowledge of client/server concepts Basic Linux commands and desktop navigation (if don't know we will cover it )

Various Load Testing Tools

Operations and Monitoring with Spring

Middleware integration in the Sympa mailing list software. Olivier Salaün - CRU

A Comparison of Software Architectures for E-Business Applications

Introduction to Big data. Why Big data? Case Studies. Introduction to Hadoop. Understanding Features of Hadoop. Hadoop Architecture.

TIBCO ActiveMatrix BusinessWorks Process Monitor Server. Installation

IMPLEMENTING FORENSIC READINESS USING PERFORMANCE MONITORING TOOLS

Installation Guide for contineo

ITG Software Engineering

Business Application Services Testing

iway iway Business Activity Monitor User's Guide Version Service Manager (SM) DN

LDAPCON Sébastien Bahloul

INSTALLATION OF BLOGGING PLATFORM

Sisense. Product Highlights.

Using ADOBE LIVECYCLE ES4 Connector for MICROSOFT SHAREPOINT

WEBAPP PATTERN FOR APACHE TOMCAT - USER GUIDE

Titolo del paragrafo. Titolo del documento - Sottotitolo documento The Benefits of Pushing Real-Time Market Data via a Web Infrastructure

Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam

ORACLE INSTANCE ARCHITECTURE

WebLogic Server 11g Administration Handbook

Virtual Credit Card Processing System

Plug-In for Informatica Guide

Content Management Systems: Drupal Vs Jahia

Lecture 19: Web Based Management

1 How to Monitor Performance

SQL Databases Course. by Applied Technology Research Center. This course provides training for MySQL, Oracle, SQL Server and PostgreSQL databases.

SAIP 2012 Performance Engineering

JMETER - MONITOR TEST PLAN

LAMP : THE PROMINENT OPEN SOURCE WEB PLATFORM FOR QUERY EXECUTION AND RESOURCE OPTIMIZATION. R. Mohanty Mumbai, India

Building a Scalable News Feed Web Service in Clojure

1. Introduction. 2. Web Application. 3. Components. 4. Common Vulnerabilities. 5. Improving security in Web applications

IBM Software Services for Lotus Consulting Education Accelerated Value Program. Log Files IBM Corporation

EUR-Lex 2012 Data Extraction using Web Services

MADOCA II Data Logging System Using NoSQL Database for SPring-8

High Frequency Trading and NoSQL. Peter Lawrey CEO, Principal Consultant Higher Frequency Trading

Effective Java Programming. efficient software development

LAMP Server A Brief Overview

SOA Solutions & Middleware Testing: White Paper

1 How to Monitor Performance

Application Discovery Manager User s Guide vcenter Application Discovery Manager 6.2.1

Data processing goes big

Open Source and Commercial Performance Testing Tools

Configuration Management of Massively Scalable Systems

CDH installation & Application Test Report

Virtual machine W4M- Galaxy: Installation guide

ManageEngine Exchange Reporter Plus :: Help Documentation WELCOME TO EXCHANGE REPORTER PLUS... 4 GETTING STARTED... 7 DASHBOARD VIEW...

Release Notes LS Retail Data Director August 2011

Oracle Exam 1z0-599 Oracle WebLogic Server 12c Essentials Version: 6.4 [ Total Questions: 91 ]

Application Performance Monitoring of a scalable Java web-application in a cloud infrastructure

HOW TO DEPLOY AN EJB APLICATION IN WEBLOGIC SERVER 11GR1

Chapter 6 Basics of Data Integration. Fundamentals of Business Analytics RN Prasad and Seema Acharya

Layers of Caching: Key to scaling your website. Lance Albertson -- Narayan Newton

SAP Crystal Reports & SAP HANA: Integration & Roadmap Kenneth Li SAP SESSION CODE: 0401

Features Overview Guide About new features in WhatsUp Gold v14

Managing your Red Hat Enterprise Linux guests with RHN Satellite

XTM Web 2.0 Enterprise Architecture Hardware Implementation Guidelines. A.Zydroń 18 April Page 1 of 12

Enterprise Manager Performance Tips

Release System Administrator s Guide

Spotify services. The whole is greater than the sum of the parts. Niklas Gustavsson. måndag 4 mars 13

Technical. Overview. ~ a ~ irods version 4.x

Deployment and Monitoring. Pascal Robert MacTI

SOA, case Google. Faculty of technology management Information Technology Service Oriented Communications CT30A8901.

Supported Platforms. HP Vertica Analytic Database. Software Version: 7.1.x

B M C S O F T W A R E, I N C. BASIC BEST PRACTICES. Ross Cochran Principal SW Consultant

A recipe using an Open Source monitoring tool for performance monitoring of a SaaS application.

Vembu NetworkBackup v3.1.1 GA

CHAPTER 5 INTELLIGENT TECHNIQUES TO PREVENT SQL INJECTION ATTACKS

Novell ZENworks Asset Management 7.5

UForge 3.4 Release Notes

Transcription:

Monitoring of Perl-based webapplications using Kieker Nis Wechselberg Institut für Informatik Christian-Albrechts-Universität zu Kiel 2013-06-28 Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 1 / 37

Outline 1 Motivation 2 Technologies and methods 3 Perl.Kieker implementation 4 Instrumentation 5 Testing 6 Results 7 Conclusion Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 2 / 37

Outline 1 Motivation System Problems with Kielprints Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 3 / 37

Kielprints Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 4 / 37

Project summary Open access system for scientific research data and publications (self archiving) Expanded and heavily modified Version of EPrints Operated at GEOMAR Helmholtz Zentrum für Ozeanforschung Kiel Expanded the original System OceanRep GEOMAR At time of writing about 15.000 documents from more than 1.000 Authors Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 5 / 37

User Perspective Searching for documents on the platform: High Latency, slow responses Slow processing of seraches by division Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 6 / 37

Administration/Data Entry Extreme latency when changing pages in backend Example: Generation of drop-down menus for authors takes more than 10 seconds Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 7 / 37

Outline 2 Technologies and methods Kieker-Framework The programming language Perl Performance monitoring Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 8 / 37

Kieker Monitoring Framework Tool for dynamic software analysis, created at the research group for Software Engineering Recommended tool at SPEC RG Software Repository Monitoring Probe Analysis Plugin Kieker. TraceAnalysis Monitoring Controller Analysis Controller Monitoring Writer Monitoring Record Monitoring Log/Stream Monitoring Reader Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 9 / 37

Kieker Overview Two-part structure: Kieker.Monitoring and Kieker.Analysis Kieker.Monitoring for monitoring and data generation Kieker.Analysis for analysis and presentation Loosely coupled by monitoring log or stream At time of writing no perl support Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 10 / 37

The programming language Perl imperative, platform independent, interpreted First published 1987, recent version 5.16 available Support for objectoriented programming via CPAN available Very free syntax, "There s always one more way to do it" Strong support for string manipulation and regular expressions Direct support in webservers with mod_perl Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 11 / 37

Performance monitoring step-by-step 1 Instrumentation of the code with probes 2 Execution of the system under observation 3 Logging of monitoring data 4 Analysis of generated data Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 12 / 37

Gathered data Application specific data Function calls and dependencies Frequency of calls Response times System data CPU usage RAM usage active processes... Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 13 / 37

Outline 3 Perl.Kieker implementation Architecture Base module Kieker-Data-Bridge Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 14 / 37

Architectural view <<executionenvironment>> Perl Interpreter <<component>> <<library>> Kieker.pm Event <<component>> <<executable>> Perl Applikation Nachrichten <<executionenvironment>> JVM <<component>> <<library>> kieker.jar <<component>> <<executable>> DataBridge.jar Record Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 15 / 37

Perl module <<Interface>> Kieker::Record +new() Kieker::Controlling +instance() +gettrace() Kieker +new() +EntryEvent() Kieker::Util +time() <<Interface>> Kieker::Writer +instance() +genoutput() +getorderindex() +ExitEvent() +write() Kieker::Record::Trace Kieker::Record::OperationEntryEvent Kieker::Record::OperationExitEvent Kieker::FileWriter Kieker::JMSWriter Support for monitoring records, monitoring writer and controlling Minimal subset of records: OperationEntryEvent, OperationExitEvent, Trace Analysis with Kieker.Analysis Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 16 / 37

Kieker in perl Kieker Encapsulation of the functions. Interface Manages Kieker::Writer and Kieker::Controlling instances Kieker::Controlling Manages Trace-IDs and Order-Indices Creates new traces when requested Kieker::Util Currently only manages time sampling Converts Perl-microseconds to nanoseconds Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 17 / 37

Kieker in Perl - Writer Kieker::Writer::FileWriter Writes generated records to file system Only used for early testing Kieker::Writer::JMSWriter Uses STOMP for Java Message Service Connection to Kieker via Kieker-Data-Bridge Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 18 / 37

Kieker in Perl - Records Kieker::Record::Trace Kieker::Record::OperationEntryEvent // OperationExitEvent Event based records for begin and end of execution Record data: function, package, timestamp, trace, orderindex Trace reconstruction in Kieker.Analysis Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 19 / 37

Kieker-Data-Bridge I Kieker Data Bridge Kieker Monitoring Service Container Logging Periodic Sampling Monitoring Controller JMX Interface Service Connector TCP Server... JMS Client Monitoring Writer Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 20 / 37

Kieker-Data-Bridge II By-product at MENGES-project Universal interface for future expansions Multiple connectors (TCP Client, TCP Server, JMS Client, JMS Embedded) Accepts both binary data or text messages Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 21 / 37

Kieker-Data-Bridge III Text messages are seperated by semicolons Records identification via mapping file Amount and type of parameter determined by record type Example: 1;1362747533540734000;6889; 5;EPrints.current_repository;EPrints Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 22 / 37

Outline 4 Instrumentation Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 23 / 37

Automatic instrumentaion Using CPAN module Sub::WrapPackages AOP based creation of wrappers use Sub::WrapPackages packages => [qw(eprints EPrints::*)], pre => sub { use Kieker; my $kieker = Kieker->new(); $\_[0] =~ s/::/./g; $\_[0] =~ /^(.*)\..*?$/; $kieker->entryevent($\_[0],$1); } Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 24 / 37

Outline 5 Testing System Requests Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 25 / 37

Comparison between Systems Virtual machine using Ubuntu 12.04 LTS Database dump from GEOMAR dated 2013-02-07 Comparison between EPrints 3.2 and Kielprints Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 26 / 37

Components VirtualBox <<component>> Apache mod_perl HTTP <<component>> PostgreSQL SQL <<component>> EPrints/Kielprints Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 27 / 37

5 selected requests at admin interface Scetching Use-Case New document 4 "normal" requests, 1 AJAX request Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 28 / 37

Outline 6 Results Dependencies Timing Function calls Most active modules Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 29 / 37

"Call Tree" EPrints Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 30 / 37

Dependency graph EPrints Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 31 / 37

Condensed dependency graph EPrints.DataSet EPrints.Utils EPrints.ScreenProcessor EPrints.Config $ EPrints.Box EPrints.Session EPrints.Storage EPrints.List /cgi/user/home EPrints.URL EPrints.OpenArchives EPrints.Repository EPrints.MetaField EPrints.Database EPrints.XML EPrints.Search EPrints.Apache.Rewrite EPrints.Workflow EPrints EPrints.DataObj EPrints.Script EPrints.Paginate EPrints.Plugin EPrints.Index EPrints.XHTML 28 20854 115 15 73 4 72 48157 316 5 44 13 608 5 17 3 16 2 4 2 2 6 158 156 3 10 8 8 24 12 404 12 3 186 288 4 2 6 33347 39 10 12 16533 12 181 115 176 24 30208 60416 8 87 26 26 1 5 8 6 1 21 1 12 1 20 67 5039 4170 545 16 21 136 5 5 591 4 3 6 3 27 3 6 30 110 1 58 5 10 110 10 21 8 16 5 3 2 2 4 775 4 4 33 3 5 769 4 3 86 2 964 2903 22 896 677 9 2 11 30 7 10 1 10 444 1047 1 1 3 310 283 20 1 13 2 1 1 50 4 1 134 32 48 226 112 24 4 361 357 132 4 4 Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 32 / 37

Timings Request 1 2 3 4 5 EP norm. 402 ms 220 ms 136 ms 413 ms 348 ms EP inst. 15389 ms 15043 ms 18408 ms 23430 ms 7066 ms KP norm. 10270 ms 227 ms 166 ms 13420 ms 18890 ms KP inst. 28505 ms 16623 ms 17414 ms 280927 ms 342662 ms F1 25,5 1,0 1,2 32,5 54,3 F2 1,8 1,1 0,9 11,9 48,5 Table: Timings of Eprints and Kielprints before and after instrumentation Requests 1 Admin homepage after login 2 New Entry 3 File upload (no file provided) 4 Metadata 5 AJAX: More authors Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 33 / 37

Function calls Request 1 2 3 4 5 Sum Eprints 20875 28590 33171 43056 16980 142672 Kielprints 31742 36681 40165 905580 934760 1948928 Factor 1,5 1,3 1,2 21,0 55,1 13,7 Table: Function calls at EPrints and Kielprints Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 34 / 37

Most active modules EPrints Aufrufe Kielprints Aufrufe EPrints.Script.Compiler 30304 EPrints.MetaField 501872 EPrints.Repository 25980 EPrints.DataSet 253493 EPrints.MetaField 18374 EPrints.Repository 243699 EPrints.XML 12486 EPrints.Database 189624 EPrints.DataSet 7488 EPrints.DataObj 156391 EPrints.Utils 7220 EPrints.MetaField.Id 155978 EPrints.XML.EPC 5703 EPrints.Utils 118036 EPrints.DataObj 5439 EPrints.XML 107939 EPrints.Database 3466 EPrints.MetaField.Multilang 45312 EPrints.Script.Compiled 3404 EPrints.Script.Compiler 39550 Table: The 10 most active modules Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 35 / 37

Outline 7 Conclusion Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 36 / 37

Conclusion An monitoring system for Perl based webapplications has been created Comparison between EPrints and Kielprints Discovery: High amount of database queries at Kielprints Discovered optimization options both at EPrints and Kielprints. Nis Wechselberg (CAU Kiel) Perl-Monitoring 2013-06-28 37 / 37