Commit 1a5903b
fix(dx_evidence_graph): node identity = pod→service→IP, so empty-pod peers don't collapse
Edges whose peer is not a pod (k8s API server, external/IP endpoints, consulted
sockets) carry an empty requestor_pod/responder_pod. The Graph widget keyed on
*_pod alone, so EVERY such edge collapsed into one bogus "" node — visually
merging unrelated peers (the API server, every distinct remote IP) into one.
Coalesce node identity to pod, else service, else IP (the same idiom
net_flow_graph uses: px.select(src=='', src_ip, src)) and point the adjacencyList
from/to at the coalesced columns. Now each distinct peer is its own node.
Validated live (px run, forensic_db): control-plane → k8s-apiserver; the 5
consulted sockets → 5 distinct IPs (10.43.143.34, 10.42.0.1, ::1, 127.0.0.1,
10.42.0.43) instead of one merged node.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent b7d915c commit 1a5903b
2 files changed
Lines changed: 15 additions & 3 deletions
Lines changed: 13 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
23 | 35 | | |
24 | 36 | | |
25 | 37 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
44 | | - | |
| 43 | + | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
0 commit comments