feat(exporter): implement subprocess execution with active stall watchdog and TCP metrics (#26)

- Replace in-process iperf3 C binding with subprocess execution
- Add active I/O stall detection and connect-timeout
- Expose TCP retransmissions, mean RTT (ms), and exporter cycle timestamp
- Upgrade Dockerfile to Python 3.12 running as non-root user (nobody)
- Fix testTimeout/testDuration environment variable mapping in Helm chart
- Remove dead TrueCharts prometheus-operator chart dependency
- Add unit tests for exporter metric parsing and stall handling
- Switch tooling from devbox to mise

Co-authored-by: Malarbase <malarbase@gmail.com>
This commit is contained in:
2026-09-26 10:08:28 +05:30
committed by GitHub
parent 0d93c9ea67
commit ec0a16353d
13 changed files with 486 additions and 203 deletions

17
mise.toml Normal file
View File

@@ -0,0 +1,17 @@
[tools]
python = "3.12"
uv = "latest"
helm = "3.17.3"
yq = "latest"
[tasks.test]
description = "Run exporter unit tests"
run = "uv run --with-requirements exporter/requirements.txt python -m unittest discover -s exporter -p 'test_*.py'"
[tasks."chart:build"]
description = "Build Helm chart dependencies"
run = "helm dependency build ./charts/iperf3-monitor"
[tasks."chart:lint"]
description = "Lint Helm chart"
run = "helm lint ./charts/iperf3-monitor"