This page describes Analytics Agent architecture.
Analytics Agent-Side Components
For both SaaS and on-premises Analytics, you need to deploy (or enable) agent-side Analytics components in your application environment.
Legend: Agent Components
AppDynamics App Agent: Analytics relies upon the same app server agents that AppDynamics APM uses. If you use AppDynamics APM, you likely already have these deployed to your monitored applications.
Analytics Agent: The Analytics Agent collects data from one or more app server agents and sends it to the Events Service. It also reads and transmits log data from log files from the local machine. The Analytics Agent is available as a standalone binary or as part of the Machine Agent download.
- As part of the Machine Agent download, the Analytics Agent runs as an extension (also called a monitor).
- A standalone binary distribution of the Analytics Agent is available for Windows environments or other environments that do not have the Machine Agent installed.
Analytics Dynamic Service: The Analytics Dynamic Service extends your app server agent functionality to collect and forward data to the Analytics Agent. It is built into the Java and .NET Agents but is not enabled by default. No additional download is needed.
Browser and Mobile Analytics
To see Analytics data from Browser and Mobile Real User Monitoring, you need to enable those components and enable Analytics. See EUM Server Deployment.
Deploying Analytics Agents to Multiple Nodes
A real-world scenario is unlikely to consist of a single monitored node, as shown in the diagram above. It usually consists of many applications deployed over many hosts.
While the APM app server agents continue to send data to the Controller in the normal way, the Analytics Dynamic Service sends its data to the Analytics Agent. This agent runs in a separate JVM process in the local environment or network, either as part of the Machine Agent or on its own.
There must be at least one Analytics Agent in the monitored environment, although multiple app server agents collecting only transaction data can share a single Analytics Agent, as shown in the diagram below. However, each machine where you want to gather log data must have its own Analytics Agent instance.
In this example, AppServerHost1-3 are collecting only Transaction data, so only app server agents are required. Each one connects to the Analytics Agent on AppServerHost4, where log information is also being collected. The Analytics Agents could also reside on the same machines as each app server agents. On AppServerHost5, only log data is being collected, so an Analytics Agent is also necessary there.
Server Side Components for On-premises
To set up AppDynamics Analytics on-premises, you also need to install the server parts of the system, the AppDynamics Controller, and the Events Service.
The following figure depicts the basic components of an on-premises deployment:
Legend: Server Components
If you are using SaaS EUM, you must use the SaaS Events Service. If you are using the on-premises EUM Server, you must use an on-premises instance of the Events Service.
AppDynamics Controller: The heart of an AppDynamics deployment, the Controller processes and presents the information gathered by the agents.
Events Service: The unstructured document store, it gathers and stores data from the Analytics, Database, and Network Visibility Agents and, if you have End User Monitoring, from EUM Server. It allows the Controller UI to run queries on that data.