summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-07-12 09:08:27 +0300
committerPaul Buetow <paul@buetow.org>2026-07-12 09:08:27 +0300
commit65b728742d07173b52cd714288b1aa3491b8316c (patch)
tree65ac3b96cb6b69fe14aa1ce506973e9bfc5e8274
parent37d88cfedf8a387930332ee53091cff6bd8dc7a7 (diff)
Fix swap and FreeBSD memory alert thresholds
-rw-r--r--f3s/prometheus/freebsd-recording-rules.yaml15
-rw-r--r--f3s/prometheus/manifests/freebsd-recording-rules.yaml15
-rw-r--r--frontends/etc/gogios.json.tpl4
3 files changed, 28 insertions, 6 deletions
diff --git a/f3s/prometheus/freebsd-recording-rules.yaml b/f3s/prometheus/freebsd-recording-rules.yaml
index edc4429..c2a747d 100644
--- a/f3s/prometheus/freebsd-recording-rules.yaml
+++ b/f3s/prometheus/freebsd-recording-rules.yaml
@@ -16,10 +16,19 @@ spec:
labels:
os: freebsd
- # Synthetic MemAvailable for FreeBSD
- # Available = free + inactive + cache (approximation)
+ # Synthetic MemAvailable for FreeBSD. Laundry pages are reclaimable
+ # after writeback, as is the portion of ZFS ARC above its minimum.
- record: node_memory_MemAvailable_bytes
- expr: node_memory_free_bytes{os="freebsd"} + node_memory_inactive_bytes{os="freebsd"} + node_memory_cache_bytes{os="freebsd"}
+ expr: |
+ node_memory_free_bytes{os="freebsd"}
+ + node_memory_inactive_bytes{os="freebsd"}
+ + node_memory_cache_bytes{os="freebsd"}
+ + node_memory_laundry_bytes{os="freebsd"}
+ + clamp_min(
+ node_zfs_arcstats_size_bytes{os="freebsd"}
+ - node_zfs_arcstats_c_min_bytes{os="freebsd"},
+ 0
+ )
labels:
os: freebsd
diff --git a/f3s/prometheus/manifests/freebsd-recording-rules.yaml b/f3s/prometheus/manifests/freebsd-recording-rules.yaml
index 501a54c..e543787 100644
--- a/f3s/prometheus/manifests/freebsd-recording-rules.yaml
+++ b/f3s/prometheus/manifests/freebsd-recording-rules.yaml
@@ -18,10 +18,19 @@ spec:
labels:
os: freebsd
- # Synthetic MemAvailable for FreeBSD
- # Available = free + inactive + cache (approximation)
+ # Synthetic MemAvailable for FreeBSD. Laundry pages are reclaimable
+ # after writeback, as is the portion of ZFS ARC above its minimum.
- record: node_memory_MemAvailable_bytes
- expr: node_memory_free_bytes{os="freebsd"} + node_memory_inactive_bytes{os="freebsd"} + node_memory_cache_bytes{os="freebsd"}
+ expr: |
+ node_memory_free_bytes{os="freebsd"}
+ + node_memory_inactive_bytes{os="freebsd"}
+ + node_memory_cache_bytes{os="freebsd"}
+ + node_memory_laundry_bytes{os="freebsd"}
+ + clamp_min(
+ node_zfs_arcstats_size_bytes{os="freebsd"}
+ - node_zfs_arcstats_c_min_bytes{os="freebsd"},
+ 0
+ )
labels:
os: freebsd
diff --git a/frontends/etc/gogios.json.tpl b/frontends/etc/gogios.json.tpl
index 122e867..4258592 100644
--- a/frontends/etc/gogios.json.tpl
+++ b/frontends/etc/gogios.json.tpl
@@ -161,7 +161,11 @@
"Plugin": "<%= $plugin_dir %>/check_swap",
"RandomSpread": 10,
"RunInterval": 300,
+<% if ($hostname eq 'fishfinger') { -%>
+ "Args": ["-w", "20%", "-c", "10%"]
+<% } else { -%>
"Args": ["-w", "95%", "-c", "90%"]
+<% } -%>
},
"Check Procs <%= $hostname %>": {
"Plugin": "<%= $plugin_dir %>/check_procs",