Skip to content

Commit 4e2a18b

Browse files
authored
Update limits & docs (#45)
1 parent 841bd3a commit 4e2a18b

4 files changed

Lines changed: 49 additions & 20 deletions

File tree

Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
name: collector
33
description: A Helm chart for Better Stack Collector - monitoring solution that collects metrics, logs, and traces
44
type: application
5-
version: 0.1.43
5+
version: 0.1.44
66
appVersion: "latest"
77
keywords:
88
- monitoring

README.md

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,19 @@ Better Stack collector is the easiest and recommended way of integrating Better
1212

1313
[Getting started ⇗](https://betterstack.com/docs/logs/collector/#getting-started)
1414

15-
## System Requirements
15+
## System requirements
1616

17-
### Memory Requirements
17+
The chart runs the collector and, by default, an eBPF container on each node with these resources:
1818

19-
The Better Stack collector runs as a DaemonSet with two containers per node:
20-
- **Collector container**: 512MB-2GB memory
21-
- **eBPF container** (eBPF tracing): 1.5GB memory reserved
19+
| Container | CPU request | Memory request | CPU limit | Memory limit |
20+
| --- | ---: | ---: | ---: | ---: |
21+
| Collector | 200m | 512Mi | 1200m | 1Gi |
22+
| eBPF | 200m | 1536Mi | 1000m | 2Gi |
23+
| **Full-tracing total** | **400m** | **2Gi** | **2200m** | **3Gi** |
2224

23-
**Minimum recommended node specifications:**
24-
- 4GB total memory per node
25-
- 2GB available memory after system and other critical workloads
25+
The collector-only configuration was validated on a **2 vCPU / 2 GiB node** with eBPF disabled. Use that as its planning guideline and a **4 vCPU / 4 GiB node** for full tracing. These are host/node sizing guidelines, not resource allocations: the requested capacity and enough headroom up to the limits must be available after Kubernetes, the operating system, and other workloads consume resources.
2626

27-
**Important notes:**
28-
- The eBPF container requires 1.5GB memory reservation to ensure stable eBPF-based tracing
29-
- In memory-constrained or heavily overcommitted clusters, the collector may experience restarts
30-
- Both containers are configured with Guaranteed QoS class to prevent eviction under memory pressure
27+
Kubernetes uses requests to schedule and reserve capacity, while limits cap each container's usage. The unequal request and limit values are intentional, so the default Pod has **Burstable** rather than Guaranteed QoS. A container can be CPU-throttled or OOM-killed at its limits, and Burstable Pods have lower eviction priority than Guaranteed Pods under node pressure.
3128

3229
## Need help?
3330

tests/19-resource-defaults.sh

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
source "$(dirname "$0")/helpers.sh"
4+
5+
output=$(render --set collector.env.COLLECTOR_SECRET=test123)
6+
7+
collector_resources=' resources:
8+
limits:
9+
cpu: 1200m
10+
memory: 1Gi
11+
requests:
12+
cpu: 200m
13+
memory: 512Mi'
14+
ebpf_resources=' resources:
15+
limits:
16+
cpu: 1000m
17+
memory: 2Gi
18+
requests:
19+
cpu: 200m
20+
memory: 1536Mi'
21+
22+
if [[ "$output" != *"$collector_resources"* ]]; then
23+
echo "FAIL: Collector default resources do not match"
24+
exit 1
25+
fi
26+
27+
if [[ "$output" != *"$ebpf_resources"* ]]; then
28+
echo "FAIL: eBPF default resources do not match"
29+
exit 1
30+
fi
31+
32+
pass

values.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@ collector:
2626
# name: collector-config
2727
envFrom: []
2828

29-
# Resource limits and requests
29+
# Unequal default requests and limits intentionally use Burstable QoS
3030
resources:
3131
limits:
3232
cpu: 1200m
3333
memory: 1Gi
3434
requests:
35-
cpu: 800m
36-
memory: 1Gi
35+
cpu: 200m
36+
memory: 512Mi
3737

3838
# Node selector
3939
nodeSelector: {}
@@ -88,7 +88,7 @@ ebpf:
8888
pullPolicy: Always
8989

9090
env:
91-
GOMEMLIMIT: 1400MiB
91+
GOMEMLIMIT: 900MiB
9292

9393
# Example:
9494
# envFrom:
@@ -102,10 +102,10 @@ ebpf:
102102
resources:
103103
limits:
104104
cpu: 1000m
105-
memory: 3000Mi
105+
memory: 2Gi
106106
requests:
107-
cpu: 800m
108-
memory: 1000Mi
107+
cpu: 200m
108+
memory: 1536Mi
109109

110110
livenessProbe:
111111
initialDelaySeconds: 120

0 commit comments

Comments
 (0)