Documentation menu

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

ContainerCPU requestCPU limitMemory requestMemory limit
Orchestrator100m2000m128Mi2Gi
Topology Analyzer100m2000m512Mi2Gi
Metrics Collector100m2000m128Mi2Gi
Watcher100m2000m128Mi2Gi
Log Watcher100m2000m128Mi2Gi
Total500m10000m1Gi10Gi

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.

PodCPU requestMemory requestNotes
prometheus-server260m2072MiPrometheus plus its config-reload container
kube-state-metrics100m128Mi
node-exporter50m32MiPer node — one pod runs on each node
Total (single node)410m2232Mi

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=3276MiB

On 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:

SettingDefault
metricsCollector.config.k8sQPS50 req/s
metricsCollector.config.k8sBurst100 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.