PDFs


This page applies to an earlier version of the AppDynamics App IQ Platform.
See the latest version of the documentation.


Skip to end of metadata
Go to start of metadata

On this page:

You can modify the default configuration for Server Monitoring. This page describes the configurable settings and their default values.

Configuration file to edit:  <machine-agent-home>/extensions/ServerMonitoring/conf/ServerMonitoring.yml.

Editing YML Files: Important Notes

Note the following:

  • If you make any changes to ServerMonitoring.yml, or to any other YML file, make sure that the modified file meets standard YML syntax rules. Some important YML good practices include:
    • Do not include any tab characters. Use whitespace characters only to indent fields.
    • Use the exact same number of whitespace characters to indent entries that are on the same level.
    • Use a plain-text editor, not a WYSIWIG editor, to edit the file. Use a monowidth/monospaced font to view the contents.
    • Always save using UTF-8 encoding.
    • Test and verify the edited file using an online YML syntax tester.
  • The safest way to edit a setting in this file is to
    • Copy the line you want to edit and paste the copy into a new line. Make sure that you select, copy, and paste the entire line.
    • Comment out the original line and edit the copy as desired.
  • If you want to add or edit a regular expression in this file, it is good practice to test and verify the regular expression using an online regex tester.
  • Before you make any changes to this file, read the option descriptions below and the comments in the file carefully for the setting you want to change.

Configurable Server Visibility Settings

SettingDescription

volumeMonitorConfig:

maxNumberVolumes

 

(new in 4.2.4) Do not report more than N volumes, where N = maxNumberVolumes.

Default = 5

Changing this setting can affect the resource consumption of your deployment. Before you increase this setting, verify that your application environment and Controller can handle the increased resource requirements.


volumeMonitorConfig:

whitelistSelectorRegex

(new in 4.2.4) Volumes with names that match this regular expression are always reported, up to the maximum specified by maxNumberVolumes.

Default = ""

volumeMonitorConfig:

blacklistSelectorRegex

(new in 4.2.4) Volumes with names that match this regular expression are excluded. This setting is useful for filtering out irrelevant metrics.

If a volume name matches both the blacklist and whitelist regexes, metrics for that network are reported (the whitelist takes priority) up to the maximum specified by maxNumberVolumes.

The default ServerMonitoring.yml file does not include a blacklistSelectorRegex field for volumes. If you want to add one, use the same indentation and formatting as the volumeMonitorConfig:whitelistSelectorRegex field.

networkMonitorConfig:

maxNumberNetworks

(new in 4.2.4) Do not report more than N networks, where N = maxNumberNetworks.

Default = 5

Changing this setting can affect the resource consumption of your deployment. Before you increase this setting, verify that your application environment and Controller can handle the increased resource requirements.


networkMonitorConfig:

whitelistSelectorRegex

 

(new in 4.2.4) Networks with names that match this regular expression are always reported, up to the maximum specified by maxNumberNetworks.

To report metrics for one or more virtual networks, specify a regex that matches the virtual network names.

Default = ""

networkMonitorConfig:

blacklistSelectorRegex

(new in 4.2.4) Networks with names that match this regular expression are excluded. This setting is useful for filtering out irrelevant metrics.

If a network name matches both the blacklist and whitelist regexes, metrics for that network are reported (the whitelist takes priority) up to the maximum specified by maxNumberNetworks.

The default regex excludes virtual networks. To monitor a set of one or more virtual networks, edit whitelistSelectorRegex to include the networks of interest. To monitor all virtual networks, change the blacklistSelectorRegex to an empty string.

Default = "^veth.*|^vnet.*"

 defaultProcessClassSelector

(new in 4.2.4) The default "class selector" based on a class_selector_regex. If this regex is defined, and a match is found in the process command line, the class name is the first group occurrence of that regex in the command line.

Default = ""

 processClassSelectorRegexList

(new in 4.2.4) A list of class_name:regex mappings. If the command line for a process matches regex, the metrics for that process are assigned to class_name. This setting is useful when you want to ensure that high-priority processes get reported, even if the number of defined classes is higher than the maxNumberMonitoredClasses setting.

Here is an example:

processMonitorConfig:

processClassSelectorRegexList :

machineAgentTasks: '.*java.*machineagent.*'

controllerTasks: '.*java.*controller.*'

nextOne: '.*svchost.*'

The Machine Agent assigns a process to a class as follows:

  1. Assign to the first match in processClassSelectorRegexList.
  2. If there is no match for the processClassSelectorRegexList (step1), apply the defaultProcessClassSelector regex to the command line.
  3. If there is no match for the defaultProcessClassSelector regex (step 2), use the process name (truncated if the name exceeds the maxClassIdLength).

The following steps outline the recommended workflow for updating this list:

  1. The default ServerMonitoring.yml file includes an example that is commented out. If you are updating the default list for the first time, it is good practice to
    1. Create a copy of the example. 
    2. Uncomment the copy (remove the <!-- and --> comment tags) and edit it as needed.
  2. Choose the process(es) that you want to monitor on the host machine.
  3. Create a regex to match the process name(s) of interest. It is good practice to test the regex using an online regex validator.
  4. Add the regex to the list. You should order the mappings by priority, highest to lowest. If a command line matches multiple regexes, the first match is used.
  5. Save the ServerMonitoringConfiguration.yml file.
  6. Wait 15 minutes or longer for the updated list to take effect, then verify that the matching process(es) appear in the Controller UI.

samplingInterval

Indicates how often to gather metric data. Units in milliseconds.

Default = 60000 (60 seconds)

maxClassIdLength

Specifies the maximum process class name length. Any process class name that is longer than the specified maximum is truncated. The global maximum of the process class name is 100. If this variable is set to be greater than 100, then the process name is truncated at 100.
 

Default = 50

processSelectorRegex

Contains a regular expression that specifies which processes should be monitored by the machine agent. The regular expression is compared against the full command line that was used to start the process. The default expression filters out 

  • Linux processes for which the arguments could not be found. These are usually kernel processes.
  • Windows processes with blank command lines. 

Default = "^.+[^]]$"

minLiveTimeMillisBeforeMonitoring

Specifies the minimum amount of time a process must be alive before it is monitored by the machine agent. This is useful for preventing the machine agent from being overloaded by monitoring short-lived processes. Units in milliseconds.

Default = 60000 (60 seconds)

maxNumberMonitoredClasses

Specifies the maximum number of process classes that the machine agent monitors. If the number of classes in processClassSelectorRegexList is higher than the maxNumberMonitoredClasses, the agent selects the classes to monitor based on the order of processClassSelectorRegexList (highest-priority processes first). Set this field to 0 to turn off all process monitoring.

For example, assume the following scenario: maxNumberMonitoredClasses = 2 andprocessClassSelectorRegexList has three classes (A, B, and C, in that order). The machine has 25 processes running:

  • Class A has 12 processes
  • Class B has 5 processes
  • Class C has 8 processes

In this scenario the agent sends metrics and metadata for the first two classes, A and B (17 processes in all), to the Controller. Class C is not in the first two listed classes, so these processes are not monitored.

Changing this setting can affect the resource consumption of your deployment. Before you change this setting, verify that your application environment and Controller can handle the increased resource requirements.

Default = 20

basicEnabled

Indicates whether the machine agent should report the basic metrics through the SIM extension. Set this to false to use Sigar to report basic metrics. This setting only affects monitoring on Linux.

Default = true on Linux, false on Windows

defaultDiskSectorSize

Specifies the default sector size (in bytes) for each disk if the machine agent cannot determine the sector size. This value is used to calculate the number of bytes read/written for the disk.

Default = 512

Process Limits

Other configurable settings are available in the Controller Admin UI, for example:

  • sim.processes.query.maxResultLimit: The total number of processes displayed in the UI for a single query is 5000 processes per call.

  • sim.machines.count.maxPerAccount: The total number of processes tracked per account. The default value is 10000 processes per account.

For more information, see Controller Settings for Server Monitoring.

  • No labels