Default Auto-Instrumentation Properties

This table describes the default properties available to configure auto-instrumentation, defined in the cluster-agent.yaml spec:

appNameLabel N/A

The value of this label will be the Splunk AppDynamics application name.

appNameStrategy manual

The option to specify a name for the Splunk AppDynamics application. You can specify any of these values for this parameter:

  • manual
  • namespace
  • label

See Application Naming Strategies.

defaultAnalyticsHost N/A

The hostname of the Analytics Agent.

This parameter is required if you require the Node.js Agent to send the default transaction data to the Analytics Agent.

The default value is applied to all instrumented resources unless it is overwritten by the instrumentationRules configuration.

defaultAnalyticsPort N/A

The listening port for Analytics Agent.

For example, if the Analytics Agent is listening on port 9090, then the value of this parameter is 9090.

The default value is applied to all instrumented resources unless it is overwritten by the instrumentationRules configuration.

This parameter is required with defaultAnalyticsHost if you require the Node.js Agent to send the default transaction data to the Analytics Agent.

defaultAnalyticsSslEnabled N/A

This value is based on whether the Analytics Agent port is SSL enabled. If the port is SSL enabled, specify the value as true; else, specify as false.

This parameter is required with defaultAnalyticsPort and defaultAnalyticsHost, if you require the Node.js Agent to send the default transaction data to the Analytics Agent.

The default value is applied to all instrumented resources unless it is overwritten by the instrumentationRules configuration.

defaultAppName

""(Required) Application name used by the agent to report to the Controller.
defaultCustomConfig N/A

This parameter is specific to Java applications.

You can add any custom system property if your application framework requires any specific configuration for instrumentation.

This value is appended to the env or defaultEnv variable as configured with other Java Agent properties.

When you upgrade your deployment using Helm, you can use this parameter instead of defaultEnv to avoid re-instrumentation issues. See Troubleshoot Re-instrumentation Issues for Upgraded Deployment under Validate Auto-Instrumentation.

defaultContainerMatchString N/A

This is a regex value to choose the containers to instrument. This parameter requires you to use the select option within the instrumentContainer (specified in the instrumentation rules).

When the select option is used with this parameter, Cluster Agent instruments the containers that match the regex value.

defaultEnv

JAVA_TOOL_OPTIONS

This parameter is specific to Java applications.

Environment variable to which the -javaagent argument and App Agent system properties are added.

You can override this variable to use any other environment variable best suited for the deployment.

However, if you override this value for upgrading the deployment, Cluster Agent does not re-instrument. This happens because both Java Agent and the deployment uses JAVA_TOOL_OPTIONS environment variable. Therefore, when you override this during an upgrade, the annotations do not get updated and re-instrumentation fails.

For more information to troubleshoot, See Troubleshoot Re-instrumentation Issues for Upgraded Deployment under Validate Auto-Instrumentation.

defaultInstrumentationLabelMatch

[ ]

Specific deployment labels marked for instrumentation.

This parameter accepts a list of key-value pairs to instrument.

You must match a minimum of one label for instrumentation.

For example:

defaultInstrumentationLabelMatch:- label1: value1

- label1: value2

- label2: value2

For example, if only label1: value2 matches, then the instrumentation works as expected.

defaultInstrumentMatchString

.*

Names of deployments targeted for instrumentation.

This parameter is used as the default value for the matchstring parameter that is specified within instrumentationRules. If matchstring is not specified, then Cluster Agent uses this parameter value.

This parameter accepts deployment names as a regular expression or regex.

If there are multiple deployments to instrument, you can separate names with a '|' without spaces.

By default, this parameter instruments all deployments configured by nsToInstrumentRegex. Therefore, if there is no value specified for matchString in the instrumentation rules and if you do not specify any value for this parameter, then Cluster Agent instruments every deployment.

enableForceReInstrumentation false

This property needs to be set to true if the newly introduced instrumentation properties should overwrite the old configuration on the successfully instrumented pods.

By default this property is set to false.

Set the value to true if you require to update the instrumentation configuration to the successfully instrumented deployments during Cluster Agent upgrade.

Set the value to false if you require to retain the instrumentation configuration to the successfully instrumented deployment. However, updated configurations will be applied if the instrumentation state of the existing deployment is either failed or new.

Note: When you upgrade Cluster Agent you must set this value to true to apply the updated configurations to the successfully instrumented deployment.
enableInstallationReport "false"

Enables or disables the collection of installation information. It generates a summarized report with the following details:

  • PodName
  • Namespace
  • AppName
  • TierName
  • NodeName
  • AgentType
  • AgentVersion
  • Status
  • Timestamp

To view the installation report, see View Installation Report.

imageInfo

java:
image: "docker.io/appdynamics/java-      agent:latest"
agentMountPath: "/opt/appdynamics"
imagePullPolicy: "IfNotPresent"
dotnetcore:
image: "docker.io/appdynamics/dotnet-core-agent:latest"
agentMountPath: /opt/appdynamics
imagePullPolicy: "IfNotPresent"
nodejs:
image: "docker.io/appdynamics/nodejs-agent:20.8.0-stretch-slimv14"
agentMountPath: /opt/appdynamics
imagePullPolicy: "Always"

The Docker repository from where the Node.js Agent, .NET Core for Linux, and Java Agent is pulled.

Supported values are:

  • image: Location of the agent image, with its tag/version.

  • agentMountPath: Location of image artifacts in the image file system. The default is /opt/appdynamics. You must change this configuration if the path is different.imagePullPolicy: The pull policy required for the agent's docker image. You can choose one of these pull policies based on your requirement:

    • Always

    • IfNotPresent

    • ever

This parameter is used in the init containers that are added during auto-instrumentation.

instrumentationMethod

None

The instrumentation method used for instrumenting Apps.

Supported values are:

  • None: Instrumentation is disabled.
  • Env: Attach the instrumentation properties to the container environment variables. If a value is not set, the instrumentation will not start.

instrumentationRules

[ ]

Required. This parameter is used to enable auto-instrumentation.This includes the list of specific instrumentation rules. You can apply the rules to one or more namespaces, and can filter on deployment names and labels. Instrumentation rules are granular to support targeting specific deployments.

See Cluster Agent Configuration for Instrumentation Rules.

javaAgentCustomSSLKeystore

N/A

Secret name for Java Agent SSL keystrore file. For more information, see Use Custom SSL for Java Agent Auto-Instrumentation.

javaAgentCustomSSLKeystorePasswordSecret

N/A

Secret name for Java Agent SSL keystrore password. For more information, see Use Custom SSL for Java Agent Auto-Instrumentation.

nsToInstrumentRegex

""

Required. If you do not specify a value, auto-instrumentation will not work.

Specify the namespaces to be instrumented as a regex.

If there are multiple namespaces to instrument, separate namespaces using "|" without spaces.

By default, namespaces are not instrumented.

numberOfTaskWorkers 2

To configure the rate limit for the number of deployments that are auto-instrumented at the same time.

Note: Increasing this value may lead to a larger number of concurrent pod restarts in the cluster.

netvizInfo

bciEnabled: true

port: 3892

To configure the Network Visibility App Agent, netviz, Install Infrastructure Visibility with the Kubernetes CLI on how to install the Network Agent.

By default, netviz is enabled. In the absence of a Network Agent, this property does not have any impact. You can enable or disable the netviz Agent.

Supported values are:

  1. bciEnabled : Boolean flag denoting whether netviz is enabled.
  2. port : The port the Network Agent is listening on (default is 3892) . Override this value only when running the Network Agent on a port other than the default port.

runAsGroup

0

If you configured the application container as a non-root user, provide the group ID (GID) of the corresponding group.

runAsUser is used to set the appropriate file permission on the agent artifacts.

The default runAsGroup value is applied to all the instrumented resources, unless it is overwritten by the instrumentationRules configuration.

runAsUser

0

If you configured the application container as a non-root user, provide the user ID (UID) of the corresponding user.

runAsUser is used to set the appropriate file permission on the agent artifacts.

The default runAsUser value is applied to all the instrumented resources unless it is overwritten by instrumentationRules configuration.

resourcesToInstrument Deployment

Cluster Agent instruments the resources that are listed in this parameter. The supported values are:

  • Deployment
  • StatefulSet
  • DeploymentConfig

For example, to instrument Deployments and StatefulSets, configure:

resourcesToInstrument:

  • Deployment

  • StatefulSet

tierNameLabel N/A

The value of this label will be the Splunk AppDynamics tier name.

tierNameStrategy manual

The option to specify a name for the tier. You can specify any of these values for this parameter:

  • manual
  • label

View the Installation Report

You can view the summarized installation report if you have enabled the enableInstallationReport parameter in the cluster-agent.yaml file. See Default Auto-Instrumentation Properties. Perform the following steps to view the installation report:

  1. Run the kubectl exec

    kubectl exec -it <cluster-agent-pod-name> -n <namespace> sh
  2. Navigate to the logs directory.
  3. Open the InstallationReport.csv file to view the report.

Use Custom SSL for Java Agent Auto-Instrumentation

You can use the following properties in the default cluster-agent.yaml file to specify the secret for the Keystore file and password. This enables Java Agent auto-instrumentation with custom SSL.

  • javaAgentCustomSSLKeystore
  • javaAgentCustomSSLKeystorePasswordSecret
Note: To use these properties, you must use the JKS format for the Custom SSL certificate and name the file as custom-ssl.jks. For information about creating certificates, see

Enable SSL for the Java Agent

.

Run the following commands to create secrets, which is used for the auto-instrumentation of Java Agent with custom SSL.

  1. Create secret for keystore file.
    kubectl -n appdynamics create secret generic <secret name> --from-file=<path to custom-ssl.jks file>
  2. Create secret for the keystore password.
    kubectl -n appdynamics create secret generic <secret name> --from-literal=keystore-password=‘<keystorePassword>’

Update Secrets After Certificate Update

If you change the custom SSL keystore file or the keystore password, you require to perform the following:

  1. Uninstrument Java application.
  2. Create new secret for keystrore file and keystrore password. See Use Custom SSL for Java Agent Auto Instrumentation.
  3. Re-instrument Java application.