I'm proud to announce Zorka - java monitoring agent I was [slowly] implementing over the last year and a half. Zorka offers a bunch of features over then standard java gateway as present in Zabbix. It can be useful for application administrators who need to go beyond what is immediately visible via JMX. Zorka agent embeds itself in monitored JVM (via -javaagent:... option) and communicates with Zabbix server using native Zabbix protocols, so in that regard it is somewhat similiar to how Zapcat used to work, except it works on JVM level, not as manually deployed (or coded) integration.
Quick feature list:
Zorka comes with a bunch of ready to use zabbix templates for Tomcat, JBoss 4/5/6, JBoss 7, Mule ESB, Websphere (PMI), Jetty. There are also common EJB, HTTP, LDAP and SQL templates that use aggregates generated by agent's bytecode instrumentation engine. As for SQL, support for the following JDBC drivers comes out of the box: MSSQL, MySQL, PostgreSQL, Oracle , H2 and DB2. Adding support additional JDBC drivers is as easy as creating additional configuration script that instruments JDBC driver.
Zorka has been in development for more than a year, yet I was refraining from public announcements up to this point (in order to be free to change its APIs, feature sets etc.). As of today, agent has been battle-tested in quite a few production scenarios (trace collector to a lesser degree but it still has been deemed useful by fellow admins where I've installed and configured it). Advanced configuration (especially scripting) can pose problems there were not many people doing more than standard installation and playing with out-of-the-box features, yet I'm ready to help anyone adventurous enough to try scripting zorka agent
and I'm waiting for feedback (what is difficult, what is buggy, what is missing etc.).
You can find binaries and documentation on: http://zorka.io
Source code is available via GitHub repository
There are also mailing lists: Zorka Users, Zorka Developers. Lists have been dormant up until now, this is the first time I'm announcing their existence, feel free to post questions there.
Regards,
rle
Quick feature list:
- extended JMX access/traversal functionalities - as agent works inside monitored JVM, it can quickly access any object reachable from JMX, including non-serializable objects (which is often a problem for remote tools using RMI);
- low level discovery with sophiscated filtering and in-depth traversal (eg. in order to monitor EJB methods in JBoss, one needs to find all object names matching some mask, then descend into 'stats' attribute, then list method names, then find 'count' and 'time' attribute of each listed method etc.);
- bytecode instrumentation - allows for measuring performance for arbitrary methods of arbitrary classes, classifying (eg. SQL calls per database name) and aggregating statistics, presenting aggregated stats via JMX to Zabbix or sending traps to zabbix;
- bean shell integration - agent can be extended with Bean Shell functions that can be directly visible to Zabbix; bytecode instrumentation engine is also fully programmable via Bean Shell, so agent can access arbitrary data from running application (limited by knowledge of application internals);
- advanced tracing/profiling capabilities - this one goes a beyond Zabbix and requires dedicated data collector as Zabbix is not capable of handling this kind of data: it allows for recording and viewing method call trees from requests handled by application (eg. HTTP); this is useful for application administrators and developers to spot problems (bugs, performance problems etc.); I'm not aware of any open source agent capable of this - Zorka is propably the first one;
- many monitoring system integrations - it also talks Nagios (NRPE), syslog and SNMP protocols, yet Zabbix integration is by far most advanced, most frequently used, thus most thoroughly tested;
Zorka comes with a bunch of ready to use zabbix templates for Tomcat, JBoss 4/5/6, JBoss 7, Mule ESB, Websphere (PMI), Jetty. There are also common EJB, HTTP, LDAP and SQL templates that use aggregates generated by agent's bytecode instrumentation engine. As for SQL, support for the following JDBC drivers comes out of the box: MSSQL, MySQL, PostgreSQL, Oracle , H2 and DB2. Adding support additional JDBC drivers is as easy as creating additional configuration script that instruments JDBC driver.
Zorka has been in development for more than a year, yet I was refraining from public announcements up to this point (in order to be free to change its APIs, feature sets etc.). As of today, agent has been battle-tested in quite a few production scenarios (trace collector to a lesser degree but it still has been deemed useful by fellow admins where I've installed and configured it). Advanced configuration (especially scripting) can pose problems there were not many people doing more than standard installation and playing with out-of-the-box features, yet I'm ready to help anyone adventurous enough to try scripting zorka agent
and I'm waiting for feedback (what is difficult, what is buggy, what is missing etc.).You can find binaries and documentation on: http://zorka.io
Source code is available via GitHub repository
There are also mailing lists: Zorka Users, Zorka Developers. Lists have been dormant up until now, this is the first time I'm announcing their existence, feel free to post questions there.
Regards,
rle

Comment