AppDynamics automatically discovers various entities that make up your web applications, such as app servers, databases, and remote services. Other activity in your application, such as errors, exceptions, async activity, and business transactions are also tracked as AppDynamics entities. You can learn to do some of your own debugging when things don't seem to be showing you exactly what you want to see if you understand the AppDynamics entity life cycle. The discovery life cycle is essentially the same for all entities and involves several discrete steps that can be identified by log entries.
The discovery life cycle contains the following four steps for all entities:
The application name, tier name, and node name are passed to the agent as part of the startup process. When the agent starts up, these entities are "discovered".
The discovery of a Business Transaction (BT) is about detecting where the business transaction begins and instrumenting its entry point.
An exit call from an instrumented node to an uninstrumented node or other service results in backend discovery of database, message queues, web services, and other remote service layers.
Error detection occurs when the agent detects an error or exception in the application.
Registration is the process where each entity is assigned a unique ID by the controller. The agent sends a registration request to the controller to register the discovered entity. The controller assigns a unique id. This ID is then used to identify this entity in agent-controller communication and in the controller database.
As load is applied to the application, the agent starts collection metrics for each entity. Each metric is reported to the controller. The controller registers the metric and assigns an ID. The ID is used in agent-controller communication.
After successful metric registration, the agent periodically reports metrics to the controller.
For business transactions, tiers, and nodes, there is an additional step that occurs at the controller itself. That step is metrics rollup. App agents do not communicate with each other, they report metrics to the controller. The controller aggregates the metrics from all agents/nodes to present a unified overall picture in the Controller UI.
Verify Each Step in the Life Cycle
Using the agent logs it is possible to verify whether each step in the life cycle has occurred successfully.