application monitoring tools

Solution 1:

A couple possibilities:

  1. Most monitoring systems - from Nagios to Zenoss to HP OpenView - allow you to write custom monitors, which may be what you want.

  2. You could write a simpler monitor but make it more monitoring-system-agnostic by exporting it using the customization features of (linux) net-snmpd. These let you export whatever random numbers or strings you want out over snmp; all you have to do is write the small script to fetch the numbers themselves from your app. This could be from log files or a status file that your app writes out periodically or whatever.

Solution 2:

Perhaps your Software as a Service application can output SNMP information, which could be collected by any number of tools (Nagios, Munin, etc.).

Sun Java System Messaging Server is an example of an application that provides a lot of statistics via SNMP. The SNMP Implementation section of their Admin Guide says:

The active information focuses on currently queued messages and open network connections (for example, counts of queued messages, source IP addresses of open network connections), while the historical information provides cumulative totals (for example, total messages processed, total inbound connections).