In meiner derzeitigen Position als Performance Engineer und in meiner früheren Position als Middleware-Architekt habe ich viel mit Closed-Source-Tools zur Leistungsüberwachung und -analyse gearbeitet (z.B. CA Wily und später AppDynamics). Diese Werkzeuge sind zwar teuer, leisten aber auch meistens gute Arbeit. In demselben Bereich gibt es noch mehr Werkzeuge, die aber alle in der gleichen Preisklasse liegen, soweit ich weiß. Um einige zu nennen: Foglight, Dynatrace, Newrelic, JXInsight, Tivoli Performance Viewer, Compuware Gomez. Um 2006 entstanden mehrere Initiativen zur Entwicklung von Open-Source-Tools für die Leistungsüberwachung in Java-Produktionsumgebungen. Das lag vor allem daran, dass AOP (Aspect Oriented Programming), die Technologie, die in den meisten dieser Produkte verwendet wird, auf dem Markt Aufmerksamkeit erregte und es zu dieser Zeit einige Entwicklungen in diesem Bereich gab. Ich bin gespannt, wie sich die Open-Source-Community für diese Art von Produkten entwickelt. Das Ergebnis ist ziemlich überraschend...
Der Hauptgrund, warum ich mich für Tools in diesem Bereich interessiere, ist, dass ich in der Lage bin, Probleme in einer Abnahme- oder Produktionsumgebung sehr schnell zu erkennen, denn das spart (großen) Unternehmen eine Menge Geld. Der Hauptgrund, warum ich mich für Open-Source-Tools interessiere, ist, dass ich sehen möchte, ob wir in der Lage sind, einen kompletten Open-Source-Java-Hosting-Stack zu erstellen, der für die Produktion in Unternehmen geeignet ist. Ohne eine Menge zusätzlicher Lizenz- und/oder Supportkosten zu verursachen, müssen wir die IT nicht mehr konsolidieren. Wir werden in der Lage sein, das Anwendungshosting für jeden Geschäftsbereich separat zu betreiben und uns auf die kontinuierliche Verbesserung dieses Geschäftsbereichs zu konzentrieren. Ohne große Grenzen zwischen der Geschäftseinheit und der IT. Diese Art von Grenzen werden meist aus Gründen der Kosteneffizienz geschaffen. Denken Sie an Konsolidierungs- und Architekturrichtlinien. Da wir uns keine Gedanken über Lizenzkosten machen müssen, können wir Unternehmen dabei helfen, agiler zu werden. Während einer Wissensaustausch-Sitzung (XKE) bei Xebia haben wir zunächst eine Anforderungsliste erstellt, um Tools aus dem gleichen Bereich auszuwählen und sie vergleichen zu können. Die bisherigen Anforderungen:
- Das Tool sollte Produktions- und Abnahmeumgebungen mit geringem (<= 5%) Ressourcenverbrauch messen.
- Das Tool sollte in der Lage sein, (potenzielle) Probleme in den laufenden Anwendungen so schnell wie möglich aufzuspüren.
- Die Probleme, die erkannt werden sollten: hoher Ressourcenverbrauch bestimmter Codeblöcke, Speicherlecks und der Ort des Lecks, blockierende Codeblöcke, die andere Threads blockieren, langsame Aufrufe von Backends (z.B. Webdienste, Datenbanken).
- Die Umgebungen, in denen die Tools laufen sollen, sind die folgenden Anwendungsserver: IBM Websphere, Oracle Weblogic, JBoss, Tomcat, Glassfish.
- Die Probleme sollten so sichtbar gemacht werden, dass die Grundursache so schnell wie möglich gefunden werden kann. Am wertvollsten ist es, den kompletten Ablauf von Geschäftstransaktionen über alle JVMs hinweg zu sehen, mit Flusszuständen und Messwerten in Echtzeit.
- Das Tool sollte einfach zu installieren sein, d.h. Sie brauchen nur einen einfachen Agenten, der die Verbindung zu einem Server herstellt. Das Ziel sollte sein, die Codebasis unverändert zu lassen.
Vor der Sitzung habe ich einige Hausaufgaben gemacht und im Internet nach dieser Art von Überwachungstools gesucht. Während unseres Wissensaustauschs hatten wir ein Brainstorming und kamen zu der folgenden Liste von Open Source Tools:
| Typ | Name | Aktive Entwicklung | Mögliche Nutzbarkeit? | Kosten | Kommerzielle Unterstützung möglich? |
| OS | Glaskasten | Nein (zuletzt im Nov. 2008) | Ja | - | Vielleicht |
| OS | Infrarot | Nein (zuletzt im Jan. 2010, zwischen 2006 - 2010 keine) | Ja | - | Vielleicht |
| OS | Profiler4j | Nein (zuletzt 2006) | Nein, mehr sind Profiler | - | Nein |
| OS | JAMon/ JARep | Nein (zuletzt 2010) | Nein, keine Laufzeitaspekte, der Code muss geändert werden | - | Nein |
| OS | VisualVM + BTrace | Ja | Nein, läuft nur in JDK6 und höher, keine vollständige visuelle Integration. | Ja | |
| Closed SourceFree in dev. env. | OpenCore | Ja | Ja, aber es ist nicht Open Source, sondern nur kostengünstig in einer Entwicklungsumgebung. | Keine für Entwicklungsumgebung, kommerziell für Produktionsumgebung, siehe JXInsight. | Nein |
Diese Liste ist so vollständig, wie wir sie finden konnten. Wenn Sie weitere und eventuell bessere Open Source Tools kennen, lassen Sie es uns wissen! Nach der Bewertung aller Produkte auf den Listen (nur eine Papierbewertung) sehen wir nur Glassbox und Infrared als echte Open Source-Lösung in diesem Bereich. Aber beide (zumindest Glassbox) werden nicht mehr aktiv weiterentwickelt. Da beide Produkte Open Source sind, ist es natürlich möglich, die Entwicklung an einem der Produkte wieder aufzunehmen. Es ist interessant, warum beide Projekte nicht mehr aktiv sind. Ich habe einige Zeit damit verbracht, den Grund herauszufinden. Das habe ich herausgefunden: Was ist mit Glassbox passiert? Der erste erwähnte Entwickler ist der VP of Engineering von Glassbox David Pickering. Er hat das Unternehmen Glassbox im Jahr 2009 verlassen. Er ist jetzt VP of Engineering bei iWin, einem Unternehmen mit einem anderen Schwerpunkt. Der zweite erwähnte Entwickler ist Ron Bodkin. Er verließ Glassbox im Jahr 2007 und war der Gründer des Unternehmens Glassbox, er wurde VP of Engineering bei Quantcast, also hat sich auch sein Schwerpunkt verschoben. Dies scheint der Hauptgrund dafür zu sein, dass Glassbox nicht mehr aktiv weiterentwickelt wird. Was geschah mit Infrared? Der erste Entwickler, der auf der Liste der Projektmitglieder bei SourceForge genannt wird, ist Binil Thomas, er arbeitete für Tavant Technologies, als Infrared gegründet wurde. Andere Mitglieder auf der gleichen Liste arbeiteten damals ebenfalls für Tavant. Die meisten arbeiten jetzt für andere Unternehmen. Es sieht so aus, als sei Tavant Technologies nicht mehr an diesem Bereich interessiert. Die letzte 2.6RC1-Version von Infrared wurde 2010 erstellt, zu einer Zeit, als Binil für Ronin Capital tätig war. Seit 2011 arbeitet er für AppDynamics, einem kommerziellen Anbieter in diesem Bereich, und es sieht so aus, als wäre dies der Hauptgrund dafür, dass die Version 2.6RC1 nie vollständig veröffentlicht wurde, aber das ist natürlich nur eine Vermutung von mir. Was kommt als Nächstes? Wir werden sowohl Infrarot als auch Glassbox testen, um zu sehen, ob eine von beiden noch eine gute Wahl ist. Wir werden mit Infrared beginnen, weil es in der Vergangenheit das aktivste Projekt war und am längsten, nämlich bis 2010, gepflegt wurde. Danach werden wir sehen, ob eines dieser Produkte ein Konkurrent für die kommerziellen Produkte in diesem Bereich sein kann. Vielen Dank an meine Kollegen Adriaan Thomes und Sander Hautvast, die mir bei der Brainstorming-Sitzung geholfen haben.
Verfasst von
Mark Bakker
Contact



