inspectit...because performance matters! Die kostenfreie Performance Management Lösung



Ähnliche Dokumente
... because performance matters! Solution Summary. inspectit. Die kostenfreie Performance Management Lösung

Whitepaper: Die kosteneffiziente Performance Engineering Lösung. Sicherstellung hoher Anwendungsperformance zu niedrigen Kosten

Performance Analyses with inspectit

Guide DynDNS und Portforwarding

Last- und Performancetest mit freien Werkzeugen. Stefan Siegl,

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

SharePoint Demonstration

Avira Management Console Optimierung für großes Netzwerk. Kurzanleitung

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Softwaretechnische Anforderungen zu Opale bluepearl Version 1.0 vom

Applikations-Performance in Citrix Umgebungen

Übung: Verwendung von Java-Threads

Installationsanleitung dateiagent Pro

OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98

Lizenzen auschecken. Was ist zu tun?

Registrierung am Elterninformationssysytem: ClaXss Infoline

Einfach wie noch nie. Der mypackage-ansatz. Ihre Lösung zur automatisierten Client-Bereitstellung. mypackage im Überblick

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

YouTube: Video-Untertitel übersetzen

Speicher in der Cloud

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Avira Server Security Produktupdates. Best Practice

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Urlaubsregel in David

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Grundfunktionen und Bedienung

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing

NEWSLETTER // AUGUST 2015

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Was ist neu in Sage CRM 6.1

Formular»Fragenkatalog BIM-Server«

OP-LOG

! " # $ " % & Nicki Wruck worldwidewruck

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein

Leitfaden zur Installation von Bitbyters.WinShutdown

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Webbasierte Installation des Cisco AnyConnect VPN-Client 3.1 unter Linux

Online Newsletter III

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand

AnNoText. AnNoText Online-Update. Copyright Wolters Kluwer Deutschland GmbH

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Installation SQL- Server 2012 Single Node

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Anleitungen zum KMG- -Konto

Lieber SPAMRobin -Kunde!

white sheep GmbH Unternehmensberatung Schnittstellen Framework

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

LDAP Konfiguration nach einem Update auf Version 6.3 Version 1.2 Stand: 23. Januar 2012 Copyright MATESO GmbH

Kommunikations-Management

4D Server v12 64-bit Version BETA VERSION

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

CADEMIA: Einrichtung Ihres Computers unter Windows


Konto einrichten in 10 Minuten! Nach der Registrierung helfen Ihnen folgende 4 Schritte, absence.io schnell und einfach einzuführen.

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

FTP-Leitfaden RZ. Benutzerleitfaden

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Codex Newsletter. Allgemeines. Programm-Neuerungen: Codex Newsletter. auf unserer Homepage. GAEB-Projekte mit mehreren Stamm-Leistungen:

1. Loggen Sie sich mit Ihrem Benutzernamen in den Hosting-Manager (Confixx) auf Ihrer entsprechenden AREA ein. Automatische Wordpress Installation

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets

Zimmertypen. Zimmertypen anlegen

ANYWHERE Zugriff von externen Arbeitsplätzen

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

1. Zuerst muss der Artikel angelegt werden, damit später die Produktvarianten hinzugefügt werden können.

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Der Support für Windows Server 2003 endet endgültig alles was Ihnen dann noch bleibt ist diese Broschüre.

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Leitfaden zur Anlage einer Nachforderung. Nachforderung Seite 1 von 11 RWE IT GmbH

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Microsoft SharePoint 2013 Designer

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

meine-homematic.de Benutzerhandbuch

Updateanleitung für SFirm 3.1

Content Management System mit INTREXX 2002.

Nachricht der Kundenbetreuung

MailUtilities: Remote Deployment - Einführung

Task: Nmap Skripte ausführen

Tutorial Windows XP SP2 verteilen

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

Datenübernahme easyjob 3.0 zu easyjob 4.0

Anbindung an easybill.de

MetaQuotes Empfehlungen zum Gebrauch von

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Powermanager Server- Client- Installation

Anleitung Captain Logfex 2013

Tutorial -

ICS-Addin. Benutzerhandbuch. Version: 1.0

Transkript:

inspectit...because performance matters! Die kostenfreie Performance Management Lösung

Kostenfreie Überwachung der Anwendungsperformance Ende gut, alles gut? Bis zur Mittagszeit stürzten drei weitere Server ab und die Flut der Beschwerden nahm stetig zu. Der Druck wurde von Stunde zu Stunde größer und das Management beschwerte sich, dass keiner der Mitarbeiter wie erwartet arbeiten konnte. Da die Ursache der Probleme nicht eindeutig identifiziert werden konnte, kam es zu Schuldzuweisungen zwischen allen Beteiligten. Nach zwei Tagen, an denen mit der Anwendung nicht gearbeitet werden konnte, entschloss sich das Management auf das alte System zurückzuwechseln. Zwei Jahre lang wurde an einer verbesserten Version einer betrieblichen Anwendung entwickelt, die auf der neuesten Technologie basierte und die gesammelten Anforderungen der Mitarbeiter mit berücksichtigte. Der Entwicklungsleiter war stolz, verkünden zu können: Die Anwendung wurde erfolgreich ausgerollt und wir gehen ab sofort live. Wir haben es geschafft, Leute, den schwierigen Teil haben wir hinter uns. Nach Monaten voller Überstunden, die erforderlich waren, um den Releasetermin zu halten, war das Entwicklungsteam erleichtert, dass der schwierige Teil nun erledigt schien. Ab dem folgenden Tag würden die Mitarbeiter das neue System verwenden und von den Zusatzfunktionen profitieren. Jede Funktionalität war ausgiebig getestet worden, was kann also schon schiefgehen? Anschließend ausgeführte Performancetests der entwickelten Lösung zeigten, dass die geplante Architektur die tatsächliche Anzahl der Benutzeranfragen nicht bewältigen konnte. Die gesamte Architektur sowie ein Großteil des Programmcodes mussten überarbeitet oder neu implementiert werden. Es verging ein Jahr bis die Software neu ausgerollt wurde diesmal war sie eingehend auf Stabilität und Performance getestet worden. Abgesehen von kleineren Migrationsproblemen lief das System reibungslos und die Mitarbeiter konnten von der neuen Funktionalität und der verbesserten Performance profitieren. Am nächsten Morgen, nachdem der erste Server aufgrund von Speicherproblemen abgestürzt war und sich eine Vielzahl von Mitarbeitern über schlechte Antwortzeiten beklagten, wurde dem Entwicklungsteam langsam klar, dass der schwierige Teil tatsächlich erst begonnen hatte. Performance und Stabilität Sie können von Glück reden, wenn Sie nie ein Szenario wie eingangs beschrieben erlebt haben. Anwendungsperformance und stabilität wird mehr und mehr zum maßgeblichen Faktor für das Scheitern eines SoftwareProjekts. Für Programmfehler sowie für Performance und Stabilitätsprobleme gilt gleichermaßen: Je früher das Problem erkannt wird, desto kostengünstiger wird die Behebung. Unzufriedenstellende Performance bringt oft eine Überarbeitung der gesamten Architektur mit sich. Dies hat zur Folge, dass ganze Komponenten neu geschrieben und optimiert werden müssen. Je später im Entwicklungsprozess Performanceprobleme entdeckt werden, desto stärker sind die Auswirkungen. Diese sind oft sogar um ein Vielfaches höher als bei funkti Seite 2 onalen Programmierfehlern. Noch komplizierter wird die Angelegenheit, wenn die Performanceprobleme mehrere Softwarekomponenten betreffen. Da dies häufig vorkommt, ist die Lösung im Vergleich zu funktionalen Problemen oft komplexer. Software ohne angemessene Prozesse für das Performancemanagement zu entwickeln ist sehr riskant. In der letzten Zeit wurde Application Performance Management zunehmend wichtiger. In vielen Projekten wird jedoch nach wie vor keine geeignete Umgebung zur frühzeitigen Erkennung von Performanceproblemen aufgebaut. Performancewerkzeuge, die detaillierte Informationen über die Anwendung liefern, werden oft erst während der Lasttests oder dem Produktionsbetrieb eingeführt. Dies hat zur Folge, dass erst die gesamte Testumgebung aufgesetzt werden muss, bevor Performanceprobleme behoben werden können. Während unserer Beratungsaufträge treffen wir häufig auf Entwickler,

die verzweifelt auf der Suche nach Werkzeugunterstützung sind, um ihre Komponenten auf Performance zu testen, ohne dass dabei zuviel Overhead entsteht. Oft werden die Wünsche nach Performancewerkzeugen oder Performancetests vom Management wegen der erwarteten hohen Kosten abgewiesen. Nun können Manager und Entwickler erleichtert aufatmen: inspectit der Firma NovaTec wird ihre Probleme lösen und ist zudem kostenlos und frei verfügbar. Sicherstellung der Anwendungsperformance ist nicht teuer Häufig werden die hohen Kosten als Grund angeführt, warum keine Werkzeuge zur Sicherstellung der Performance eingesetzt werden. Während der Projektplanung wird PerformanceManagement oft vergessen oder bis kurz vor den Rollout des Produktionssystems verschoben. Oft reicht die Zeit vor dem Abgabetermin nicht mehr aus, um überhaupt Performancetests auszuführen. Tatsächlich führt die Sicherstellung der Anwendungsperformance auf lange Sicht zu signifikanten Einsparungen. Die Funktionstests sind wie das Application Performance Management vollkommen risikogesteuert. Tatsächlich werden Funktionstests nur aus dem Grund der Risikominimierung ausgeführt: Die Kosten sind höher, wenn diese Probleme erst in der Produktion beim Kunden auftreten. Das Budget für Funktionstests wird direkt aus dem Risiko und den Auswirkungen von Funktionsproblemen abgeleitet. Das gleiche gilt für Performanceprobleme. Es ist naiv zu glauben, dass komplexe Anwendungen automatisch hohe Performance leisten. Auch hier sollte als Teil des Application Performance Management Prozesses das Risiko und die Auswirkungen von Performanceproblemen abgeschätzt werden. PerformanceManagement ist deshalb keineswegs teuer. Es handelt sich vielmehr um einen Ansatz das Risiko von Performanceproblemen zu reduzieren und damit höhere Folgekosten oder das Scheitern des Projekts zu verhindern. Es gibt nicht die Performance ManagementLösung und nicht für jedes Projekt ist ein hoch standardisierter PerformanceManagement Prozess notwendig. Oft wird PerformanceManagement mit Performance Testing verwechselt. Performance Management ist ein Prozess, der mit dem Projektstart beginnt und den gesamten Entwicklungsprozess der Software unterstützt. Performance Tests sind einzelne Schritte innerhalb des Performance Management Prozesses. Es ist von unschätzbarem Wert, wenn bei der Definition von Projektzielen auch Performanceziele definiert werden. Die dabei festgelegten Richtwerte (Anzahl der Benutzer auf dem System, Verteilung der Last, Pläne zur Vergrößerung des Systems nach dem Rollout, detaillierte Informationen darüber, wie lange jeder wichtige Use Case dauern kann) sind eine große Hilfe bei der Konzeption der Softwarearchitektur und während der Implementierung. Anhand dieser Informationen können Tests aufgesetzt werden, die sicherstellen, dass die Performanceziele erreicht werden können. Zur Analyse und Bewertung der Performance sind Werkzeuge erforderlich. Erhältliche Werkzeuge für das Application Performance Management Ein wichtiger Schritt um die Performance Ihrer Anwendung zu prüfen sind Lasttests. Seit einigen Jahren sind geeignete Alternativen zu teuren Lasttesttools verfügbar. Nicht in allen Projekten wird die volle Funktionalität der kommerziellen Werkzeuge benötigt. In solchen Fällen bieten sich kostenlose OpenSourceTools wie JMeter oder Grinder an. Allerdings ist die Generierung von Last auf der Applikation nur der erste Schritt. Die Identifikation der Ursache für ein Performanceproblem und dessen anschließende Optimierung kann ohne Toolunterstützung nicht effizient stattfinden. Das bedeutet: Lasttests ohne zusätzliche Überwachung der Anwendungen ermöglichen keinen detaillierten Einblick in das System und sollten nur als notwendiger erster Schritt für eine tiefer gehende Analyse betrachtet werden. Wenn die Ergebnisse des Lasttests Ihren Anforderungen nicht genügen, wissen Sie zwar dass ein Performanceproblem vorliegt, aber über die Ursachen können Sie oft nur spekulieren. Normalerweise erleben wir an diesem Punkt Vermutungen: Es könnte dieses Datenbankstatement sein. Oder schlimmer noch Abteilungen bzw. Teams beginnen sich gegenseitig zu beschuldigen: Unsere Komponente läuft hervorragend, aber die Komponente X ist immer langsam. Anwendungsüberwachung erlaubt dem Entwickler zu überprüfen, warum die Anwendung langsamer wird. Er kann gezielt den Problembereich finden und weiß welcher Teil der Anwendung gegebenenfalls optimiert werden muss. Bis jetzt waren kostengünstige Monitoring und DiagnoseLösungen nicht auf dem Markt erhältlich. Also musste Seite 3

sich das Projektteam entscheiden, entweder ein kommerzielles Werkzeug zu kaufen oder eigene Überwachungslogik innerhalb des Programmcodes zu implementieren und die Protokolldateien für die Fehlersuche zu verwenden. Leider haben viele Projekte oft einen dritten Weg gewählt und überhaupt keine Form von Anwendungsüberwachung implementiert. Die Performanceanalysetools, die derzeit erhältlich sind, können in zwei Kategorien unterteilt werden: Eigenentwicklungen und teure StandardPerformancelösungen mit überschüssiger Funktionalität. Abbildung 1 Nicht zu empfehlen: Anwendungsüberwachung mittels Logging Warum nicht einfach Performancemessung direkt in den Anwendungscode einbinden? Die Antwort ist einfach: Flexibilität und Wartbarkeit. Das Einfügen von statischen Messpunkten in den Anwendungscode ist unflexibel und schwer zu warten. Je mehr Messpunkte Sie in Ihrer Software integrieren, desto weniger Durchsatz werden Sie erreichen. Das liegt daran, dass das Sammeln der Überwachungsinformationen Zeit kostet. Tatsächlich kann das Einbinden von zu vielen Messpunkten zu einer Situation führen, in welcher die Anwendungsperformance so stark reduziert ist, dass die Überwachung keine genauen Performancedaten liefert. Performanceprobleme können überall in der gesamten Softwarelösung auftreten: In eigenen Komponenten, in Programmbibliotheken anderer Hersteller, innerhalb des verwendeten Applikationsservers, in Datenbankabfragen, im Betriebssystem usw. Wenn Sie Zeitmessungen nur innerhalb ihres eigenen Programmcodes einbinden, werden deshalb nur einige dieser Bereiche abgedeckt. Um Perfor Seite 4 manceprobleme zu isolieren, werden üblicherweise die gesammelten Überwachungsinformationen schrittweise verfeinert. Die beste Lösung ist es zuerst die Funktionalität zu betrachten, die erwiesenermaßen langsamer als erwartet läuft, und Messpunkte in die Komponenten einzubinden, die innerhalb dieser Funktionalität aufgerufen werden. Wenn diese Information nicht ausreicht, verfeinern Sie die Überwachung und fügen Sie weitere Messpunkte ein. Sobald das Performanceproblem isoliert und behoben wurde, sollte zumindest ein Messpunkt zum Zweck der dauerhaften Prüfung beibehalten werden. Anschließend sollte diese Einstellung gespeichert und alle anderen Messpunkte deaktiviert werden. Wenn Sie Code von Hand einfügen um Ihre Anwendungskomponenten zu überwachen, wird die Bearbeitung der Messpunkte sehr viel Zeit in Anspruch nehmen. Außerdem wirkt sich das Einfügen von nicht geschäftsbezogenem Programmcode negativ auf die Les barkeit und damit auf die Wartbarkeit aus. Mit verschiedenen OpenSourceFrameworks kann die Überwachung direkt in den Code integriert werden. Eine oft zu beobachtende Herangehensweise ist, Überwachungspunkte mit Hilfe von Loggingframeworks, wie log4j, einzubinden. Zur Lösung der aktuellen Probleme wurde in den meisten Fällen die Vorgehensweise, quick and dirty gewählt. Wir haben eine Vielzahl von Projekten gesehen, in welchen sich eine solche Herangehensweise der punktuellen Performanceüberwachung zu dem Standardvorgehen im Gesamtprojekt entwickelte. Wir empfehlen daher dringend Performanceüberwachung nicht direkt in den Programmcode einzubinden. Diese Lösung ist unflexibel und kann nicht alle Informationen liefern, die Sie benötigen um Performanceprobleme zu finden. Außerdem kann hiermit normalerweise nur die Ausführungsdauer überprüft werden. Auch muss bei jeder Änderung ein neuer Buildvorgang durchgeführt werden, der theoretisch wieder durch alle Entwicklungsphasen bis zur Produktion gebracht werden muss. Am anderen Ende der Skala liegen professionelle Lösungen für das

PerformanceMonitoring kommerzielle Werkzeuge wie z.b. CA Wily Introscope oder dynatrace. Viele dieser MonitoringTools bieten dem Tester die Funktionalität, die für das Sicherstellen der Anwendungsperformance notwendig ist. Alle Lösungen in diesem Bereich bringen aber entsprechende Kosten mit sich. Diese Werkzeuge stellen weitreichende Funktionalitäten zur Verfügung. Sie sind ausgiebig getestet und unterstützen (fast) alle Umgebungen. Trotzdem können sich manche Projekte ein teures Werkzeug für die Überwachung der Anwendung und das Aufspüren von Performanceproblemen einfach nicht leisten. inspectit bietet Ihnen alles, was Sie für die Performance Diagnose und die Überwachung Ihrer Applikationen benötigen und das alles kostenfrei. inspectit konzentriert sich auf die Kernfunktionalität, die nötig ist um Performanceprobleme zu beheben und stellt transparente Anwendungsüberwachung für Lastund Performancetests zur Verfügung. Wichtige Hinweise für die Überwachung einer Anwendung Es muss unterschieden werden zwischen der Überwachung eines produktiven Systems und dem Aufspüren von Performanceproblemen während der Test oder Entwicklungsphase. Für die Überwachung einer produktiven Anwendung, bei welcher keine größeren Performanceprobleme auftreten, sollten einige wenige Überwachungspunkte definiert werden, die eine Trendanalyse ermöglichen. Das Ziel dieser Methode ist es Abweichungen vom normalen Verhalten zu erkennen und zu beheben, bevor die Benutzer davon betroffen sind. Weniger ist mehr lautet hier die Devise. Die optimale Überwachungskonfiguration enthält so wenig Messpunkte wie möglich, stellt aber dennoch alle Informationen zur Verfügung, die nötig sind, um potentiell auftretende Problem zu finden. Um die Ursache von bestehenden Performanceproblemen genau zu bestimmen, kann die Anzahl der Messpunkte erhöht werden. In diesem Szenario sollte das Werkzeug dabei helfen, Informationen über die internen Abläufe der Anwendung und deren Performancedaten zu liefern und dabei so wenig Overhead wie möglich produzieren. Alle verfügbaren Informationen zu sammeln ist kontraproduktiv, weil dies zuviel Overhead generiert und die erhobenen Daten zu sehr verfälscht, um hilfreich zu sein (dieses Problem haben die meisten ProfilerWerkzeuge). Außerdem kann es schwer sein sich in dieser Informationsflut zurechtzufinden. Es gibt bestimmte entscheidende Informationen, welche immer gesammelt werden sollten, wenn eine Anwendung auf Performance getestet wird. Dies sind zum Beispiel Systeminformationen wie CPU oder Speicherauslastung. Andere Information wie Antwortzeiten von bestimmten Methoden sind applikationsspezifisch. Im Folgenden werden Möglichkeiten von inspectit beschrieben verschiedene Informationen über Ihre Anwendung zu sammeln. Nehmen Sie die Ressourcen unter die Lupe Alle Anwendungen benötigen Ressourcen. Wird die Auslastung einer Anwendung erhöht, führt dies in aller Regel auch zu einer Steigerung der Ressourcenauslastung (oder zur Steigerung der Anzahl verwendeter Ressourcen). Sobald die Anfrage einer bestimmten Ressource deren Verfügbarkeit übersteigt, wird die Anfrage in den Wartestatus versetzt, wodurch sich die Antwortzeit der Anwendung verringert. Durch diese enge Abhängigkeit zwischen der Ressource und der Antwortzeit müssen maßgebliche Ressourcen ebenfalls überwacht werden. Mit inspectit wird die Überwachung von Systemressourcen ohne Konfigurationsaufwand zur Verfügung gestellt. Der inspectit Agent greift direkt auf die Plattform zu, auf der er läuft und sammelt Informationen über das Betriebssystem und über die Java Virtual Machine der Anwendung. Der Plattform Sensor in inspectit überwacht Systemressourcen wie CPUAuslastung, Speicherauslastung, Threads, Klassen und JVM Parameter und liefert so detaillierte Auskunft über den Zustand des Systems zur Laufzeit. Abbildung 2 Systemressourcen (CPU und Memory) mit inspectit überwachen Seite 5

Nehmen Sie die Anwendung unter die Lupe Mit der Anwendungsüberwachung sind Sie in der Lage die Blackbox der Java Virtual Machine zu öffnen und während der Laufzeit Informationen über Ihre Anwendung zu sammeln. Da jede Anwendung unterschiedlich ist, sind die Messpunkte für deren Überwachung ebenfalls unterschiedlich. Der häufigste Ansatz ist es zumindest die wichtigen Schnittstellen Ihrer Komponenten zu überwachen. Abhängig von Ihrem Informationsbedarf können weitere Messpunkte eingefügt werden um weitere Informationen über Ihre Anwendung einzuholen. Mit inspectit können Sie innerhalb Ihrer Anwendung (oder sogar in Bibliotheken anderer Hersteller, sofern sie ebenfalls in Java geschrieben sind) jederzeit Messpunkte auf jede Methode jeder Klasse platzieren. Diese Messpunkte liefern Ihnen die Information über die Häufigkeit und die Ausführungsdauer der jeweiligen Methode. Mit dieser Vorgehensweise können Sie auf einfache Weise die Ausführungshäufigkeit ihrer Komponenten überwachen und sind stets über alle Ausführungszeiten Ihrer Methoden informiert. Realisiert wird dies in inspectit durch den Timer Sensor, der die Ausführungszeit der Methoden einer Anwendung überwacht. Der Sensor liefert sowohl die reine Methoden, als auch die CPUZeit, die eine Methode beansprucht hat. Dies gibt Aufschluss darüber, ob der Grund für die lange Ausführungsdauer der Methode die eigene komplexe Logik war (hohe CPU Zeit) oder ob sie bspw. auf eine parallele Verarbeitung warten musste (niedrige CPU Zeit). Zudem können Sie darüber natürlich erfahren, welche Methoden wie häufig aufgerufen worden sind. Handelt es sich bei einer konkreten Methode beispielsweise um den Zugriff in ein Endsystem, ist die Anzahl potentiell sehr interessant. Indem Sie einen Messpunkt auf die Eintrittsmethode einer Benutzeraktion setzen, können Sie die Antwortzeit von Benutzeranfragen direkt überwachen. Beispielsweise können Sie in Ihrem Onlineshop geschäftkritische Aktionen wie das Hinzufügen von Waren in den Warenkorb überwachen. Diese Informationen werden von inspectit für weitere Analysen in einer Datenbank gespeichert und können in Diagrammen auf dem Client graphisch dargestellt werden. Basierend darauf können Trends erkannt werden und entsprechende Reaktionen erfolgen. Falls Sie verlangsamte Antwortzeiten feststellen, können Sie proaktiv auf das Problem reagieren und versuchen dieses zu beheben, bevor Sie Kunden und Umsatz verlieren. Nehmen Sie den Ausführungspfad unter die Lupe Für tiefer gehende Analysen von Use Cases bzw. Benutzertransaktionen ist es notwendig ein konkretes Verständnis zu entwickeln, was die Anwendung macht und welche Schritte innerhalb des Ausführungspfades langsam sind. Der Pfad umfasst oft eine riesige Baumstruktur und hängt direkt von den Eingabevariablen ab. Häufig führt dies zu Situationen, dass bestimmte Use Cases unregelmäßig verlangsamt auftreten oder zumindest eingabeabhängig große Unterschiede in ihrer Performance aufweisen. In dieser Situation ist die beste Analysemethode jeden Aufruf des Use Cases als unabhängige Informationsmenge zu behandeln. Um dies zu ermöglichen muss das Werkzeug für jeden Aufruf des Use Cases die einzelnen Schritte des Anwendungsablaufs liefern. inspectit hat dieses Konzept durch so genannte Invocation Sequences implementiert. Diese Funktionalität erlaubt es den Startpunkt eines Use Cases zu definieren und verfolgt jeden Aufruf dieser Methode in einer gesonderten Aufrufsequenz. Dadurch erhalten Sie den Aufrufspfad durch die Anwendung inklusive der konkreten Verweilzeiten für diesen Aufruf, der geworfenen Exceptions und der abgesetzen Datenbankanfragen. Abbildung 3 Überwachung der Ausführungszeiten und Aufrufhäufigkeiten einer speziellen Methode Sie erhalten damit die Möglichkeit benutzertransaktionsfokussiert zu analysieren. Die Messpunkte innerhalb einer Invocation Sequence sind keine Durchschnittswerte und eignen sich deswegen perfekt für eine Analyse. Dadurch, dass die Invocation Sequence Ihnen den konkreten Ablauf Seite 6

durch Ihre Applikation zeigt, sehen Sie genau Pro Aufruf und detailliert, von order an welcher Stelle Ihrer CartForCustomer Applikation eine konkrete Aktion ausgebremst wird eine Invocation worden ist. Sequence erzeugt Sequences zur Analyse von Performanceproblemen anbieten. Sie starten beispielsweise in der Daten ist (hoher Max Wert). Basierend auf dieser Query können Sie nun einfach zu der Invocation Sequence (also der konkreten Benutzeraktion) navigieren, in welcher diese Datenbankabfrage durchgeführt worden ist. Nehmen Sie Datenbankabfragen unter die Lupe und kann in der detaillierten Baumansicht leicht analysiert werden. Abbildung 4 Invocation Sequences ermöglichen transaktionsbasierte Sicht auf Anfragen inspectit Sensoren wissen, in welcher Invocation Sequence sie aufgerufen worden sind. Daher kann inspectit Ihnen eine weitreichende Navigationsmöglichkeit von und zu Invocation bankansicht, die alle SQL Abfragen zeigt, die durchgeführt worden sind. In dieser Ansicht (Durchschnittswerte) finden Sie eine Datenbankquery, welche sporadisch sehr langsam In unseren Beratungsprojekten machen wir die Erfahrung, dass unnötige oder ineffiziente Datenbankabfragen zu den häufigsten Performanceproblemen zählen. Viele dieser Probleme entstehen dabei durch zusätzliche Frameworks, die den Datenbankzugriff abstrahieren. Die Entwickler werden die tatsächliche Abfrage, die durch das Framework generiert wird, meist nicht zu Gesicht bekommen. Ein weiteres häufiges Szenario basiert auf der Tatsache, dass die Definition neuer Datenbankabfragen für jedes PersistenzFramework einige Zeit in Anspruch nimmt. Entwickler tendieren Abbildung 5 Navigation von der Datenbankübersicht zur Invocation Sequence Ansicht Seite 7

bewerten, ob Architekturspezifikationen befolgt wurden. Wird ein Invocation Sequence Sensor auf die Eintrittsmethoden der Komponenten einer Anwendung gesetzt kann auf einfache Weise nachvollzogen werden, welche Komponenten jeweils durch die Use Cases aufgerufen wurden. Diese Information ist unschätzbar für Architekten um zu überprüfen, ob die Abhängigkeiten zwischen Anwendungen angemessen ist und um zu verstehen, welche Komponenten derzeit eingesetzt werden um einen Use Case abzubilden. Abbildung 6 Überwachung von Datenbankabfragen mit Aufrufparametern deshalb dazu existierende Abfragen weiterzuverwenden, selbst wenn diese unnötig viele Daten zurückliefern. inspectit erlaubt Ihnen alle Datenbankabfragen nachzuvollziehen, die innerhalb Ihrer Anwendung erstellt und ausgeführt wurden. Standardmäßig ist das DatenbankTracing aktiviert und erfordert keine zusätzliche manuelle Konfiguration. Die gelieferten Informationen erlauben es schnell alle Abfragen auf ihre Ausführungshäufigkeit und ihre Ausführungsdauer zu prüfen. Da alle Daten in einer Datenbank gespeichert werden, können Trends leicht erkannt werden. Nehmen Sie Exceptions unter die Lupe Basierend auf der konkreten Struktur des SQLs in der Sie auch die konkreten Bindvalues für Prepared Statements sehen können können Sie nun analysieren, wieso diese Query problematisch ist. Sie können diese Query auch kopieren und sie mit allen notwendigen Informationen an Ihren Datenbank Administrator schicken. Exceptions, die in ihrem eigenen Programmcode oder einer verwendeten Bibliothek auftreten sind ein wichtiger Hinweis für den Zustand ihrer Anwendung. Es ist mühsam und fehleranfällig die Fehlermeldungen aus den verschiedensten LogDateien zusammenzusuchen, um Probleme ihrer Anwendung zu analysieren. Nehmen Sie die Architektur unter die Lupe Deshalb übernimmt inspectit die Überwachung von Exceptions für Sie. Der Exception Sensor wird aktiv, sobald Fehlerfälle im Programmcode auftreten. Fehler werden so direkt Eine weitere wichtige Aufgabe von Überwachungswerkzeugen ist es zu Außerdem erlaubt inspectit direkt innerhalb einer Invocation Sequence SQLInformationen anzuzeigen, wodurch sich schnell zeigt, ob eine Methode aufgrund eines komplexen und ineffizienten Algorithmus oder der aufgerufenen Datenbankabfragen langsam war. Der Datenbank Sensor zeichnet die Dauer und Struktur aller durchgeführten Datenbankabfragen auf, wenn gewünscht, sogar die konkreten BindParameter von Prepared Queries. Dadurch sind Sie jederzeit in der Lage, SQLs mit langer Laufzeit zu identifizieren und zu analysieren. Seite 8 Abbildung 7 Überwachung von Exceptions

sichtbar gemacht, auch wenn die Applikation diese fälschlicherweise nicht oder falsch behandelt. Das Kenntlichmachen dieser Fehler liefert die Grundlage für die Steigerung der Stabilität der Anwendung. Zusätzlich bietet der Exception Sensor die Funktionalität, Ihnen konkret aufzuzeigen, durch welche Komponenten Ihrer Anwendung die Exception geworfen worden ist. Es zeigt Ihnen damit an, ob die Exception beispielsweise an einer konkreten Stelle abgefangen worden ist oder weitergeworfen wurde. Natürlich erhalten Sie zusätzlich den kompletten StackTrace, um die Fehler genauer analysieren zu können. Natürlich ist auch hier die Navigation aus der Exceptionübersicht der Anwendung zu den entsprechenden Invocation Sequences leicht möglich. Nehmen Sie HTTP Requests unter die Lupe Viele der heutigen Geschäftsanwendungen bieten über Browser Zugriff auf eine Weboberfläche. Zu wissen welche Aktionen eine bestimmte HTTP Anfrage auf dem Backend verursacht hat ist von zentraler Bedeutung für die Analyse einer Webbasierten Anwendung. inspectit bietet deshalb einen fertig konfigurierten HTTP Sensor, der HTTP Anfragen nach der URI gruppiert und in einer URIbasierten Aggregationsansicht darstellt. So ist Abbildung 8 Gruppierung von HTTP Requests zu einem Use Case es einfach möglich bestimmten HTTP Anfragen die entsprechenden Invocation Sequences zuzuordnen und zu analysieren. Da die URI einer HTTP Anfrage nicht immer eins zu eins auf einen bestimmten Use Case abgebildet werden kann, gibt es zusätzlich noch die Möglichkeit im Header des HTTP Requests ein Erkennungsflag eines bestimmten Use Cases für inspectit zu setzen. Dies kann zum Beispiel in einem Lasttesttool wie JMeter konfiguriert werden, um bestimmte HTTP Anfragen einem Use Case zuzuordnen. inspectit fasst diese HTTP Anfragen in der Use Case basierten Aggregationsansicht zusammen. Selbstverständlich kann für weitere Analysezwecke aus beiden Sichten von den Use Cases bzw. den URIs wieder zu den zugehörigen Invocation Sequences navigiert werden. inspectit hilft Ihnen dabei Ihre Performanceprobleme zu lösen NovaTec besitzt jahrelange Erfahrung im Umgang mit Anwendungsperformance. Diese reicht von der Definition und Integration von Performanceprozessen in die Anwendungsentwicklung bis hin zu FireFights in kritischen Projekten. Wir sind stolz werkzeugunabhängige Performanceberatung anzubieten. Um die bestmögliche Performanceberatung anzubieten haben wir geschäftliche Partnerschaften mit den Big Players im Performanceumfeld aufgebaut: dynatrace, AppDynamics und CA Wily Introscope. Unsere Mitarbeiter verfügen über eine langjährige und praxiserprobte Erfahrung mit den gängigen Performancetools. Seit 2007 arbeiten wir bei NovaTec im Bereich Application Performance Management an der Implementierung einer Lösung für die Überwachung der Anwendungsperformance. Wir sind stolz nun offiziell die kostenlose Freigabe der Anwendung inspectit verkünden zu können. Mit inspectit können Sie auf einfache Weise und kostenlos eine Anwendungsüberwa Seite 9

chung in ihren Entwicklungsprozess integrieren. inspectit integriert transparent Messpunkte während des ClassloadingProzesses in Ihre Anwendung. Diese Messpunkte werden später von inspectit Sensoren verwendet um verschiedene Überwachungsinformationen über die Anwendung zu sammeln. Die Überwachung wird durch eine transparente Änderung des Codes ermöglicht. Alle Messlogik basiert auf Sensoren, die außerhalb des geschäftsrelevanten Codes laufen und ist somit von ihrer Anwendung getrennt sind. Das flexible und zuverlässige Kernframework von inspectit erlaubt die einfache Integration weiterer Sensoren. So können neue Sensoren erstellt werden um die Informationen zu sammeln, die Sie benötigen. Eine inspectitinstallation besteht aus mindestens einem Agenten, der auf einer Java Virtual Machine läuft und die Anwendung überwacht. Der Agent sendet die Daten an ein zentrales Repository (CMR), das die Daten persistent speichert. Mehrere Clients können gleichzeitig auf das CMR zugreifen und die gesammelten und aggregierten Messdaten graphisch darstellen. Durch den inspectitagenten werden die Messpunkte innerhalb der überwachten Anwendung ermöglicht. Er muss als JVM Option in das Startskript der Anwendung (bzw. des Applikationsservers) integriert werden und fügt in den konfigurierten Methoden die definierten Sensoren ein. Alle Konfigurationseinstellungen erfolgen in einer Konfigurationsdatei. Das Aufsetzen des CMR und des GUIs ist noch einfacher: Kopieren Sie einfach die entsprechenden Ordner an die gewünschte Stelle und führen Sie die Startskripte aus. User Interface Server App 1 CMR App 2 User Interface App 3 inspectit Agent Abbildung 9 inspectit Komponenten zur Anwendungsüberwachung Seite 10

Interesse? Besuchen Sie www.inspectit.eu und testen Sie die frei verfügbare Version von inspectit. Nehmen Sie unter Kontakt mit uns auf oder rufen Sie uns unter +49 (0)700 5280 5280 an. Sie können auch die u. a. Kontaktinformation verwenden. M.Sc. Stefan Siegl Competence Area Leiter Application Performance Management Projektleitung inspectit stefan.siegl@novatecgmbh.de M.Sc. Patrice Bouillet Techn. Projektleitung inspectit patrice.bouillet@novatecgmbh.de Factsheet inspectit Performanceanalyse muss nicht teuer sein. inspectit bietet Ihnen alles, was Sie für die Performance Diagnose und die Überwachung Ihrer Applikationen benötigen und das alles kostenfrei. Behalten Sie bereits in der Entwicklungsphase die Oberhand im Kampf um Ihre Applikationsperformance, indem Sie die Black Box Ihrer Java Anwendungen mittels inspectit öffnen. Daraufhin wird Ihnen inspectit Einblick in Ihre Applikation ermöglichen und es Ihnen erlauben, Performanceprobleme zu identifizieren und zu lösen. Gewinnen Sie den Performance Wettstreit durch das Integrieren von transparenten inspectit Sensoren ohne Ihren Programmcode zu verändern. Das Integrieren von Messpunkten erfordert nur eine einzige Zeile in einer Konfigurationsdatei. Sparen Sie Zeit, Mühe und Kosten, indem Sie mögliche Engpässe in der Performance erkennen, bevor Sie die Anwendung an Ihren Kunden ausliefern. Je früher Sie Performanceprobleme erkennen und beheben, desto besser. Ihre Anwendungsperformance wird es Ihnen danken. Features Schnelle und einfache Installation und Konfiguration Beginnen Sie mit der Überwachung Ihrer Anwendung ohne kompliziertes und zeitaufwändiges Einrichten von Werkzeugen. inspectit kann innerhalb einer Stunde aufgesetzt werden. Anschließend können Sie Ihre Messpunkte definieren und die Überprüfung starten. Seite 11

Nahtlose Integration inspectit fügt sich nahtlos in eine JavaApplikation ein. Beim Laden von Klassen wird Code für die Messung hinzugefügt, so dass Ihr SourceCode wie bisher bestehen bleibt die Anwendungslogik wird nicht beeinträchtigt. Moderne Technologien und Verwendung offizieller Standards inspectit ist vollständig in Java geschrieben und verwendet bekannte Frameworks und standardisierte Schnittstellen. Alle Komponenten von inspectit basieren auf verbreiteten Frameworks wie Spring, Eclipse RCP, PicoAgent. Dezentrale Architektur Die flexible, dezentrale Architektur erlaubt den Einsatz eines oder mehrerer zentraler Server für das Sammeln, Speichern und Aggregieren der Daten von mehreren Agenten. Für die Analyse können die Daten anschließend mehreren Clients parallel zur Verfügung gestellt werden. Optimiert auf wenig Overhead inspectit wurde mit dem Ziel entwickelt so wenig Overhead wie möglich durch das Monitoring zu generieren selbst in komplexen, geclusterten Umgebungen. Überwachungsfunktionalität inspectit kann Ihre Anwendung in Echtzeit überwachen und maßgebliche Informationen über den aktuellen Zustand Ihrer Anwendung liefern. Flexible Architektur erlaubt schnelle Integration der Sensoren inspectit basiert auf einer flexiblen Agentenarchitektur, die eine nahtlose Integration von Sensoren in den Anwendungscode ermöglicht. Für Ihre Anwendung stellen wir eine Vielzahl von StandardSensoren zum sofortigen Gebrauch bereit. Weitere Sensoren können auf einfache Weise integriert werden. Zur Zeit beinhaltet inspectit folgende Sensoren: Timer Sensor Überwachen Sie auf einfache Weise die Ausführungszeit der Methoden in Ihrer Anwendung um zu sehen, welche Methoden am Längsten dauern. Der Sensor liefert sowohl die gesamte Ausführungszeit, wie auch die reine CPUZeit. Damit kann überprüft werden, ob der Grund für die lange Ausführungsdauer einer Methode die komplexe Logik oder lediglich die Wartezeit auf andere Methoden war. Plattform Sensor Der Plattform Sensor ermöglicht die Überwachung von Systemressourcen wie CPUAuslastung, Speicherauslastung, Threading usw. Datenbank Sensor Performanceprobleme können oft auf ineffiziente oder unnötige Datenbankabfragen zurückgeführt werden. inspectit erlaubt es die Dauer und Struktur von Datenbankabfragen zu überwachen und liefert die Abfrage wie sie an die Datenbank gesendet wird, inklusive aller Aufrufparameter. Invocation Sequence Sensor Verwenden Sie Invocation Sequences um eine detaillierte Auflistung der Aufrufstruktur von Anfragen zu erhalten. Wenn Sie diesen Sensor verwenden erhalten Sie direkt die Information, welche Methoden vom Benutzer aufgerufen wurden und welche Methoden bei der Ausführung der Logik lange gedauert haben. Diese Funktion ist von unschätzbarem Wert um Aufrufe zu prüfen, die nur sporadisch langsam sind und eine tiefergehende Analyse benötigen. Seite 12

Exception Sensor Der Exception Sensor wird aktiv, sobald Fehlerfälle im Programmcode auftreten. Fehler werden so direkt sichtbar gemacht, auch wenn die Applikation diese fälschlicherweise nicht oder falsch behandelt. Das Kenntlichmachen dieser Fehler liefert die Grundlage für die Steigerung der Stabilität der Anwendung. HTTP Sensor Der HTTP Sensor erlaubt eine einfache Zuordnung von HTTP Requests und Use Cases zu Invocation Sequences. Dies ermöglicht eine mächtige Form der Analyse von Webanwendungen. Validierung der Architektur Messpunkte können eingesetzt werden, um Informationen zur Validierung der Architektur zu sammeln. Dies erlaubt Softwarearchitekten zu überprüfen, ob die Entwickler bei der Implementierung die Architekturrichtlinien befolgen. Visualisierung Eine individuell anpassbare Benutzeroberfläche ermöglicht eine einfache Analyse der gesammelten Daten. Unterstützung für alle Java Applikationen auf allen Plattformen inspectit kann alle JavaAnwendungen (JVM Version > 1.3) überwachen und unterstützt alle bekannten Applikationsserver. Die kostenlose Lösung zur JavaÜberwachung inspectit liefert alle notwendigen Funktionen zur Überwachung von JavaAnwendungen. Im Gegensatz zu anderen Monitoring und Diagnosetools ist inspectit kostenlos und frei verfügbar. Seite 13

inspectit 20092011 NovaTec Ingenieure für neue Informationstechnologien GmbH Alle anderen hierin erwähnten Marken oder Produktnamen sind Marken oder eingetragene Marken der jeweiligen Eigentümer. Version 1.2.3 / Juni 2011