The Machine Agent collects hardware metrics using default extensions appropriate to specific operating systems. The following table lists the metric collection extension and other information for each supported OS.  In some limited cases, you might want to change the default collection extension to a different one. The table lists the most common reasons for changing the default extension.

Supported environments, observation rates, configurability, some metric names, and definitions are dependent on the extension.

OSDefault Metric Collection ExtensionMetrics CollectedReason to Change the Default ExtensionSupported Environments
Microsoft Windows

JavaHardwareMonitor (if Server Visibility is disabled)

ServerMonitoring (if Server Visibility is enabled)

Basic Metrics

Server Visibility Metrics


To Customize Metrics for Virtual Disks and External Network Traffic

The HardwareMonitoring extension is not recommended on Windows. For more information, see Monitoring Windows -- Guidelines and Important Notes.

Machine Agent Requirements and Supported Environments
LinuxServerMonitoring

Basic Metrics 

Server Visibility Metrics


To Customize Metrics for Virtual Disks and External Network Traffic

Machine Agent Requirements and Supported Environments
Solaris / SunOS


HardwareMonitor (if Server Visibility is disabled)

ServerMonitoring (if Server Visibility is enabled)

Basic Metrics 

Server Visibility Metrics


To Customize Metrics for Virtual Disks and External Network Traffic

Machine Agent Requirements and Supported Environments
AIXJavaHardwareMonitorBasic Metrics SIGAR is not supported for your OS or Linux Distribution

SIGAR


HP-UXJavaHardwareMonitorBasic Metrics SIGAR is not supported for your OS or Linux DistributionSIGAR   
Mac OS XJavaHardwareMonitorBasic Metrics SIGAR is not supported for your OS or Linux DistributionSIGAR  
Solaris

HardwareMonitor  (if Server Visibility is disabled)

ServerMonitoring (if Server Visibility is enabled)

Basic Metrics 

Server Visibility Metrics


To Customize Metrics for Virtual Disks and External Network Traffic

Machine Agent Requirements and Supported Environments
In the case of a time discrepancy issue on a server, not related to daylight savings time, where time is reset manually, the Machine Agent stops reporting. During this interruption, application and server data are not reported. To continue monitoring, the Machine Agent must be restarted.

Java Hardware Monitor

The JavaHardwareMonitor is based on SIGAR (System Information Gatherer And Reporter). This is the legacy method of collecting basic hardware metrics and is used in pre-4.1 versions and for machines running operating systems that are not supported by the ServerMonitoring extension. The following sections list scenarios where you might want to change the extension used to collect the machine metrics.

Change Scenario: Customize Metrics for Virtual Disks and External Network Traffic

By default, the Machine Agent reports metrics for network-mounted and local disks only. Additionally, only the external network traffic is aggregated (to ensure backward compatibility with previous versions of AppDynamics). For OSs that are using the ServerMonitoring extension, you can change to the JavaHardwareMonitor if you want to configure specific disks and network interfaces to be monitored. To customize the behavior of the JavaHardwareMonitor for these metrics, see Configure Metrics for Virtual Disks and External Network Traffic - JavaHardwareMonitor Extension Only.

Metric Observation Rate

The JavaHardwareMonitor, takes observations of metrics in 2 distinct ways.

  • For disk and network metrics: One observation per minute. When you view the count for these metrics in the Metric Browser you see the count of 1 per minute. If you select a 15-minute interval, the count would be 15 times 1 = 15 and so on.
  • For CPU and memory metrics: One observation every two seconds.  When you view the count for these metrics you see the count of 30 per minute. If you select a 15-minute interval, the count would be 15 times 30 = 450 and so on.

Collect Basic Metrics Using JavaHardwareMonitor

Linux and Windows machines use the ServerMonitoring extension by default to report basic metrics. Note that, if you have Server Visibility enabled, falling back to the JavaHardwareMonitor only affects the collection of the basic hardware metrics. The extended Server Visibility metrics are still correctly collected by the ServerMonitoring extension.

To change from ServerMonitoring to JavaHardwareMonitor
  1. Stop the Machine Agent.
  2. Disable basic ServerMonitoring using the following steps:
    1. Edit the ServerMonitoring.yml file from <machine_agent_home>/extensions/ServerMonitoring/conf/.
    2. Change the value of basicEnabled to "false". 
      The basicEnabled setting controls whether the Machine Agent reports basic hardware metrics through the ServerMonitoring extension. Setting this to false enables the JavaHardwareMonitor to report the basic hardware metrics using the legacy SIGAR-based reporting. 
    3. Save the file.
  3. Enable JavaHardwareMonitor using the following steps:
    1.  Edit monitor.xml from <machine_agent_home>/monitors/JavaHardwareMonitor/.
      • For Linux, remove this line: <enable-override os-type="linux">false</enable-override>.
      • For Windows: remove this line: <enable-override os-type="windows">false</enable-override>.
    2. Save the file.
  4. Restart the Machine Agent.

Hardware Monitor

The HardwareMonitor extension is a collection of OS-specific scripts. SunOS and Solaris machines use this extension by default. For the operating systems that use the JavaHardwareMonitor by default, you might want to switch to an OS-specific monitor in some cases. You can switch to the OS-specific monitors in cases where the JavaHardwareMonitor fails to report statistics and you see error logs similar to the following:

[Agent-Scheduler-1] 28 Nov 2013 13:13:55,435 ERROR SigarMinuteTask - Error fetching network statistics for interface [eth0:17]. Blacklisting it.
[Agent-Scheduler-1] 28 Nov 2013 13:13:55,435 ERROR SigarMinuteTask - Error fetching disk i/0 statistics for interface [eth0:17]. Blacklisting it.

Collect Basic Hardware Metrics using HardwareMonitor

To change from JavaHardwareMonitor to an OS-specific monitor
  1. Stop the Machine Agent.
  2. Disable the JavaHardwareMonitor using the following steps:
    1. Locate and edit monitor.xml from <machine_agent_home>/monitors/JavaHardwareMonitor/.
    2. Change the value <enabled>true</enabled> to <enabled>false</enabled>.
    3. Save the file.
  3. Enable the HardwareMonitor for the OS you want to monitor. Use the following steps:
    1. Edit monitor.xml from <machine_agent_home>/monitors/HardwareMonitor/.
    2. Change <enabled>false</enabled> to <enabled>true</enabled>.
    3. Save the file.
  4. Restart the machine agent.

Modify Free Memory Metric Configuration

If your Machine Agent installation is using an OS-specific HardwareMonitor for metric collection, then, by default, the agent reports free memory as the memory that is not used by any process and is not in an I/O buffer or cache. It is more useful for the free memory metric to include memory that is in an I/O buffer or cache but can be available for new processes.

To include the memory in I/O buffers or cache that can be made available to new processes, modify the HardwareMonitor configuration:

  1. Open <machine_agent_home>/monitors/HardwareMonitor/config.sh.
  2. Set REPORT_MEMORY_FREE_AS_MEMORY_AVAILABLE to 1.
  3. Restart the agent.