Search code examples
monitoringapmappdynamics

How does AppDynamics (and programs alike) retrieve information


How does AppDynamics and similar problems retrieve data from apps ? I read somewhere here on SO that it is based on bytecode injection, but is there some official or reliable source to this information ?


Solution

  • Data retrieval by APM tools is done in several ways, each one with its pros and cons

    • Bytecode injection (for both Java and .NET) is one technique, which is somewhat intrusive but allows you to get data from places the application owner (or even 3rd party frameworks) did not intend to allow.

    • Native function interception is similar to bytecode injection, but allows you to intercept unmanaged code

    • Application plugins - some applications (e.g. Apache, IIS) give access to monitoring and application information via a well-documented APIs and plugin architecture

    • Network sniffing allows you to see all the communication to/from the monitored machine

    • OS specific un/documented APIs - just like application plugins, but for the Windows/*nix

    Disclaimer : I work for Correlsense, provider of APM software SharePath, which uses all of the above methods to give you complete end-to-end transaction visibility.