Here are some instrumentation best practices:
- Use APM Studio: there's a new update available on the Update Site, Andreas wrote a new documentation that is awesome!
- Reference your <application>.pbl in the introscope.autoprobe.directivesFile property in your IntroscopeAgent.profile. Relieves you of the need to update the profile.
- Reference your custom pbds in your <application>.pbl. You can add any number of pbs files independently of the profile.
- Separate the TurnOn directives into a <application>-toggles.pbd
- Automate deployment of your custom pdbs and <application>.pbl to your test server (e.g. using ant build.xml)
- Add your APM config files to version control (cvs, subversion, …)
- Automate your (UAT/Prod) agent deployments using existing processes/tools (e.g. application deployment, release automation, software delivery)
- 3 step pbd creation:
- Optional (usually done by CA Services if needed): Implement and test custom nameformatters and tracer, define tracer mappings
- Create (SetFlag) and enable (TurnOn) your tracer group
- Add classes to tracer groups (Identify…)
- From classes in Eclipse (drag & drop, right mouse click – context menu “Introscope”)
- From AutoProbe.log file
- Add methods, tracers and metric names to tracer (Trace…)
- Use TraceComplexMethods... if you don't know what to instrument. Don't ever use TraceAllMethods!
- Optional: add skips (Skip…) to reduce number of instrumented methods/classes
- Evaluate and reduce your instrumentation:
- Monitor only methods that add significant time to a transaction: use search tab on a high level node, search for "Average Response" and enable "Show min.max, count". You get all relevant info in one sortable table!
- Remove (or skip) methods with high invocation count and low (near zero) response time (e.g. getters/setters, utility methods). Focus on methods like execute, processXXX, ...
If you got questions or other best practices to share reply to this thread!