This page describes the Agent configuration properties, including controller-info.xml elements, system property options (on the command line or in the startup script), and environment variables (where applicable). You configure Agent system properties based on your operating system and installation package.

The Agent updates dynamically in response to Agent configuration property changes, so you do not need to restart the Agent. 

System Property Syntax

  • System properties are case-sensitive
  • Values that contain spaces must be enclosed with double-quotes

Reference

.NET Compatibility Mode

You must enable this mode if you want to collect and view Machine or Server metrics on a server with Machine and .NET Agents installed. See .NET Compatibility Mode.

Element in controller-info.xml: <dotnet-compatibility-mode>

System Property: 

-Dappdynamics.machine.agent.dotnetCompatibilityMode

Environment Variable: N/A

Type: boolean

Default: false

Required: This mode is required if you want to collect and view Machine or Server metrics on a server with Machine and .NET Agents installed.

Account Access Key

The account access key used to authenticate with the Controller. This key is generated during installation, and you can locate the key by reviewing the license information in the Controller Settings. See Observe License Usage.

Element in controller-info.xml:  <account-access-key>

System Property: -Dappdynamics.agent.accountAccessKey

Environment Variable: APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY

Type: String

Default: None

Required: Prior to version 4.1, this property was required only for SaaS and multi-tenant Controllers. For versions 4.1 and later, the account access key property is required to authenticate all agent to Controller communications.

Example: -Dappdynamics.agent.accountAccessKey=165e65645-95c1-40e3-9576-6a1424de9625


Account Name

The account name used to authenticate with the Controller. If you are using the AppDynamics SaaS Controller, the Account Name is provided in the Welcome email sent by AppDynamics.

Element in controller-info.xml:  <account-name>

System Property: -Dappdynamics.agent.accountName

Environment Variable: APPDYNAMICS_AGENT_ACCOUNT_NAME

Type: String

Default: None

Required: For AppDynamics SaaS Controller and multi-tenant users, but not for single-tenant mode (the default). When the Agent is registered with an AppDynamics SaaS Controller, features used to run Remediation Scripts are disabled. If you reconfigure the Agent controller-info.xml to register with a non-SaaS or on-premises Controller, the Agent can run local scripts as usual.

Agent Logging Directory

Deprecated. appdynamics.agent.logs.dir should be used instead. Behavior identical to Agent Logs Directory: <appdynamics.agent.logs.dir>/logs/.

System Property: -Dappdynamics.agent.logging.dir

Environment Variable: N/A

Type: String

Default: None

Required: No

Agent Logs Directory

Sets the logs directory for log files for nodes that use this agent installation. If this property is specified, all agent logs are written to <appdynamics.agent.logs.dir>/logs. See Deploy Multiple Machine Agents From a Common Directory when deploying multiple Machine Agents from a common directory. This property overrides the directory specified through the appdynamics.agent.runtime.dir. If appdynamics.agent.logs.dir property is not provided, the logs directory will be created on the same level as the Machine Agent installation folder. No changes are expected in log4j.xml file.

System Property: -Dappdynamics.agent.logs.dir

Environment Variable: N/A

Type: String

Default: None

Required: No

Agent Runtime Directory

Sets the runtime directory for all runtime files (such as logs) for nodes that use this Agent installation. If you specify this property, then all Agent logs are written to <agent-runtime-dir>/logs/node-name. Use when deploying multiple Machine Agents from a common directory. See Deploy Multiple Machine Agents From a Common Directory.

System Property: -Dappdynamics.agent.runtime.dir

Environment Variable: N/A

Type: String

Default: None

Required: No

Container Process Selector Blacklist Regex

Any container with a process matching this regex is ignored and is not registered in the Controller.

System Property: -Dappdynamics.docker.container.process.selector.blacklist.regex

Environment Variable: APPDYNAMICS_DOCKER_CONTAINER_PROCESS_SELECTOR_BLACKLIST_REGEX

Type: String

Default: None

Required: No

Controller Host

This is the host name or IP address of the AppDynamics Controller, for example: 192.168.1.22 or myhost or myhost.abc.com. This is the same host used to access the AppDynamics browser-based user interface.

Element in controller-info.xml:  <controller-host>

System Property: -Dappdynamics.controller.hostName

Environment Variable: APPDYNAMICS_CONTROLLER_HOST_NAME

Type: String

Default: None

Required: If the Enable Orchestration property is false.
If Enable Orchestration is true, and if the Agent is deployed in a compute cloud instance created by an AppDynamics workflow, do not set the Controller host unless you want to override the auto-detected value. See Enable Orchestration Property.

Controller Keystore Filename 

By default, the Agent looks for a Java truststore file named cacerts.jks in the conf directory in the Agent home. Use this property to enable full validation of Controller SSL certificates with a different Java truststore file. See Machine Agent Configuration Properties.

Element in controller-info.xml:  <controller-keystore-filename>

System Property: N/A

Environment Variable: N/A

Type: String

Default: None

Required: No

Controller Keystore Password 

The plain text or encrypted value of the Controller certificate password. To encrypt or obfuscate passwords, see Encrypt Agent Credentials.

Element in controller-info.xml: <controller-keystore-password>

System Property: N/A

Environment Variable: N/A

Type: String

Default: None

Required: No

Controller Port

The HTTP(S) port of the AppDynamics Controller. This is the same port that you use to access the AppDynamics browser-based user interface. If the Controller SSL Enabled property is set to true, specify the HTTPS port of the Controller; otherwise, specify the HTTP port. See Controller SSL Enabled Property.

Element in controller-info.xml:  <controller-port>

System Property: -Dappdynamics.controller.port

Environment Variable: APPDYNAMICS_CONTROLLER_PORT

Type: Positive Integer

On-premises Default: port 8090 for HTTP and port 8181 for HTTPS

SaaS Default: For the SaaS Controller Service, use port 443 for HTTPS connections.

Required: If the Enable Orchestration property is false.

If Enable Orchestration is true, and if the Agent is deployed in a compute cloud instance created by an AppDynamics workflow, do not set the Controller port unless you want to override the auto-detected value. See Enable Orchestration Property.

Controller SSL Enabled 

Specifies whether the Agent should use SSL (HTTPS) to connect to the Controller. If SSL Enabled is true, set the Controller Port property to the HTTPS port of the Controller. See Controller Port Property.

Element in controller-info.xml:  <controller-ssl-enabled>

System Property: -Dappdynamics.controller.ssl.enabled

Environment Variable: APPDYNAMICS_CONTROLLER_SSL_ENABLED

Type: Boolean

Default: false

Required: No

Create Node if Absent

Force the Machine Agent to create an APM node when the Agent registers with the Controller. 

Element in controller-info.xml: <create-node-if-absent>

System Property: -Dappdynamics.machine.agent.registration.createNodeIfAbsent

Environment Variable: N/A

Type: Boolean

Default: true

Required: No. If you set the app/tier/node in your controller-info.xml file (existing upgrades or by accident), you can prevent the Machine Agent from creating APM nodes by setting this flag to false. See Machine Agent Installation Scenarios.

Enable Docker Visibility

To enable Docker Visibility on the Agent, manually add the docker-enabled element in controller-info.xml setting, and set the flag to true

Element in controller-info.xml: <docker-enabled>true</docker-enabled>

System Property: -Dappdynamics.docker.enabled

Environment Variable: APPDYNAMICS_DOCKER_ENABLED

Type: Boolean

Default: false

Required: Yes

Enable HTTP Listener

When set to true, this property enables the Machine Agent HTTP listener. You can send metrics to the Machine Agent using its HTTP listener. You can report metrics through the Machine Agent by making HTTP calls to the Agent instead of piping to the Agent through sysout.

Element in controller-info.xml: N/A

System Property: -Dmetric.http.listener

Environment Variable: N/A

Type: Boolean

Default: false

Required: No

Enable Orchestration

Enables the Machine Agent workflow task execution when set to true. It also enables auto-detection of the Controller host and port when the app server is a compute cloud instance created by an AppDynamics orchestration workflow. In a cloud computing environment, auto-detection is necessary for the Create Machine tasks in the workflow to run correctly. The Machine Agent polls for task executions only when orchestration is enabled. If the host machine on which this Agent resides is not created through AppDynamics workflow orchestration, this property should be set to false. See Controller Host Property and Controller Port Property.

Element in controller-info.xml:  <enable-orchestration>

System Property: N/A

Environment Variable: N/A

Type: Boolean

Default: false

Required: No


Force Default SSL Certificate Validation 

Used to override the default behavior for SSL validation.

This property has three states:

true: Forces the Agent to perform full validation of the certificate sent by the Controller, enabling the Agent to enforce the SSL trust chain. Use this setting when a public certificate authority(CA) signs your Controller SSL certificate.

false: Forces the Agent to perform minimal validation of the certificate. This property disables full validation of the Controller's SSL certificate. Use this setting when full validation of a SaaS certificate fails.

unspecified: The validation performed by the Agent depends on the context:

    • If the Agent is connecting to a SaaS Controller, full validation is performed.
    • If the Agent is connecting to an on-premises Controller and the cacerts.jks file is present, then full validation is performed using the cacerts.jks file.
    • If the Agent is connecting to an on-premises Controller, and there is no cacerts.jks file, then minimal validation is performed 

Element in controller-info.xml: N/A

System Property: -Dappdynamics.force.default.ssl.certificate.validation

Environment Variable: N/A

Type: Boolean

Default: None

Required: No

Enable Dynamic Monitoring Mode (DMM)

When this option is enabled, the Agent reports metrics based on the Dynamic Monitoring Mode specified for that Agent in the Controller. When this option is disabled, the Agent reports all metrics based on its local configuration; DMM settings on the Controller have no effect. Disabling DMM on an Agent is recommended only for mission-critical servers and other machines for which you are sure you want to collect all available metrics at all times. See Dynamic Monitoring Mode and Server Visibility.

Element in controller-info.xml: <dynamic-monitoring-enabled>

System Property: appdynamics.machine.agent.dynamicMonitoring.enabled

Environment Variable: APPDYNAMICS_DYNAMIC_MONITORING_ENABLED

Type: Boolean

On-premises Default: True

SaaS Default: True

Required: No


HTTP Listener Port

To enable the Machine Agent HTTP listener, you must also specify the HTTP listener port.

Element in controller-info.xml: N/A

System Property: -Dmetric.http.listener.port

Environment Variable: N/A

Type: Numeric

Default: 8293

Required: Only if the HTTP listener is enabled.

Log4j

Logging functionality is done via Apache Log4j2. Use this property to provide a custom location for log4j configuration. In this case, you need to ensure that all file destinations are valid and contain absolute paths.

Element in controller-info.xml: N/A

System Property: -Dlog4j.configurationFile

Environment Variable: N/A

Type: Numeric

Default: None

Required: No

Machine Hierarchy

You need a Server Visibility license to use this feature.

This setting enables you to group servers together into arbitrary hierarchies by specifying a hierarchical path to the server. The server hierarchy displays in the Metric Browser and on the Server Dashboard. The server hierarchy is also used to select subgroups of machines for health rules. The last element of the path indicates the server name (a name of your choice). This name appears as the Name on the Servers list. If the path contains spaces, then you must it enclose it in double-quotes. See Machine Agent Hierarchy.

Element in controller-info.xml: <machine-path>

System Property: -Dappdynamics.machine.agent.hierarchyPath

Environment Variable: APPDYNAMICS_MACHINE_HIERARCHY_PATH

Type: ASCII string with path elements that are separated by a "|" (bar). 

Default: The value specified by Unique Host ID. If the last part of the machine hierarchy is empty, the Unique Host ID is the machine name. For example, if machine hierarchy is "Data Center 1|Rack 2|" and Unique host ID is "Host ID 3", then the machine hierarchy will become "Data Center 1|Rack 2|Host ID 3".

Required: No

Limitation: The length of the characters composing the machine-path up to, but not including, the last pipe cannot exceed 95 characters.

Examples:

  • System Properties: -Dappdynamics.machine.agent.hierarchyPath= "Data Center 1|Rack 2|Machine3"
  • controller-info.xml: 

    <machine-path>
         "Data Center 1|Rack 2|Machine3"
    </machine-path>
    CODE
  • Environment Variable: APPDYNAMICS_MACHINE_HIERARCHY_PATH="Data Center 1|Rack 2|Machine3


Proxy Host 

The proxy host name or IP address. The HTTP property works for both http and https proxy configuration. Proxy authentication cannot be used with SSL. 

Element in controller-info.xml: N/A

System Property: 

-Dappdynamics.http.proxyHost

Environment Variable: N/A

Type: String

Default: None

Required: If using a proxy to connect to the Controller; otherwise this is not required.

Proxy Password File 

The absolute path to the file containing the password of the user that is authenticated by the proxy host. The password must be the first line of the file.

If <use-encrypted-credentials> is set to false, enter the password in plain text. If <use-encrypted-credentials> is set to true, encrypt the password. See Encrypt Agent Credentials.

Element in controller-info.xml: N/A

System Property: -Dappdynamics.http.proxyPasswordFile

Environment Variable: N/A

Type: String

Default: None

Required: No

Example: -Dappdynamics.http.proxyPasswordFile=/path/to/file-with-password

Proxy Port

The proxy HTTP(S) port. The proxy host name or IP address. The HTTP property works for both http and https proxy configurationThe default ports are 8090 (HTTP) and 443 (HTTPS). 

Element in controller-info.xml: N/A

System Property: 

-Dappdynamics.http.proxyPort

Environment Variable: N/A

Type: Positive Integer

Default: None

Required: Yes, if using a proxy to connect to the Controller. Otherwise, no.

Proxy User Name 

The name of the user that is authenticated by the proxy host.

Element in controller-info.xml: N/A

System Property: -Dappdynamics.http.proxyUser

Environment Variable: N/A

Type: String

Default: None

Required: No


Server Visibility Enabled

Enable Server Visibility on the Agent. This requires a Server Visibility license.

Element in controller-info.xml:  <sim-enabled>

System Property: -Dappdynamics.sim.enabled

Environment Variable: APPDYNAMICS_SIM_ENABLED

Type: Boolean

Default: false

Required: Required to enable Server Visibility. See Enable Server Visibility.

Service Availability Update Interval

This setting controls the time, in milliseconds, to wait between sending Service Availability periodic events to the Controller. See Service Availability.

Element in controller-info.xml: <sam-event-update-interval-millis>

System Property: -Dappdynamics.machine.agent.sam.event.updateIntervalMillis

Environment Variable: N/A

Type: Positive integer

Default: 300000 ms (5 minutes)

Required: No

Unique Host ID

This property logically partitions a single physical host or virtual machine. In the context of installing the Machine Agent, the unique Host ID property is not required. However, if you do not define a unique Host ID, then the Machine Agent uses the Java API to retrieve the host ID. The results from the API can be inconsistent, and may cause the same JVM to return a different value for the same machine, each time the Machine Agent is restarted. To avoid these issues, AppDynamics recommends that you set the value of unique Host ID to the host ID that you want to see in the UI. 

Element in controller-info.xml: <unique-host-id>

System Property: -Dappdynamics.agent.uniqueHostId

Environment Variable: APPDYNAMICS_AGENT_UNIQUE_HOST_ID

Type: ASCII string without spaces and must be unique across the entire managed infrastructure. 

Default: None

Required: Optional, but recommended.

Use Simple Hostname

By default (unless overridden with the uniqueHostId system property), the Agent determines the host name of the OS it is running in using reverse DNS lookup. In some circumstances, this host name may be set as the fully qualified domain name of the host name. If this property is set to true, the Agent removes any domain name and uses the simple hostname to identify the host. In cases where the host name is an IP address (which happens if the DNS lookup fails) then the full IP address in string form is used. The host name is used in mapping metrics gathered by the Machine Agent to application nodes. See Unique Host ID Property.

Element in controller-info.xml: <use-simple-hostname>

Type: Boolean

Default: False

Required: No

For example: If this property is set to true 'server.mydomain.com' becomes 'server'.

Independent Machine Agent Install Scenario

Typically, you only use the following properties if you are installing the Machine Agent on a server that does not have any AppDynamics App Agents installed. 

Application Name

The name of the logical business application that this JVM node belongs to. This is not the deployment name (ear/war/jar) on the application server. If a business application of the configured name does not exist, it is created automatically.

Element in controller-info.xml:  <application-name>

System Property: -Dappdynamics.agent.applicationName

Environment Variable: APPDYNAMICS_AGENT_APPLICATION_NAME

Type: String

Defaults: None

Required: No. See Machine Agent Installation Scenarios.

Node Name 

The name of the JVM node. When not specified, this defaults to Node1 for the Machine Agent.

Element in controller-info.xml: <node-name>

System Property: -Dappdynamics.agent.nodeName

Environment Variable: APPDYNAMICS_AGENT_NODE_NAME

Type: String

Defaults: None

Required: No. See Machine Agent Installation Scenarios.

Tier Name 

The name of the logical tier that this JVM node belongs to. This is not the deployment name (ear/war/jar) on the application server. If a tier of the configured name does not exist, it is created automatically.

Element in controller-info.xml: <tier-name>

System Property: -Dappdynamics.agent.tierName

Environment Variable: APPDYNAMICS_AGENT_TIER_NAME

Type: String

Defaults: None

Required: No. See Machine Agent Installation Scenarios.