Hi, apologies for the threadomancy, but I just dealt with a similar problem and found this thread via search, figured some more information might benefit others.
The default TomCat plugin monitors availability simply by checking if the process is running in the OS process list. It uses this query:
State.Name.eq=java,Args.*.ct=catalina.home
What that does, is grep through the process list looking for instances of java.exe that have catalina in theirs arguments. This is pretty good as a generic way to find instances of TomCat.
However, in my case, I was getting false availability readings because the default setup wasn't even monitoring my instance! The application I wanted to monitor doesn't even run as java.exe, the query above was discovering a development instance that goes up and down all the time independent of my app, so the availability data made no sense.
I'm on a windows box, so I changed the query to:
Pid.Service.eq=<Name_of_my_Windows_Service>
So the plugin now properly monitors only my specific TomCat instance.
The query can be found in the Configuration Properties under the Inventory tab for the Server.
You can test if a query finds your TomCat by doing
<AgentHomeDir>\>jre\bin\java -jar pdk\lib\sigar.jar ps your_query_here