AppDynamics Application Intelligence Platform
3.9.x Documentation
This topic covers the Machine Agent. It does not cover the embedded .NET Machine Agent included with the App Agent for .NET.
The Machine Agent uses a built-in hardware monitor to report metrics and hardware usage data. The hardware monitor is a script that writes data to STDOUT of a process. Once installed, the Machine Agent runs and reports to the Controller once a minute.
Use the Machine Agent to:
By default, the Machine Agent uses the Java Hardware Monitor (Sigar API-based), which may collect more metrics than you need.
For example, you may not want to see backup metrics such as the following, where out of a total 3315 metrics reported by the Machine Agent, 2584 are due to back up disk metrics :
Instead of using the default Java Hardware Monitor the Machine Agent can use the Hardware Monitor which uses an OS specific script file (linux-stat.sh in this case) to capture stats, which will not track backup porcesses.
To stop tracking backup process and limit future disk metrics switch from the Java Hardware Monitor to the Hardware Monitor.
From the command line, enter java -jar <Agent install directory>/machineagent.jar.
This limits the future disks metrics but will not delete the existing metrics.
Which process is the machine agent process?
For Linux
Use the following command to identify which process is running the Machine Agent.
ps -ef | grep machine
For Windows
Process Explorer is a free application from Microsoft that can help you identify the Standalone Machine Agent process. When there are multiple java processes running, hover over a java process in Process Explorer to identify the process that was started using the machineagent.jar file.
For example, in Process Explorer, hover over a process to see information about how the process was started as you can see in the following window:
You can download Process Explorer at http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx.
The Machine Agent monitors a particular machine and not a particular application server. The agent can therefore refer to multiple nodes running on the same machine. A flow map, on the other hand, displays the communication between different nodes during application execution, or the business transaction flow from tier to tier. A Machine Agent cannot be a part of the flow and therefore is not shown in the flow map.
Metrics monitored by the agent are included in the infrastructure health indicator in the dashboards.
The health indicator is driven by health rule violations in the given time period and health rule violations are configured on hardware metrics collected by the Machine Agent. Health rules for all possible metrics are not configured out-of-the-box, so you might want to configure additional health rule according to your requirements. For details see Configure Health Rules.
AppDynamics lists all agents for all business applications.
The reset operation purges all existing metrics for an agent and starts gathering them again. It stops the agent and starts it again.
1. In the Machine Agents window of the Controller UI, select an agent.
2. Click Reset Selected Machine Agent.
If no configuration details are provided during installation, or if the node has been moved to another application, then the Machine Agent appears in the System -> Agents tab as "not associated with any applications". To have the Machine Agent start sending metrics or executing workflow tasks, manually associate it with an application.
The following message in the agent log (<machine_agent_home>/logs/machine-agent.log) indicates that there is no application associated with the agent:
Received Metric Registration request for a machine id:<NNNNN> that is NOT registered to any nodes yet, sending back null response!
1. In the AppDynamics Agents window, select an agent.
2. Click Associate with an Application.
If the machine is hosting servers that belong to multiple business applications, you may need multiple agents.
If there are nodes belonging to multiple business applications, you can run multiple agents each configured to report metrics for a different node, tier, and application.
You cannot "assign" a single Machine Agent to multiple business application per se. A Machine Agent on a specific machine is automatically associated with all nodes running on that machine. A node is associated with a single business application. Therefore an application is associated with the agents of its nodes. By default a Machine Agent inherits the application/tier/node names of the App Agent installed on the same hardware.
If you have an application where a tier has three nodes running on the same machine and you want the Machine Agent to report the metrics for their host machine to each node do the following
-Dappdynamics.agent.uniqueHostId=myTierAHostName1 -javaagent
java -Dappdynamics.agent.uniqueHostId=myTierAHostName1 -jar machineagent.jar
Switch from the Java Hardware Monitor to the Hardware Monitor if you see messages similar to the following in the logs:
[Worker-7] 12 Sep 2014 07:27:49,449 WARN MonitorOutputHandler - Metric Reporter type mismatch for metric [Hardware Resources|Network|Incoming packets/sec] com.singularity.ee.agent.commonservices.metricgeneration.metrics.MetricReporterTypeMismatchException: Aggregator of OBSERVATION already exists for metric Metric Identifier[Hardware Resources|Network|Incoming packets/sec] ID[0]