How to get Visibility into Docker Clusters running Kubernetes

Disclaimer: we hope you’ll enjoy this article! If you want to know more about our hot new capabilities around Kubernetes monitoring with Dynatrace, please make sure to visit our Kubernetes monitoring page.

Google officially launched today the final version of their cluster manager project Kubernetes, which treats Docker containers as first-class citizens. In this blog post, I will show you how you can monitor the performance of your Kubernetes cluster using the Dynatrace Docker Monitor Plugin, which is available here and on GitHub.

Why Docker?

Docker has been the buzzword in the IT industry for the last two years now – and while containerization is not at all new, the company managed to bring containers to the enterprise. How? As we see it at our customers, who have been using Docker in customer-facing applications, there are two main reasons to it:

  1. Containers are highly portable, self-contained, resource efficient, can boot extremely fast, foster scalability, resilience and faster deployments – and are hence an important enabler for moving to highly distributed microservice architectures.
  2. Because of their portability across heterogeneous environments in development, test and production, containers have the potential to revolutionize Continuous Integration.

What is Kubernetes?

Kubernetes is an open-source cluster manager software for deploying, running and managing Docker containers at scale. The project was created by Google in mid 2014, but has been receiving active support from partners such as Red Hat, CoreOSMeteor and lots of others ever since its inception.

Kubernetes runs on a multitude of cloud providers, such as AWS, GCE and Azure, on top of the Apache Mesos framework and even locally on Vagrant (VirtualBox).

If you are intrigued and want to know more about how to use Kubernetes as a cluster for your containers, I want to recommend the following presentations to you: “Container clusters with Kubernetes” by Google’s Tim Hockin and “Building Clustered Applications with Kubernetes and Docker” by Red Hat’s Stephen Watt.

Monitoring Docker Clusters with Dynatrace

Container cluster managers such as Kubernetes take the features of containers up a level by adding availability, the ability to scale up or down on demand, roll out updates without interruption of service, etc. We can say that Kubernetes 1.0 does a pretty good job already and are expectantly looking forward to see what’s coming down the roadmap.

We on our side have built a monitoring solution that visualizes the dynamics in Docker clusters, reporting on health and performance of your cluster and the applications running on top of it:

The Dynatrace Docker Monitoring Dashboard
The Dynatrace Docker Monitoring Dashboard

In the screenshot above you can see the container stats of all Docker containers being monitored: CPU Usage, Memory Usage and the rates of Network Receive and Transmit. In the lower section, you can observe how these containers are distributed across your cluster nodes. Are they distributed equally or not? How is the health of these nodes in terms of CPU, Memory, Disk and Network?

Kubernetes Cluster Monitoring
The Dynatrace Kubernetes Cluster Monitoring Dashboard

In this screenshot, for example, you see how healthy and performant your application runs on the Kubernetes cluster. What are the response times of my transactions at any given point in time? What is the distribution of slow (red) vs. fast transactions (green)? Are there any unnatural spikes? How well do the load balancers inside the cluster do the request balancing between the various container instances of the frontend and backend tiers? Is there a variance amongst container instances in terms of thread count and resource utilization in a particular tier?

Separating the Signal from the Noise: Who’s Calling Whom?

Separating Signal from Noise
Separating the Signal from the Noise: Who’s Calling Whom?

No need to search for the needle in the haystack with Dynatrace! We let you separate the signal from the noise and allow you focus on the transactions that really matter to you.


Docker has managed to get containers to the enterprise. Their container technology is highly portable, resource-efficient, fosters scalability and faster deployments and has the potential to revolutionize Continuous Integration. A container cluster manager such as Kubernetes on top adds availability, scale up or down on demand into the mix and lets you roll out updates without interruption of service. The Dynatrace Docker monitoring solution visualizes the dynamics in Docker clusters and correlates these metrics with the health and performance of your applications running on top of them. Download the Dynatrace Free Trial and the Docker Monitor Plugin and get full end-to-end visibility into your Dockerized applications.

Leveraging his outstanding technical skills as a lead software engineer, Martin has been a key contributor to a number of large-scale systems across a range of industries. Martin is as passionate about great software as he is about applying Lean Startup principles to the development of products that customers love. Martin is a life-long learner who frequently speaks at international conferences and meet-ups. When not spending time with family, Martin enjoys swimming and Yoga. He holds a master's degree in Computer Engineering from the Vienna University of Technology, Austria, with a focus on dependable distributed real-time systems. Follow him @metmajer.