Why Zapcat?


This page explains why Zapcat exists and what problem it attempts to address.

Technical Reasons

Using Zapcat instead of the many available command line utilities to query JMX saves resources on the monitored machine. Zapcat runs inside the JVM and there is no need to start a separate process for each JMX query.

In the case of Zabbix, it also removes the need to configure and maintain each of the agents to understand JMX. Instead, Zapcat acts as an agent itself and it has practically no configuration. All configuration is done inside Zabbix. This means that switching an existing Zabbix instance over from using command line utilities not only saves machine resources, but it also saves you time.

Developers and System Administrators

When Sun announced that JMX would be a standard part of the Java platform I was excited. This would allow Java developers to instrument their applications and system administrators to use that instrumentation to monitor Java applications using their existing tools and knowledge. JMX would be shared between all the parties involved in building and running serious applications.

Today, a few years after Sun has come through on her promise, JMX has not taken the flight that I had hoped and expected it would. The worlds of the developers and system administrators are still safely separated. Co-operation often takes the form of to and fro demands, design documents and acceptance criteria.

What I believe goes wrong here is that each world is trying to solve the complex problem of monitoring applications while staying in their own domain. Each party remains true to the language spoken in their kingdom, demanding that the other party closes the gap. The Java developers build tools that look and act like monitoring tools, and the system administrators script away at the application’s log files to gather the statistics they think may be important.

Closing the Gap

I have no illusion that Zapcat might close the philosophical gap between developers and system administrators. What I hope to achieve is that here and there, developers and system administrators find that Zapcat helps them work more closely, and that it helps them deliver a better experience for their end users.

To achieve that, I have designed Zapcat to straddle the two worlds. On one end, it is a simple Java object that uses standard Java API’s and blends well into web applications. On the other end it speaks the protocols that Zabbix uses to gather statical data. On top of Zapcat sits JMX as a common language to speak.

Co-operating Using Zapcat

When Zapcat is introduced into a project, Java developers and system administrators get a common enemy: JMX and its arcane syntax.

For Java developers, the introduction of Zapcat means that they will have to learn about JMX beyond the tired old ‘hello world’ mbean. They will have to start thinking about what statistics say something about the wellness of their application.

For system operators, this also means learning about JMX. They will have to learn what data actually makes sense to look at when it comes to monitoring a Java application.

On the plus side, both parties will find it easier to talk about the application. JMX serves as the common vocabulary. It is up to the participants to hone the language and make it work for them.

Obviously, what does not count as co-operation is system administrators ordering the developers to deliver a design document that states what attributes on what beans should be monitored. The same goes for Java developers stating that monitoring the application is now completely outside their responsibility “because it has JMX”.

Applications are complex beasts and there is only one way to get them to run smoothly for extended periods of time. You’ll have to combine the experience of the system administrators with the in-depth knowledge that the Java developers have. There is not a tool in the world that can replace actually sitting down and listening to one another.

photo: Sanja Gjenerohttp://www.sxc.hu/profile/lusi
if you find this interesting, terrible or just would like to know more, e-mail memailto:kjkoster@kjkoster.org?subject=
web statistics
download zapcathttp://sourceforge.net/project/showfiles.php?group_id=209024