AppDynamics Extension for Linux Monitoring

This extension works only with the standalone machine agent.

Use Case

The Linux monitoring extension gathers metrics for a Linux machine and sends them to the AppDynamics Metric Browser.

Pre-requisites

  1. Before the extension is installed, the prerequisites mentioned here need to be met. Please do not proceed with the extension installation if the specified prerequisites are not met.

Installation

  1. Download and unzip the LinuxMonitor zip file into the <machineagent install dir>/monitors/ directory.
  2. Configure the extension by referring to the below section.
  3. All metrics to be reported are configured in metrics.xml. Users can remove entries from metrics.xml to stop the metric from reporting.

Please place the extension in the “monitors” directory of your Machine Agent installation directory. Do not place the extension in the “extensions” directory of your Machine Agent installation directory.

In the AppDynamics Metric Browser, look for: Application Infrastructure Performance | <Tier> | Individual Nodes | <Node> | Custom Metrics | Linux (or the custom path you specified).

Configuration

Note : Please make sure not to use tab (\t) while editing yaml files. You can validate the yaml file using a yaml validator

  1. Configure the Linux Extension by editing the config.yml file in <MACHINE_AGENT_HOME>/monitors/LinuxMonitor/.
  2. The metricPrefix of the extension has to be configured as specified here. Please make sure that the right metricPrefix is chosen based on your machine agent deployment, otherwise this could lead to metrics not being visible in the controller.
  3. Configure the path to the config.yml file by editing the in the monitor.xml file in the <MACHINE_AGENT_HOME>/monitors/LinuxMonitor/ directory. Below is the sample

     <task-arguments>
         <!-- config file-->
         <argument name="config-file" is-required="true" default-value="monitors/LinuxMonitor/config.yml" />
          ....
     </task-arguments>
    
  4. The network file mounts to be monitored are configured in config.yml as shown below:

    mountedNFS:
          - fileSystem: "/dev/sdb"
            displayName: "NFS1"
          - fileSystem: "/dev/sda"
            displayName: "NFS2"
    
  5. filters: Filters for disk, CPU metrics can be configured in config.yml to fetch data only for particular entities. Be default, all entities are set to report.

Restart the Machine Agent after configuring config.yml as mentioned above.

Metrics

Metric Category: CPU
Metric NameDescription
niceniced processes executing in user mode
iowaitwaiting for I/O to complete
systemprocesses executing in kernel mode
idletwiddling thumbs
irqservicing interrupts
softirqservicing softirqs
CPU cores (logical)Number of CPU cores
Metric Category: disk
Metric NameDescription
I/Os currently in progressCurrent I/O operations
reads completed successfullyNumber of successfull reads
reads mergedReads merged
sectors readSectors read
sectors writtenSectors written
time spent doing I/Os(ms)time in ms spent doing I/Os
time spent reading(ms)time in ms spent reading
time spent writing(ms)time in ms spent writing
writes completedNumber of writes completed
writes mergedNumber of writes merged
Avg I/O Utilization %Percentage of CPU time during which I/O requests were issued to the device
Metric Category: Disk Usage
Metric NameDescription
size (MB)size (MB)
used (MB)used (MB)
available (MB)available (MB)
use %use %
Metric Category: file
Metric NameDescription
agelimitAge limit
fhallocfhalloc
fhfreefhfree
unusedunused
Metric Category: load average
Metric NameDescription
load avg (1 min)Load average 1 Minute
load avg (5 min)Load average 5 Minute
load avg (15 min)Load average 15 Minute
Metric Category: memory
Metric NameDescription
activeActive
buffersBuffers
cachedCached
commit limitCommit limit
dirtyDirty
freeFree
inactiveInactive
mappedMapped
real freeReal free
real free %Real free percent
totalTotal
usedUsed
used %Used percent
slabMemory Slab
Metric Category: network
Metric NameDescription
receive bytesReceive bytes
receive compressedReceive compressed
receive dropReceive drop
receive errsReceive errors
receive packetsReceive packets
transmit bytesTransmit bytes
transmit compressedTransmit compresses
transmit dropTransmit drop
transmit errsTransmit errors
transmit packetsTransmit packets
Metric Category: page
Metric NameDescription
page faultPage fault
page inPage in
page outPage out
swap page inSwap page in
swap page outSwap page out
Metric Category: process
Metric NameDescription
blockedBlocked processes
countTotal number of processes
processesNumber of processes
runningRunning processes
runqueueProcesses in run queue
Metric Category: socket
Metric NameDescription
rawRaw sockets
tcpTCP sockets
udpUDP sockets
usedUsed sockets
Metric Category: MountStatus

In addition to the below mentioned metrics for configured mounts, an availability metrics for any external network file system (NFS) mount is reported as well.

Metric NameDescription
1K-blocksNumber of 1-K blocks
used (MB)Used space
available (MB)Available space
used %Percentage of space used
Metric Category: nfsIOStats

The I/O metrics for any external network file system (NFS) mounts are reported:

Metric NameDescription
op/sThis is the number of operations per second.
kB/sThis is the number of kB written/read per second.
kB/opThis is the number of kB written/read per each operation.
avg RTT (ms)This is the duration from the time that client’s kernel sends the RPC request until the time it receives the reply.
avg exe (ms)This is the duration from the time that NFS client does the RPC request to its kernel until the RPC request is completed, this includes the RTT time above.

Credentials Encryption

Please visit this page to get detailed instructions on password encryption. The steps in this document will guide you through the whole process.

Extensions Workbench

Workbench is an inbuilt feature provided with each extension in order to assist you to fine tune the extension setup before you actually deploy it on the controller. Please review the following document on How to use the Extensions WorkBench

Troubleshooting

Please look at the troubleshooting document and make sure that everything is followed correctly.

Support Tickets

If after going through the Troubleshooting Document you have not been able to get your extension working, please file a ticket and add the following information.

Please provide the following in order for us to assist you better.

  1. Stop the running machine agent .
  2. Delete all existing logs under <MachineAgent>/logs.
  3. Please enable debug logging by editing the file <MachineAgent>/conf/logging/log4j.xml. Change the level value of the following <logger> elements to debug.
    • <logger name="com.singularity">
    • <logger name="com.appdynamics">
  4. Start the machine agent and please let it run for 10 mins. Then zip and upload all the logs in the directory <MachineAgent>/logs/*.
  5. Attach the zipped <MachineAgent>/conf/* directory here.
  6. Attach the zipped <MachineAgent>/monitors/ExtensionFolderYouAreHavingIssuesWith directory here .

For any support related questions, you can also contact help@appdynamics.com.

Contributing

Always feel free to fork and contribute any changes directly via GitHub.

Version:

2.1.2

Compatibility:

4.5.0

Tested against:

Ubuntu 16.04

Last Update:

23/10/2019