Why do we need datadog Agent ? - harishgorla5/HINTechnologies_datadog GitHub Wiki

๐Ÿถ Datadog Agent & Helm vs YAML in Kubernetes

๐Ÿ“Œ Why Do We Need the Datadog Agent?

The Datadog Agent is a lightweight process that runs on each node of your Kubernetes (EKS) cluster. It collects and sends observability data (metrics, logs, traces) to Datadog.

โœ… Features of the Datadog Agent

Feature Description
Metrics Collection Captures system-level metrics like CPU, memory, disk, container stats.
Log Collection Gathers logs from containers, services, and host system.
APM (Application Performance Monitoring) Captures distributed traces from microservices.
Process Monitoring Tracks running processes and container lifecycles.
Autodiscovery Automatically detects services like Apache, MySQL, etc.
Cluster Agent Aggregates data from multiple agents and enhances performance.
Kubernetes Integration Adds pod, service, and cluster-level observability using kubelet and labels.

Without the Datadog Agent, your Kubernetes cluster would not send any telemetry to Datadog โ€” making it invisible in dashboards or monitors.


๐ŸŽฏ Why Use Helm Instead of Raw YAML?

Datadog provides both:

  • A Helm Chart for automated, configurable deployment.
  • YAML manifests, but theyโ€™re large and harder to maintain.

โœ… Benefits of Using Helm

Feature Helm Raw YAML Files
Templating Parameterized templates via values.yaml Manually modify all fields
Upgrade-friendly helm upgrade cleanly updates version/config Must reapply full YAML set
Reusability Can reuse same chart with different values Must copy & edit YAML for each
Config management All config stored in values.yaml Spread across multiple YAMLs
Cleanup helm uninstall removes all resources Must delete each manually
Default Best Practices Follows Datadogโ€™s recommended setup Must build from scratch

โš™๏ธ Example: Install via Helm

helm install datadog-agent datadog/datadog   --set datadog.apiKeyExistingSecret=datadog-secret   --set datadog.site='us5.datadoghq.com'   --set datadog.logs.enabled=true   --set datadog.apm.portEnabled=true   --set datadog.processAgent.enabled=true   --set datadog.kubeStateMetricsEnabled=true   --set datadog.leaderElection=true   --set clusterAgent.enabled=true   --set clusterAgent.metricsProvider.enabled=true   --namespace default

๐Ÿ‘‡ Equivalent YAML (Example Only - Would Require 100s of Lines)

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: datadog-agent
  namespace: default
spec:
  template:
    spec:
      containers:
      - name: agent
        image: gcr.io/datadog/agent:latest
        env:
        - name: DD_API_KEY
          valueFrom:
            secretKeyRef:
              name: datadog-secret
              key: api-key
        # Other configurations...

Writing full YAML for:

  • DaemonSet
  • Cluster Agent
  • RBAC
  • ConfigMaps
  • Secrets
  • Admission Controllers

โ€ฆcan be very complex and error-prone compared to using a Helm chart.


โœ… Summary

Category Recommendation
Install Agent โœ… Use Helm
Collect Metrics โœ… Enable in Helm Chart
Enable APM, Logs โœ… Use Helm flags
Manage Config โœ… Use values.yaml
Avoid Manual Errors โœ… Use Helm

๐Ÿ“š References