InspectIT
# InspectIT

inspectIT ist ein Open-Source-Application-Performance-Management-Werkzeug, das eine Diagnose von Java-basierten Anwendungen zur Laufzeit ermöglicht. inspectIT wird von der Competence Area „Application Performance Management“ der Stuttgarter IT-Consultingfirma NovaTec Consulting GmbH entwickelt.

## Funktionalität

inspectIT verfolgt einen „benutzertransaktionsfokussierten Ansatz“. Das Hauptaugenmerk wird auf die Analyse von konkreten Benutzeranfragen gelegt. Für jede Anfrage an das überwachte System erstellt inspectIT einen detaillierten Aufrufsbaum, eine sogenannte invocation sequence. Diese invocation sequence enthält für jeden Aufruf einer instrumentierten Methode die konkreten Laufzeiten. Dadurch lässt sich der Benutzerrequest bis zum Auslöser des potentiellen Performanceproblems nachvollziehen. Durch die automatische und transparente Integration von Anfragen an die Datenbank können auch Probleme in der Datenbankzugriffslogik erkannt und verbessert werden.

inspectIT bietet ab Version 1.8.1 Funktionalität zur Real User Monitoring (RUM) an, mit dem die Interaktion von Endnutzern, mit beispielsweise einer Webseite oder webbasierten Anwendung, überwacht werden können.

## Aufbau

inspectIT besteht aus drei Komponenten:

* Der inspectIT Agent integriert sich in das zu überwachende System, sammelt die Diagnoseinformationen der integrierten Messpunkte und sendet diese an den zentralen inspectIT Server. Der Agent ist hierbei so konzipiert, dass der Overhead in Bezug auf CPU-Zeit und Memoryverbrauch möglichst gering ausfällt.
* Der inspectIT Server, der sogenannte CMR (Centralized Measurement Repository), erhält von den verbundenen Agenten die Diagnoseinformationen und bereitet diese für die Analyse im inspectIT User Interface auf.
* Das inspectIT User Interface basiert auf der Eclipse RCP und ermöglicht dem Anwender die detaillierte Analyse.

## Funktionsweise

Während des Java Classloading der JVM wird ein Java-basierter Agent in den Classloading-Prozess integriert, welcher den Java Bytecode der geladenen Klasse erweitern kann. Anders als Profiler integriert inspectIT Messungen nur an ausgewählten Stellen, so dass der Overhead der Messung gering bleibt. Dieser Ansatz ermöglicht es, Messpunkte transparent in die Anwendung zu integrieren, ohne dass eine Anpassung des Source Codes notwendig ist.

## Entwicklung und Namensgebung

Die Entwicklung von inspectIT begann in der NovaTec GmbH im Jahre 2005, damals noch unter dem Namen NovaSpy. Die erste offizielle Version 1.0 wurde im März 2010 veröffentlicht. Seitdem werden regelmäßig neue Versionen veröffentlicht.

## Open Source

Am 14. August 2015 wurde inspectIT offiziell Open Source gestellt.

