Agent Resource Requirements
CPU and memory footprint of the DataAgent agent pod.
The agent runs as a single pod with five containers. The chart also installs three monitoring pods by default. The tables below show the default resource requests and limits for each.
Total resource requests with defaults: about 910m CPU and 3.2Gi memory, plus 50m CPU and 32Mi memory for each additional node (one node-exporter pod runs per node).
Agent pod — per-container footprint
| Container | CPU request | CPU limit | Memory request | Memory limit |
|---|---|---|---|---|
| Orchestrator | 100m | 2000m | 128Mi | 2Gi |
| Topology Analyzer | 100m | 2000m | 512Mi | 2Gi |
| Metrics Collector | 100m | 2000m | 128Mi | 2Gi |
| Watcher | 100m | 2000m | 128Mi | 2Gi |
| Log Watcher | 100m | 2000m | 128Mi | 2Gi |
| Total | 500m | 10000m | 1Gi | 10Gi |
The Topology Analyzer requests more memory than the others because it keeps a copy of every cluster object it watches. K8sGPT analysis runs inside it, so there is no separate K8sGPT container.
Requests (what the scheduler reserves) are deliberately small; limits are ceilings the containers can burst to and are rarely reached on typical clusters.
Monitoring pods
Installed when da-monitoring.enabled is true (the default). Set it to false to skip them — see the Helm chart reference.
| Pod | CPU request | Memory request | Notes |
|---|---|---|---|
| prometheus-server | 260m | 2072Mi | Prometheus plus its config-reload container |
| kube-state-metrics | 100m | 128Mi | |
| node-exporter | 50m | 32Mi | Per node — one pod runs on each node |
| Total (single node) | 410m | 2232Mi |
prometheus-server also requests 2Gi of ephemeral storage (node disk). It keeps metrics in an emptyDir volume rather than a PersistentVolume, so no StorageClass is needed, but the node it lands on needs that much free disk. Metric history is lost whenever the pod restarts.
Tuning
Default values are sized for clusters up to ~200 nodes and ~2000 pods. On very large clusters, raise the Topology Analyzer memory limit together with topologyAnalyzer.config.goMemLimit — keep goMemLimit at ~80% of the memory limit, expressed as an integer plus MiB or GiB. It must stay below the limit: a goMemLimit at or above the container memory limit disables the agent’s out-of-memory protection, so the chart refuses to render that combination (checked when the limit uses Mi/Gi units, as in the example below).
helm upgrade dataagent oci://ghcr.io/data-agent-co/dataagent-chart \
--namespace dataagent \
--reset-then-reuse-values \
--set topologyAnalyzer.resources.limits.memory=4Gi \
--set topologyAnalyzer.config.goMemLimit=3276MiBOn small clusters you can lower the pair the same way (for example 1Gi with goMemLimit=819MiB). Keep the limit at or above the 512Mi memory request.
Kubernetes API load
The metrics collector and topology analyzer query the Kubernetes API. Default rate limits:
| Setting | Default |
|---|---|
metricsCollector.config.k8sQPS | 50 req/s |
metricsCollector.config.k8sBurst | 100 req/s |
These are well within the default API server rate limits and should not require adjustment unless your cluster has API rate limiting stricter than defaults.