Machine Agent Settings for Server Visibility
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 otherYMLfile, make sure that the modified file meets standardYMLsyntax rules. Follow these importantYMLgood 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
YMLsyntax tester.
- The safest way to edit a setting in a
YMLfile 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
| Setting | Description |
|---|---|
|
basicEnabled |
Indicates whether the Machine Agent should report the basic metrics through the SIM extension. Set this to Default = |
|
volumeMonitorConfig: maxNumberVolumes |
Do not report more than N volumes, where N = Default = 5
Warning: 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 volumeMonitorConfig:whitelistSelectorRegex |
|
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 = Default = 5
Warning: 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 blacklistSelectorRegex 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.*" |
criticalProcessSelectorRegex |
In some scenarios, it's essential to ensure that certain critical processes are always monitored by the Machine Agent, regardless of their resource consumption or other exclusion criteria. The criticalProcessSelectorRegex Examples: 1. Substring Match: criticalProcessSelectorRegex: "redis|postgres|nginx|mysql|apache2|httpd|java|python|node" • This regex matches any process whose command line contains any of the specified keywords (e.g., redis, postgres, etc.). • Use this format to monitor processes based on partial matches in the command line. 2. Whole Word Match: criticalProcessSelectorRegex: "\b(redis|postgres|nginx|mysql|apache2|httpd|java|python|node)\b" • This regex ensures that only exact matches of the process names are considered critical. • Use this format to avoid partial matches and ensure the entire word matches (e.g., redis but not redis-server).
Note:
|
|
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 For example:
The Machine Agent assigns a process to a class as follows:
These steps outline the recommended workflow for updating this list:
|
|
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 |
Specifies the regular expression used to select host processes for monitoring. The regular expression is evaluated against the full command line used to start each process. In ServerMonitoring.yml, the setting is configured as The configuration precedence is:
Changes to ServerMonitoring.yml are dynamically monitored and normally reload without a Machine Agent restart. Changes to the environment variable or JVM system property require a Machine Agent restart. On Unix-like hosts, the packaged selector excludes kernel-style command lines and direct executions whose executable is exactly If an environment-variable or JVM-property selector contains an invalid regular expression, the Machine Agent uses the packaged selector instead of a lower-precedence configured selector. The host process selector operates independently from Docker process controls. A host process excluded by the selector produces no process-class metrics, PID-level metrics, or process metadata. Disabling host PID-level metrics suppresses only PID-specific metric series. Process-class metrics and process metadata continue for eligible processes when process monitoring and Server Visibility remain enabled. For the separate host PID-level metrics setting, see Machine Agent Configuration Properties. Default: Packaged selector. |
|
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 Default = 20
Warning: 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']
|
| urlMonitorConfig | Specifies a list of URLs to be monitored and a custom sampling interval for collecting URL metrics on Linux. For example:
CODE
|
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.