Requirements

Cluster Agent Requirements

  • Cluster Agent >= 20.5. See Cluster Agent Requirements and Supported Environments.

  • Installed the latest Cluster Agent and Operator versions in the cluster. The cluster-agent-operator.yaml sets up the permissions required by the Cluster Agent to perform auto-instrumentation. See Install the Cluster Agent.
  • At least one application is deployed to the cluster that was not previously instrumented with the required Splunk AppDynamics agent.
  • A Controller with sufficient agent licenses based on the number of applications that will be auto-instrumented.
  • Create a local user in the Controller with the Server Monitoring Administrator role. The Cluster Agent uses the credentials for this user to mark the nodes as historical when an auto-instrumented pod is deleted. Use these credentials to set the api-user during your first step when you Enable Auto-instrumentation for Cluster Agent. You can also use these credentials to set the username and password values when using the Helm Chart to enable auto-instrumentation.
  • Ensure that you have sufficient cluster capacity to process pod restarts. See Minimize the Impact of Pod Restarts.
  • Ensure that you have specified the app, the tier, and the node name tuple to be unique across all the Kubernetes instances. If the name is not unique, the nodes may not report properly. This is applicable to those agents on which app, tier, and node uniqueness is required such as Java and Node.js Agents.

Language-Specific Requirements

  • Node.js >= 8.6

  • Java
    • Java applications must support including the -javaagent argument in the Java command using an environment variable. By default, the Cluster Agent uses JAVA_TOOL_OPTIONS ; however, you can change this using the defaultEnv property.
    • Based on Java Agent resource requirements, it may be necessary to adjust the configured memory requests or limits for the application pods (see Install the Java Agent).
  • .NET Core on Linux and Node.js
    • Ensure that the application base image Operating System (OS) matches the App Server Agent base image OS (Linux versus Alpine). For example, if your .NET Core on Linux application uses an Ubuntu base image, then you must set the imageInfo.image tag to the Linux version. In this example, the image tag is 20.11.0-linux. If the application used an Alpine Linux base image OS, then the tag would be 20.11.0-alpine. See the Docker Hub page.

      apiVersion: cluster.appdynamics.com/v1alpha1
      kind: Clusteragent
      metadata:
      name: k8s-cluster-agent
      namespace: appdynamics
      spec:
      # content removed for brevity
      instrumentationRules:
      - namespaceRegex: dev
      language: dotnetcore
      appName: MyDotNetAppOnUbuntu
      imageInfo:
      image: "docker.io/appdynamics/dotnet-core-agent:20.11.0-linux"
      agentMountPath: /opt/appdynamics

      If the base image Operating Systems do not match, then the App Server Agent may not start. See Validate Auto-Instrumentation. The Node.js Agent also has specific Node.js runtime requirements that may prevent the agent from starting. See Node.js Supported Environments.

    • For .NET Core and Node.js applications that communicate with an on-premises Controller, see Use Auto-Instrumentation with an On-Premises Controller.
    • If transaction analytics data is required, then you must configure the Cluster Agent analyticsHost and analyticsPort properties.