Access Machine Agent Docker Images

Splunk AppDynamics has published two sets of Machine Agent Docker images: one for the Machine Agent, and one for the Machine Agent with Analytics Support for Kubernetes. Each set of Docker images includes Debian and Alpine images for non-root and root users.

Docker Deployment for Combined Agent

Starting from version 26.3.0, all Machine Agent Docker images include the bundled Splunk OTel Collector. A built-in wrapper script serves as the container entrypoint to initialize both components. Once launched, the Machine Agent and the OTel Collector operate as independent processes, allowing you to choose and scale your monitoring strategy through environment variables. Mode selection and all configuration is done through environment variables passed with docker run -e. For more see information, see the Environment Variables section in Combined Agent for Infrastructure Visibility.

Deployment Modes

You can deploy the agent by using any one of the following modes depending on your monitoring requirements:

  • Machine Agent only (default)
  • Dual Signal
  • OTel only

Machine Agent Only (Default)

Use the following commands for standard infrastructure monitoring without OpenTelemetry.

CODE
docker run -d \
  -e APPDYNAMICS_AGENT_ACCOUNT_NAME=<account> \
  -e APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=<access-key> \
  -e APPDYNAMICS_CONTROLLER_HOST_NAME=<controller-host> \
  -e APPDYNAMICS_CONTROLLER_PORT=<port> \
  -e APPDYNAMICS_AGENT_APPLICATION_NAME=<app> \
  -e APPDYNAMICS_AGENT_TIER_NAME=<tier> \
  -e APPDYNAMICS_AGENT_NODE_NAME=<node> \
  -e APPDYNAMICS_AGENT_UNIQUE_HOST_ID=<host-id> \
  appdynamics/machine-agent:<tag>

After you run the commands, the script starts only the Machine Agent. It collects infrastructure metrics (CPU, Memory, Disk) and sends them to the AppDynamics Controller.

Dual Signal Mode

Use the following commands to send data to both the AppDynamics Controller and Splunk Observability Cloud.

CODE
docker run -d \
  -e APPDYNAMICS_AGENT_ACCOUNT_NAME=<account> \
  -e APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=<access-key> \
  -e APPDYNAMICS_CONTROLLER_HOST_NAME=<controller-host> \
  -e APPDYNAMICS_CONTROLLER_PORT=<port> \
  -e APPDYNAMICS_AGENT_APPLICATION_NAME=<app> \
  -e APPDYNAMICS_AGENT_TIER_NAME=<tier> \
  -e APPDYNAMICS_AGENT_NODE_NAME=<node> \
  -e APPDYNAMICS_AGENT_UNIQUE_HOST_ID=<host-id> \
  -e SPLUNK_OTEL_ENABLED=true \
  -e SPLUNK_ACCESS_TOKEN=<splunk-token> \
  -e SPLUNK_REALM=<realm> \
  appdynamics/machine-agent:<tag>

After you run the commands, the script initializes two processes: the Machine Agent and the Splunk OTel Collector. The Machine Agent sends metrics to AppDynamics, while the OTel Collector streams telemetry to Splunk Observability Cloud. This provides a unified view of infrastructure and distributed tracing across both platforms.

OpenTelemetry Mode

Use the following commands to run only the Splunk OTel Collector within the container.

CODE
docker run -d \
  -e SPLUNK_OTEL_ONLY=true \
  -e SPLUNK_ACCESS_TOKEN=<splunk-token> \
  -e SPLUNK_REALM=<realm> \
  -e APPDYNAMICS_AGENT_UNIQUE_HOST_ID=<host-id> \          # Recommended
  -e APPDYNAMICS_AGENT_APPLICATION_NAME=<app> \             # Optional: business context
  -e APPDYNAMICS_AGENT_TIER_NAME=<tier> \                   # Optional: business context
  -e APPDYNAMICS_AGENT_NODE_NAME=<node> \                   # Optional: business context
  appdynamics/machine-agent:<tag>

After you run the commands, the script disables the Machine Agent and only starts the Splunk OTel Collector. All data is sent exclusively to the Splunk Observability Cloud.

Important: Always set APPDYNAMICS_AGENT_UNIQUE_HOST_ID to a meaningful value.If this is not set, the container ID is used as the host name. This causes data fragmentation in your dashboards every time the container restarts. Using a unique ID ensures consistent historical data in both AppDynamics and Splunk.

Custom OTel Pipeline

To use a custom OpenTelemetry configuration, mount your YAML file to the container:

CODE
docker run -d \
  -v /path/to/custom_config.yaml:/opt/appdynamics/conf/otel/agent_config.yaml \
  ... (other variables) ...
  appdynamics/machine-agent:<tag>

Logs

The logs logs are located at:

Component Path (Inside Container)
Machine Agent /opt/appdynamics/logs/machine-agent.log
OTel Collector /opt/appdynamics/logs/otel/otel-collector.log

Machine Agent Docker Images

To access the Machine Agent docker images, see appdynamics/machine-agent.

The Docker Hub repository uses the following file naming pattern:

  • Debian:
    • Non-Root: appdynamics/machine-agent:<version>
    • Root: appdynamics/machine-agent:root-<version>
  • Alpine:
    • Non-Root: appdynamics/machine-agent:alpine-<version>
    • Root: appdynamics/machine-agent:alpine-root-<version>

Machine Agent with Analytics Support for Kubernetes Docker Images

To access the Machine Agent with Analytics Support for Kubernetes Docker Images, see appdynamics/machine-agent-analytics.

The Docker Hub repository uses the following file naming pattern:

  • Debian:
    • Non-Root: appdynamics/machine-agent-analytics:<version>
    • Root: appdynamics/machine-agent-analytics:root-<version>
  • Alpine:
    • Non-Root: appdynamics/machine-agent-analytics:alpine-<version>
    • Root: appdynamics/machine-agent-analytics:alpine-root-<version>

Access Docker Images for Non-Root Users

To access the non-root Docker images, add the appdynamics docker.sock