Docker Container Monitoring
How Docker Serves Developers
Docker makes it easy for developers to create, deploy, and run applications. Docker containers allow developers to package an application with all of its parts (libraries, etc) so it will run on any machine regardless of settings. This enables flexibility and portability on where the application can run. A Docker container, unlike a virtual machine, does not require or include a separate operating system. Instead, it relies on the operating system kernel’s functionality.
Docker streamlines software delivery, preferred by developers and IT ops teams alike, allowing them to build, ship, test, and deploy apps automatically, securely, and portably with no surprises. With Docker, teams know their images work the same in development, staging, and production. New features and fixes get to customers quickly without hassle, surprises, or downtime.
Partnership and InfluxData Container Images
Docker and InfluxData are working together to make their platforms interoperable. Jointly, Docker and InfluxData publish certified images for the InfluxData TICK Stack in the Docker Store, implement Docker monitoring tools, and deliver on the promise of scalability and predictability for Docker developers. Click the buttons below to access published and up-to-date Docker images for developers.
InfluxData also publishes containers for all components of the TICK Stack, and the InfluxData GitHub page provides the base Docker files used to generate these containers. In the TICK-Docker repository in GitHub, different Docker Compose versions for each of the components of the TICK Stack is available: Telegraf, InfluxDB, Chronograf, Kapacitor. Running docker-compose up -d to put it in daemon mode will start up all containers for the TICK Stack.
Time Series Monitoring Tools for Docker
Docker can be monitored using the open source TICK Stack, built from the ground up for time series data. Below are helpful tips for monitoring Docker using the TICK Stack:
- You can interact with TICK Stack using the InfluxDB-CLI, the Kapacitor CLI for setting up alerts, or most easily through Chronograf, which is developed to be specifically and very tightly integrated with the TICK Stack.
- You can set up alerts on Chronograf, which automatically recognizes Telegraf stats that are reporting to an InfluxDB server.
- Chronograf’s Data Explorer can be set up to easily create InfluxQL queries. InfluxQL is the InfluxDB specific SQL-like language. It allows exploring your data and the Docker data itself.
- InfluxDB uses the concept of tags. All data is tagged, which allows you to easily segment your time series data. Tags and fields allow you to group various time series together and split them apart as well.
- You can view Docker memory usage for each of the containers on the system or use the dashboard builder to create custom dashboards. Template variables can also be added to split up dashboards based on specific services or specific hosts.
Telegraf Input Plugin for Docker
You can collect Docker stats with the TICK Stack.
- Telegraf collects CPU, memory, and other metrics, but can also be set up to collect metrics with the actual Docker daemon and metrics on the containers that are running.
- The Telegraf Docker input plugin will add tags on the metrics it collects. Some of those tags are container name, container version, and container image. It’s easy to add and use the various tagging facilities to designate which containers are running where, and which containers are associated with which other containers.
Telegraf offers other options as well, such as setting tags on various metrics based on the tags that are set on the metrics it collects (clarified in the Telegraf documentation).
To grab container stats using Telegraf, download the Telegraf input plugin for Docker for collecting Docker stats.