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.
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.
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.
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.
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:
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>
- Non-Root:
- Alpine:
- Non-Root:
appdynamics/machine-agent:alpine-<version> - Root:
appdynamics/machine-agent:alpine-root-<version>
- Non-Root:
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>
- Non-Root:
- Alpine:
- Non-Root:
appdynamics/machine-agent-analytics:alpine-<version> - Root:
appdynamics/machine-agent-analytics:alpine-root-<version>
- Non-Root:
Access Docker Images for Non-Root Users
To access the non-root Docker images, add the appdynamics docker.sock