Monitor Windows Containers on Google Cloud With Datadog | Datadog

Monitor Windows containers on Google Cloud with Datadog

Author Mallory Mooney
Author Yair Cohen

Published: May 4, 2020

Many organizations already use Docker to containerize their Windows applications and often run mixed Windows and Linux container environments to support complex architectures. With Kubernetes’s support for deploying clusters with Windows nodes, organizations can leverage the orchestration platform to easily automate container provisioning, networking, scaling, and more for their Windows applications.

To provide visibility into your containerized Windows applications, Datadog is introducing support for both Windows-based Docker containers and mixed OS clusters in Kubernetes. This enables you to seamlessly monitor containerized Windows workloads alongside all your other applications and services.

Visualize containers from your cluster's Windows and Linux node pools with Datadog's container map.
Visualize containers from your cluster's Windows and Linux node pools with Datadog's container map.

In this post, we’ll show you how you can now monitor all your containerized Windows applications with the Datadog Agent on Docker and Kubernetes.

Deploy your containerized Windows applications to Google Kubernetes Engine

We are excited to partner with Google Cloud as part of this release and provide native support for Windows containers on Google Kubernetes Engine (GKE). Kubernetes’s support for Windows containers has propelled the growth of mixed containerized environments, and GKE leverages the same core Kubernetes functionality (e.g., the managed control plane) across Windows- and Linux-based containers. This enables organizations to streamline application deployments, scalability, and performance management on a single cloud platform.

To add a Windows node pool to a cluster, you can specify either WINDOWS_SAC or WINDOWS_LTSC as the image type; consult the GKE documentation for a list of currently supported versions.

In the next section, we’ll show you how to deploy the Datadog Agent to your Windows node pool and start collecting data from your GKE cluster.

Install the Datadog Agent on your GKE node pools

To easily install the Agent, you can use our Helm chart with the following commands:

 
helm install ddlinux stable/datadog -f values.yaml --set targetSystem=linux
helm install ddwin stable/datadog -f values.yaml --set targetSystem=windows

This will deploy the Agent as a Daemonset on every node in your cluster’s node pool. The targetSystem flag maps to Kubernetes’s nodeSelector option and ensures that the correct version of the Agent automatically deploys to the appropriate node pool in a mixed cluster, as seen in the diagram below.

Diagram for deploying the Datadog Agent to a mixed cluster in Google Kubernetes Engine

Additionally, if you use the Cluster Agent to collect cluster-level metadata, we recommend configuring the new Agent to connect to an existing Cluster Agent. You can learn more about the benefits of using the Cluster Agent in large-scale clusters (such as reducing load on Kubernetes’s API server) in this post.

Once the Agent is up and running, you can immediately begin monitoring your containerized Windows applications.

The Datadog Agent + Windows containers

Whether you are containerizing Windows applications with tools like Docker Swarm or moving your existing Windows containers to a Kubernetes cluster in GKE, Datadog can help you manage your entire container infrastructure. Once you deploy the Agent, you can easily monitor all of your application data, from the resource consumption of your containers to the state of individual nodes. The Datadog Agent collects logs, metrics, and distributed traces from all your Windows containers so you can monitor Windows applications alongside your existing Docker and Kubernetes environments.

All your Windows containers are automatically tagged with key metadata, so you can break them down by region, cluster, deployment, or even operating system. Tags provide a powerful way for you to sift through the noise and drill down to specific containers within your cluster to investigate issues that may affect application performance.

For environments that leverage Kubernetes, Datadog’s built-in integration dashboards give you a high-level view of the state of your clusters and deployed applications. Or you can build custom dashboards to easily correlate data from your Windows and Linux applications with other data.

Visualize the containers in a mixed OS cluster deployed on Google Cloud.

For example, if a pod’s memory usage exceeds its memory limit, the node’s kubelet will terminate all processes running on the pod. You can compare each pod’s memory limit to its overall memory utilization. You can then pivot from the dashboard to related container logs to see which processes were killed.

With distributed tracing and APM, you can monitor requests flowing through your application services to ensure there are no bottlenecks or errors. Datadog APM provides a comprehensive view into the lifecycle of a request, enabling you to see breakdowns of key performance indicators as well as the services that make up an individual trace, as seen in the flame graph below.

Capture traces from Windows containers deployed on Google Kubernetes Engine and Google Cloud

For Docker environments, you can install the containerized version of the Agent and automatically collect native Docker metrics from your Windows-based containers, which you can visualize with Datadog’s integration dashboard.

View data from Docker containers supporting your Windows applications

The dashboard enables you to view data at a glance and filter by key attributes that are automatically pulled from your container fleet. For example, you can break down network activity by image and quickly identify unusual spikes in traffic across all the services that support your Windows application.

View network activity for a Windows application by grouping by Docker container image

And with Datadog’s Live Container view, you can get insight into the status and performance of individual containers in real time. For example, if you notice sustained high CPU usage on one of the containers supporting a .NET application, you can quickly see running processes and related logs to debug.

View a list of containers in real time

With Autodiscovery, Datadog detects when Windows containers are created or destroyed and will automatically collect data from any services running on those containers, such as Elasticsearch and Consul.

Datadog automatically collects and aggregates metrics, logs, traces, and more from every layer of your Windows applications—from clusters down to individual containers—so you can easily see your architecture in its entirety or drill down to specific containerized services in one place.

A window into the future

You can start using Datadog to monitor your Windows containers now. We are working on making the Agent available for more teams to get visibility into containerized applications across all their environments. Check out our documentation to learn more about monitoring Docker and Kubernetes with the Datadog Agent, or sign up for a to start collecting data from your containerized Windows applications.