Kubernetes Monitoring

Moneat's Kubernetes monitoring shows cluster resources and workloads in one place. Track pods, nodes, services, deployments, DaemonSets, and ReplicaSets as infrastructure telemetry, with source details kept in setup and troubleshooting flows.

Availability

Kubernetes monitoring is included on standard plans. For self-hosted builds that use module licensing, enable the datadog module to expose the Kubernetes monitoring dashboard.

Prerequisites

  • A running Kubernetes cluster
  • The Datadog Agent deployed as a DaemonSet (see Agent Setup)
  • For self-hosted module-licensed builds, the datadog module enabled

Enable Kubernetes monitoring

Deploy the Datadog Agent as a DaemonSet in your cluster with Kubernetes resource collection enabled:

YAML
# datadog-agent-daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: datadog-agent
  namespace: default
spec:
  selector:
    matchLabels:
      app: datadog-agent
  template:
    metadata:
      labels:
        app: datadog-agent
    spec:
      serviceAccountName: datadog-agent
      containers:
       - name: agent
          image: datadog/agent:latest
          env:
           - name: DD_DD_URL
              value: "__MONEAT_BACKEND_URL__/dd"
           - name: DD_API_KEY
              value: "YOUR_AGENT_API_KEY"
           - name: DD_KUBERNETES_KUBELET_NODENAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
           - name: DD_LEADER_ELECTION
              value: "true"
           - name: DD_COLLECT_KUBERNETES_EVENTS
              value: "true"
          volumeMounts:
           - name: dockersocket
              mountPath: /var/run/docker.sock
              readOnly: true
           - name: proc
              mountPath: /host/proc
              readOnly: true
      volumes:
       - name: dockersocket
          hostPath:
            path: /var/run/docker.sock
       - name: proc
          hostPath:
            path: /proc

You'll also need a ClusterRole and ClusterRoleBinding so the agent can read Kubernetes resources:

YAML
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: datadog-agent
rules:
 - apiGroups: [""]
    resources: ["pods", "nodes", "services", "endpoints", "events"]
    verbs: ["get", "list", "watch"]
 - apiGroups: ["apps"]
    resources: ["deployments", "daemonsets", "replicasets"]
    verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: datadog-agent
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: datadog-agent
subjects:
 - kind: ServiceAccount
    name: datadog-agent
    namespace: default

Resource types

Navigate to Monitoring → Kubernetes in the dashboard to view your cluster resources. The following tabs are available:

Pods

Lists all pods in your cluster with:

  • Name - Pod name
  • Namespace - Kubernetes namespace
  • Cluster - Cluster identifier
  • Status - Current pod status (Running, Pending, Failed, etc.)
  • Age - When the pod was last collected

Nodes

Shows cluster nodes with their status and resource capacity.

Services

Displays Kubernetes services and their routing configuration.

Deployments

Lists deployments with replica counts and rollout status.

DaemonSets

Shows DaemonSets and their scheduling status across nodes.

ReplicaSets

Lists ReplicaSets with current and desired replica counts.

Filtering

Each resource view supports filtering by:

  • Namespace - Focus on resources in a specific namespace
  • Cluster - Filter by cluster when monitoring multiple clusters
  • Status - Show only resources in a specific state
Avoid duplicate cluster telemetry

Deploy the Datadog Agent with DD_LEADER_ELECTION=true so only one agent instance collects cluster-level resources.