Configure Docker Visibility
In this section:
Machine Agent Settings for Docker Visibility
Machine Agent makes Docker process-level metrics opt-in and applies the Docker individual-process selector to both Docker API and cgroup collection paths.
| Control | Environment variable | JVM system property | DockerMonitoring.yml setting | Default |
|---|---|---|---|---|
| Docker process-level metrics | APPDYNAMICS_DOCKER_PROCESS_METRICS_ENABLED |
appdynamics.docker.process.metrics.enabled |
processMonitorConfig.processLevelMetricsEnabled |
false |
| Docker individual-process selector | APPDYNAMICS_DOCKER_PROCESS_SELECTOR_REGEX |
appdynamics.docker.process.selector.regex |
processMonitorConfig.processSelectorRegex |
Packaged selector |
Configuration precedence is environment variable, JVM system property, DockerMonitoring.yml setting, and then the packaged default.
Changes to DockerMonitoring.yml are dynamically monitored and normally reload without a Machine Agent restart. Environment-variable and JVM-property changes require a Machine Agent restart.
The following selectors have different purposes:
-
containerMonitoringConfig.containerProcessSelectorRegexselects which containers are monitored. Its Java regular expression must match the entire process command line. A container is selected when at least one process matches. -
processMonitorConfig.processSelectorRegexselects which individual processes inside a selected container contribute process metrics and metadata. It searches each full command line for a match unless the expression is anchored with^and$.
The packaged Docker individual-process selector excludes kernel-style command lines and direct executions whose executable is exactly sleep, curl, or sh, including path-qualified forms such as /usr/bin/sleep and /bin/sh. Wrapper commands and similar executable names, such as sleeping-service, foocurl-worker, and my-sleep, remain eligible.
If an environment-variable or JVM-property selector contains an invalid regular expression, the Machine Agent uses the packaged default selector instead of a lower-precedence configured selector.
When process monitoring remains enabled, setting Docker process-level metrics to false suppresses only PID-specific metric series. Process-class metrics and process metadata continue for eligible processes, subject to selector, minimum-live-time, and monitoring-limit rules. A process excluded by the individual-process selector contributes no process-class metrics, PID-level metrics, or process metadata.
To enable Docker process-level metrics in DockerMonitoring.yml, set:
processMonitorConfig:
processLevelMetricsEnabled: true
Alternatively, set the following environment variable and restart the Machine Agent:
export APPDYNAMICS_DOCKER_PROCESS_METRICS_ENABLED=true
If processLevelMetricsEnabled is absent from an existing DockerMonitoring.yml, Machine Agent uses the default value false. To retain Docker PID-level metrics, explicitly set the property to true.
Starting with Machine Agent 26.8.0, the Docker individual-process selector is enforced. Review existing custom selectors after upgrading. An excluded process contributes no process-class metrics, PID-level metrics, or process metadata. Restoring an older packaged selector does not restore the pre-26.8 behavior because the selector was not enforced previously.
Host process selection is configured independently. For host process settings, see Machine Agent Settings for Server Visibility.
Controller Settings for Docker Visibility
For information about how to configure these settings, see Controller Settings for Machine Agents.
| Property | Description | Default |
|---|---|---|
sim.docker.apmNode.markHistorical.enabled |
Enables configuration to mark the APM node historical when a container running the app agent is stopped. | true |
|
sim.docker.enabled |
Enable the Docker Monitoring feature. | true |
|
sim.docker.machine.container.limit |
Global limit for the number of containers that each Machine Agent can monitor. The effective limit for each agent is a minimum of
You can specify this in the Administration Console as a Controller setting (all accounts) or as an Account setting for individual accounts. 150 is the maximum limit you can specify. |
15 |
|
sim.machines.reuse.enabled |
Reuse SIM Machine entities to handle an ephemeral environment. Support is currently limited to Docker container machines. If set to false |
true |
|
sim.machines.tags.enabled |
Enable or disable the import of Docker tags to the Controller. | true |