This topic covers the Standalone Machine Agent. It does not cover the embedded .NET Machine Agent included with the App Agent for .NET.
The Standalone 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 Standalone Machine Agent runs and reports to the Controller once a minute.
Use the Standalone Machine Agent to:
- Collect basic metrics from the operating system that display in the hardware tabs of the Node Dashboard. See Monitor Hardware.
- Report the metrics passed in by custom monitors. See Add Metrics with a Monitoring Extension.
- Run remediation scripts for policy actions. See Remediation Actions.
- Run the JVM crash guard feature. See JVM Crash Guard.
Standalone Machine Agent Architecture
Metrics Collected by the Standalone Machine Agent
Limiting Disk Metrics Collection
By default, the Standalone 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 Standalone Machine Agent, 2584 are due to back up disk metrics :
Instead of using the default Java Hardware Monitor the Standalone 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.
To switch from the Java Hardware Monitor to the Hardware Monitor
- Stop the Standalone Machine Agent by stopping its process. See below for info on identifying the agent process.
- Switch from the Java Hardware Monitor to Hardware Monitor as follows:
- Open for edit monitor.xml from <Agent install directory>/monitors/HardwareMonitor/monitor.xmll
- Change <enabled>false</enabled> to <enabled>true</enabled> and then save the file.
- Open for edit <Agent install directory>/monitors/JavaHardwareMonitor/monitor.xml.
- Change <enabled>true</enabled> to <enabled>false</enabled> and then save the file.
- Restart the Standalone Machine Agent.
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?
Use the following command to identify which process is running the Standalone Machine Agent.
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.
Standalone Machine Agent and the Flow Maps
The Standalone 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 Standalone Machine Agent cannot be a part of the flow and therefore is not shown in the flow map.
Standalone Machine Agent and the Server Health Indicator
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 Standalone 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.
Using the Standalone Machine Agent
To access the Machine Agents window
- In the upper right menu bar of the controller UI, click Settings -> AppDynamics Agents.
AppDynamics lists all agents for all business applications.
Resetting a Standalone Machine Agent
The reset operation purges all existing metrics for an agent and starts gathering them again. It stops the agent and starts it again.
To reset (stop/restart) a Standalone Machine Agent
1. In the Machine Agents window of the Controller UI, select an agent.
2. Click Reset Selected Machine Agent.
Associate a Standalone Machine Agent with an Application
If no configuration details are provided during installation, or if the node has been moved to another application, then the Standalone Machine Agent appears in the System -> Agents tab as "not associated with any applications". To have the Standalone 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:
To associate a Standalone Machine Agent with a business application
1. In the AppDynamics Agents window, select an agent.
2. Click Associate with an Application.
To associate multiple agents with multiple business applications
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 Standalone Machine Agent to multiple business application per se. A Standalone 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 Standalone Machine Agent inherits the application/tier/node names of the App Agent installed on the same hardware.
To associate one Standalone Machine Agent agent with multiple JVMs, each running on separate VMs on the same machine
If you have an application where a tier has three nodes running on the same machine and you want the Standalone Machine Agent to report the metrics for their host machine to each node do the following
- Stop the agents for all app agent nodes and the machine agent node associated with the application. If this is is fresh application association ignore this step.
- Start the appserver agent node for each VM (using the app, tier and node details provided in <AppAgent install directory>/conf/controller-info.xml) with the -D JVM arg, in addition to the -javaagent argument as below .
- Start the Standalone Machine Agent with same uniquehostid used for agent nodes associated above.
java -Dappdynamics.agent.uniqueHostId=myTierAHostName1 -jar machineagent.jar
Ensure sure you have not provided application-name, tier-name, and node-name details in <machineagent install directory>/conf/controller-info.xml file.
Switch from the Java Hardware Monitor to the Hardware Monitor if you see messages similar to the following in the logs: