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 |