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

Edit this configuration file: <machine-agent-home>/extensions/ServerMonitoring/conf/ServerMonitoring.yml

Edit YML Files

When editing YML files: 

  • 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.
    Follow these important YML good practices:
    • 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 a YML 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.
  • To add or edit a regular expression in this file, you should test and verify the regular expression using an online regex tester.
  • Before you make any changes to this file, review the option descriptions on this page, and the comments in the file, carefully before you change a setting.
  • The Agent updates dynamically in response to Agent configuration property changes, so you do not need to restart the Agent after you update this file.

Configurable Server Visibility Settings

SettingDescription

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

volumeMonitorConfig:

maxNumberVolumes

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 process the increased resource requirements.

volumeMonitorConfig:

whitelistSelectorRegex

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

Default = ""

volumeMonitorConfig:

blacklistSelectorRegex

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 blocklist and allowlist regexes, metrics for that network are reported (the allowlist 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.

volumeMonitorConfig:

samplingInterval


Specifies a custom sampling interval for collecting volume metrics on Linux.

Default = 3000

networkMonitorConfig:

maxNumberNetworks

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

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.

When collecting Process metrics on Solaris, the Machine Agent observes and captures only the first 80 characters of each process name and argument list. This means that the Agent considers only the first 80 characters of each process string when it applies allowlists.

Default = ""

networkMonitorConfig:

blacklistSelectorRegex

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 blocklist and allowlist regexes, metrics for that network are reported (the allowlist 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.

When collecting Process metrics on Solaris, the Machine Agent observes and captures only the first 80 characters of each process name and argument list. This means that the Agent considers only the first 80 characters of each process string when it applies blocklists.

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

 defaultProcessClassSelector

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

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.

For 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).

These 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, you should:
    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. You should 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, and then verify that the matching process(es) display in the Controller UI.

samplingInterval

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

Default = 30000 (30 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 regular expression will filter out any processes where the command line ends with a close bracket (']').

For Linux, the process arguments could not be found, which usually indicates a kernel process.

For Windows, no processes should end with a bracket character, so the regex should include all processes on Windows.

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

minLiveTimeMillisBeforeMonitoring

Specifies the minimum amount of time a process must be alive before it is monitored by the Machine Agent. Use this to prevent 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.

The processes that are reported are using the highest CPU and memory that match the regex specified by processSelectorRegex.

Default = 20

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

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

memoryMonitorConfig

Specifies a custom sampling interval for collecting memory metrics on Linux.

Default = 3000

cpusMonitorConfig

Specifies a custom sampling interval for collecting CPU metrics on Linux.

Default = 3000

tag
A list of user-defined tags for the individual server. Use these tags to query, filter, aggregate, and compare related servers. See Server Tagging
Each tag is specified by a key-value pair. You can define tag names up to 127 unicode characters, and tag values up to 255 unicode characters. Define each key on a separate line. All key-value strings should be within single quotes. If a key has multiple values, delineate the list with commas:
<key>: [ <value> ]  
tags:
    'Location': ['NYC', 'Data Center', 'Server Room 7']
    'Environment': ['preProduction']

Docker Visibility Settings

See Configure Docker Visibility.

Process Limits

These additional configurable settings are available in the Controller Admin UI:

  • Total number of processes displayed in the UI for a single query is 5000 processes per call.

  • Total number of processes tracked per account. The default value is 10000 processes per account.

See Controller Settings for Server Visibility.