NPD needs significant unit test coverage
@DigitalVeer ci sta già lavorando.
Dal 27/7/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
We should improve the overall test coverage present in NPD.
Currently, NPD's unit test coverage is 46.0% of 2299 statements. There are important packages, such as the custom plugin monitor, that have close to no test coverage at all.
Recent PRs such as #1322 and #1323 showed real headroom to make NPD faster and memory effecient, and more optimization work like that is worth pursuing. NPD also stands to benefit from agent-assisted development which can help us unlock more performance and reliability improvements over time. This type of work is only safe on top of reliable test infrastructure.
The table below are packages worth targeting in a first round of unit test improvement due to their importance in NPD workloads:
| Package | Coverage | Planned work |
|---|---|---|
pkg/exporters/k8sexporter |
0.0% | export test with the fake problem client |
pkg/exporters/prometheusexporter |
0.0% | export test |
pkg/custompluginmonitor |
0.8% | table test for generateStatus |
pkg/healthchecker |
20.6% | tests for getRepairFunc, getUptimeFunc, checkForPattern |
pkg/systemlogmonitor/logwatchers/journald |
23.2% | tests for the watch loop |
pkg/systemstatsmonitor |
45.2% | fixture test for the OS feature collector |
Every other measured package is in the collapsed table. A lot of the remaining 0% rows are thin wrappers, build-time metadata, or type declarations where a unit test would not help us much immediately.
Full package test coverage
| Package | Coverage |
|---|---|
pkg/exporters/stackdriver/gce |
0.0% |
pkg/systemlogmonitor/logwatchers |
0.0% |
pkg/systemlogmonitor/logwatchers/testing |
0.0% |
pkg/version |
0.0% |
cmd/healthchecker |
0.0% |
cmd/logcounter |
0.0% |
cmd/logcounter/options |
0.0% |
pkg/exporters/stackdriver |
3.3% |
pkg/exporters/k8sexporter/problemclient |
5.4% |
pkg/problemdetector |
23.3% |
cmd/healthchecker/options |
26.5% |
cmd/nodeproblemdetector |
36.4% |
pkg/util/metrics |
44.2% |
pkg/problemdaemon |
45.0% |
pkg/systemlogmonitor |
52.2% |
cmd/options |
55.9% |
pkg/exporters |
56.2% |
pkg/logcounter |
57.9% |
pkg/util |
62.5% |
pkg/systemstatsmonitor/types |
67.6% |
pkg/util/metrics/system |
77.9% |
pkg/systemlogmonitor/logwatchers/filelog |
78.6% |
pkg/exporters/k8sexporter/condition |
78.9% |
pkg/systemlogmonitor/logwatchers/kmsg |
79.7% |
pkg/custompluginmonitor/plugin |
83.5% |
pkg/problemmetrics |
85.3% |
pkg/custompluginmonitor/types |
94.8% |
pkg/healthchecker/types |
95.6% |
pkg/exporters/stackdriver/config |
100.0% |
pkg/util/tomb |
100.0% |
pkg/types |
no tests |
pkg/systemlogmonitor/types |
no tests |
pkg/systemlogmonitor/logwatchers/types |
no tests |
pkg/logcounter/types |
no tests |
cmd/nodeproblemdetector/exporterplugins |
no tests |
cmd/nodeproblemdetector/problemdaemonplugins |
no tests |
The largest gaps exist in the custom plugin monitor, the current exporters, and the health checker, and we should target those first.
/sig node
/kind cleanup
- Lingua principale
- Go
- Stelle
- 3.5k
- Fork
- 704
- Merge medio
- 12h 21m
- PR unite (30g)
- 3
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di kubernetes/node-problem-detector
-
Flag --enable-k8s-exporter=false causes loss of /healthz, /conditions, and /debug/pprof endpointsAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 56/100
kubernetes/node-problem-detector#1332 ·
-
kind/cleanup sig/node
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
kubernetes/node-problem-detector#1331 ·
-
kind/bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 58/100
kubernetes/node-problem-detector#1176 · 7 commenti ·
-
kind/feature lifecycle/frozen
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
kubernetes/node-problem-detector#1112 · 8 commenti ·
-
Networking probesAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 32/100
kubernetes/node-problem-detector#991 · 23 commenti · 5 reazioni ·
Tutte le issue di kubernetes/node-problem-detector
Issue simili
-
[Docs] - Document minimum Terraform/OpenTofu version (>= 1.11) required by write-only argumentsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 92/100
MagaluCloud/terraform-provider-mgc#323 ·
I maintainer di solito rispondono entro 11 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
rossoctl/context-guru#366 ·
I maintainer di solito rispondono entro 1 giorno
-
stage-fail
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
siyuan-note/bazaar#2293 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
piraeusdatastore/piraeus-operator#1070 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno