Standalone AppSignal Agent Docker image

The AppSignal standalone agent is available as a Docker image that can be run as a container in Docker (Compose) and Kubernetes infrastructure.

This guide assumes you have Docker installed or it's used by the application's hosting platform. For information on how to install Docker locally, see Docker's official website.

This guide shows you how to configure the AppSignal Docker image for your app, using the Docker environment variables options.

Use cases

The standalone agent Docker image is designed for receiving data from other containers in your infrastructure. It is a good choice for:

  • Receiving StatsD metrics from your applications (port 8125)
  • Receiving OpenTelemetry data from your applications (port 8099)
  • Collecting NGINX metrics (port 27649)

All of these servers are enabled by default on the Docker image.

Host metrics

The standalone agent Docker image does not report host metrics. The host metrics it would report are those of the container itself — in which only the agent is running — and are therefore not useful.

If you need host metrics monitoring (CPU, memory, disk, network), use one of these approaches instead:

  • Docker host machine: install the Linux package directly on the host machine that runs your Docker containers.
  • Kubernetes: use the Kubernetes integration to monitor host metrics across your cluster.
  • Individual containers: if you're not using Kubernetes and need to monitor host metrics of specific containers, install the Linux package inside each container that you want to monitor.

Docker image

Add a container/service using the appsignal/agent Docker image to your application's infrastructure. If you want any apps to report data to it, like StatsD metrics, OpenTelemetry data and NGINX metrics, point them to the container's name in the application.

Supported platforms

The Docker image supports the following platforms. This list can also be viewed per Docker image tag on Docker Hub page for this image.

  • x86 64-bit
  • ARM 64-bit

Configuration

The agent can be configured with environment variables specified in the Docker run command, Docker compose options or Kubernetes configuration.

In the examples below, replace YOUR_PUSH_API_KEY with your actual AppSignal Push API key and configure it with your application details.

A full list of all configuration options can be found in the configuration section.

Docker run

Shell
# Docker run example docker run \ --env APPSIGNAL_PUSH_API_KEY=YOUR_PUSH_API_KEY \ --env APPSIGNAL_APP_NAME=database-name \ --env APPSIGNAL_APP_ENV=production \ --publish "8125:8125" \ --publish "27649:27649" \ --publish "8099:8099" \ appsignal/agent

Docker compose

YAML
# docker-compose.yml example version: "3" services: appsignal: # Name of the container used as the hostname on which it can be reached image: appsignal/agent environment: - APPSIGNAL_PUSH_API_KEY=YOUR_PUSH_API_KEY - APPSIGNAL_APP_NAME=database-name - APPSIGNAL_APP_ENV=production ports: - "8125:8125" # StatsD - "27649:27649" # NGINX - "8099:8099" # OpenTelemetry

That's it! Once you've completed these steps, you should have the AppSignal standalone agent's Docker image up and running and receiving data from other apps, if configured.