Monitoring solutions for Docker containers
Software applications are changing, and by extension, so are the requirements of application monitoring systems. Docker enables developers to iterate faster with software architectures consisting of many small and isolated microservices. This poses a challenge to traditional monitoring solutions as the target processes are no longer statically allocated or tied to particular hosts. Monitoring systems are now expected to track ephemeral and rapidly scaling sets of containers. Thankfully, the Docker Engine exposes APIs for container metadata, lifecycle events, and key performance metrics (Docker 1.5+) that enable the development of robust monitoring solutions. Today we are highlighting a number of these solutions that have demonstrated quality integrations with Docker APIs and provide a compelling user experience.
The vendors behind these monitoring solutions are being recognized by Docker, Inc as part of our Ecosystem Technology Partner (ETP) program. This program is designed to highlight vendor solutions with solid Docker integration that we are comfortable promoting to the community. AppDynamics, Datadog, New Relic, Scout, SignalFx and Sysdig have all demonstrated integration with Docker to provide users with visibility into the performance of dockerized applications. Today we are highlighting monitoring solutions, but in the future, you can expect to see initiatives for other capabilities.
What’s in a traditional monitoring solution?
A typical monitoring system involves an agent installed on each host which extracts metrics at regular intervals and then passes this information on to a central collection system. For Linux systems in particular, there are a number of kernel APIs and userland tools which are called from the monitoring agent to obtain performance metrics at both the system and process level. This works well for traditional applications, though there are still challenges such as configuration overhead, dependencies on the host kernel/OS, and agent packaging/redistribution. Monitoring vendors have invested in abstracting away many of these complexities for their users.
What’s required in a monitoring solution for Dockerized applications?
With an application consisting of Docker containers, the monitoring agent can call the Docker Engine API and introspect all containers running on the host. Since containers may rapidly spin up and down in automated deployment and scaling scenarios, the new challenge for the monitoring agent is to keep track of and react to these lifecycle events without introducing complexity for the user. Monitoring vendors highlighted in our ETP program have demonstrated that their solutions are up to the task and fit well in Docker-based architectures. In many cases, the monitoring agent itself is redistributed as a Docker image through Docker Hub, which simplifies the initial setup into a single docker run command.
Learn More about Docker
- Read more about the Ecosystem Technology Partner (ETP) program
- New to Docker? Try our 10 min online tutorial
- Share images, automate builds, and more with a free Docker Hub account
- Read the Docker 1.6 Release Notes
- Subscribe to Docker Weekly
- Register for upcoming Docker Online Meetups
- Attend upcoming Docker Meetups
- Register for DockerCon 2015
- Start contributing to Docker