After instrumenting Foglight for WebSphere, the JVM / AppServer startup time is excessive
The way JavaEE agent works is we have our set of classes (the "tools" used for "instrumentation") rolled into a jar, and which is loaded at the appServer startup. Our classloading ends here. Now these tools have the ability to "instrument" classes as and when they are loaded.
We do have an overhead where the "tools" (mentioned above) which, inspect your application classes, and checks if it needs to be instrumented, and then does the instrumentation. The fact still remains that there are classes being instrumented. The more you have, the more time it will take.
Use any or all of the methods below. Numbers 1 and 2 are recommend.
Review this document (begining with version 5.2.4)
2. If the customer is unsatisfied or needs help, they should engage PSO
3. Technique that worked in case 669852 (advanced method)
Foglight added an extra 5 minutes on top of the JVM/AppServer took, for a total of over 7 minutes
NOTE: This may not work for all environments
The advanced method is what we followed in this case because we found scope for fine tuning by looking at "debug2"
JavaEE agent logs. From the logs we see log messages alone the line "Inspecting class: <classname>"
If the instrumentor deems this class as one to be instrumented, it goes onto to make changes to these classes.
At times we find that lots of classes were simply inspected and not instrumented (as we found in this customer's env.
though not necessarily on any env). These classes were identified as those logs which says "No modifications made to class: <classname>"
The tricky part here is to identify the correct classes/packages to be excluded. And in excluding these classes from instrumentation,
what we save here is the time taken to inspect these classes which were in any case not instrumented.
Another point to note is that we found such non-instrumented classes in the order of thousands for this customer. Only then excluding
these would have a real effect. So this may not work on any environment, but depends on how many of these "non-instrumented" classes
are found from the log files.
These would be excluded in the instrumentation.config file as follows. The instrumentation.config is in the FMS properties page.
Please note that the instrumentation.config file does require a restart of the application server.
InstrumentedClasses = ClassList (
exclude "com.ibm.ejs.oa." ,
The file is located here:
Navigate to Dashboards | Adminsitration | Agents | Agent Properties |JavaEE-Cartridge | agent_instramentation.config
Look for the section:
# *** Instrumented Classes ***
Make your changes in that section, save the file and restart the application server.