Navigation



Monitoring Intalio BPM Server

06.20.2010 | 0 Comments

If you don't have only HelloWorld processes on your BPMS, but also business critical processes, you might want to be informed  how well your BPMS is doing.

Generally you can distinguish between infrastructure monitoring and business activity monitoring. This article focuses only on infrastructure monitoring for Intalio BPMS. You can party accomplish this with tools like Nagios or similar applications. But you can only get the information whether your application is running and what resources it uses.


Therefore I have developed a monitoring application which can obtain more informations out of the Tomcat server via its JMX port. It constantly reads and records KPIs from Tomcat and can inform you about the violation of defined thresholds via mail or SMS. Here is the architecture.

 

I have seperated the monitoring application into two parts.

  • The monitoring UI, which is a web application
  • The monitoring backend, which is also a web application, but has no GUI, only webservice interfaces

The reason for this is, that of course you should not have the monitoring application on the server which you want to monitor. But it is nice to have monitoring results on the monitored server.

The monitoring backend has its own webserver for which I have chosen a jetty server.  The backend constantly reads informations from the JMX port of the Intalio BPM server. The monitoring UI can obtain this data via webservice an display a graph.

For each KPI, you can choose if you want to get informed via email and/or SMS on your cellphone in the case of a value succeeding a defined threshold.  Additionaly you get informed if the Intalio BPM server is not reachable any more and if the monitoring application gets shut down.

 Let's have a look at what you can actually see. Here is a graph for the memory usage:

The red line shows the threshold which I have defined for the memory usage. Once the used memory exceeds the 265MB, I will get an email. Additionally the message will appear under the 'Notification' menue. Only after you have marked this notification als 'resolved', you will get new notifications for this KPI.

But as I said in the beginning, other applications like Nagios can give you the same information. So what are KPIs which those applications can't deliver? Here is one example. For measuring the request count of your server, you have to go into the server via JMX port. Here is a result:

 This is a very usefull KPI. You can see how much traffic you have on you server. On Intalio BPM server the counted request include the user interactions via Browser as well as the internal process-step communication via webservices.

For this KPIs I have implemented data-collectors so far:

  • Bytes received
  • Bytes sent
  • Http thread count
  • Memory
  • Request count
  • Request time

But it's really easy to add more data-collectors. I have definied an API, for which you can write new implementations. You can add your implementation to the classpath and define the classname in the database. The data collectors will be loaded via reflection and it will start to collect data immediately.




« Transition between... | Main | LDAP authentication... »

 

Comments:

 

Post a Comment:
  • HTML Syntax: Allowed