Context
Surfaced by PR #461 review (closes #437). Two risk findings deferred as non-blocking:
-
SetDoubleValue projection untested: All 10 projectFBMemoryFromMetrics test cases use `SetIntValue`. The truncation path `int64(dp.DoubleValue())` at `metrics.go:344` has no coverage. Add a test case with `SetDoubleValue` + assert correct integer projection.
-
Reverse-order cross-stream join: `TestMetricsProcessor_CrossStreamJoinFragmentationVerdict` only feeds FB metric THEN OOM log. Reverse case (OOM before FB buffer populated) untested. Practical risk LOW (DCGM 15s scrape vs filelog sub-second = FB nearly always buffered first), but the implicit assumption should be locked. Add an out-of-order test that asserts the partial-verdict (`kind=unknown`) fallback fires correctly.
Refs
PR #461, issue #437.
Context
Surfaced by PR #461 review (closes #437). Two risk findings deferred as non-blocking:
SetDoubleValue projection untested: All 10 projectFBMemoryFromMetrics test cases use `SetIntValue`. The truncation path `int64(dp.DoubleValue())` at `metrics.go:344` has no coverage. Add a test case with `SetDoubleValue` + assert correct integer projection.
Reverse-order cross-stream join: `TestMetricsProcessor_CrossStreamJoinFragmentationVerdict` only feeds FB metric THEN OOM log. Reverse case (OOM before FB buffer populated) untested. Practical risk LOW (DCGM 15s scrape vs filelog sub-second = FB nearly always buffered first), but the implicit assumption should be locked. Add an out-of-order test that asserts the partial-verdict (`kind=unknown`) fallback fires correctly.
Refs
PR #461, issue #437.