(DynamicSelector-Phase4) Propagate signal ownership through app discovery and lifecycle consumers#2421
(DynamicSelector-Phase4) Propagate signal ownership through app discovery and lifecycle consumers#2421damemi wants to merge 2 commits into
Conversation
…d lifecycle consumers
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #2421 +/- ##
==========================================
+ Coverage 67.77% 69.27% +1.50%
==========================================
Files 320 332 +12
Lines 42409 44207 +1798
==========================================
+ Hits 28741 30624 +1883
+ Misses 12043 11690 -353
- Partials 1625 1893 +268
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR advances the DynamicSelector “signal ownership” work by wiring signal-specific PID selector views into the NetO11y and StatsO11y pipelines, and by starting to propagate an “owner PID” (DynamicSelectorPID) through AppO11y discovery into service attributes for downstream lifecycle consumers.
Changes:
- Wire
DynamicPIDSelector.NetworkMetrics()and.StatsMetrics()into the NetO11y/StatsO11yfilter.ByDynamicPIDstage to support per-signal PID ownership. - Add
DynamicSelectorPIDto AppO11y discovery match results (ProcessMatch) and propagate it intosvc.Attrs. - Update AppO11y dynamic matcher plumbing to use the app-signals selector view (
appSignals()) and add a basic assertion forDynamicSelectorPIDin tests.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/statsolly/agent/pipeline.go | Switch StatsO11y dynamic PID filtering to the StatsMetrics() selector view. |
| pkg/netolly/agent/pipeline.go | Switch NetO11y dynamic PID filtering to the NetworkMetrics() selector view. |
| pkg/appolly/discover/typer.go | Propagate ProcessMatch.DynamicSelectorPID into svc.Attrs. |
| pkg/appolly/discover/matcher.go | Extend ProcessMatch to carry DynamicSelectorPID for ownership tracking. |
| pkg/appolly/discover/matcher_test.go | Update dynamic matcher tests to use the app-signals view and assert DynamicSelectorPID. |
| pkg/appolly/discover/matcher_dynamic.go | Change dynamic matcher to operate on *dynamicPIDSignalView and set DynamicSelectorPID on dynamic matches. |
| pkg/appolly/discover/finder.go | Wire the app-signals dynamic selector view through finder components (process watcher + dynamic matcher). |
| pkg/appolly/app/svc/svc.go | Add DynamicSelectorPID to service attributes to support lifecycle ownership propagation. |
This implements phase 3 of #2234
Previous PRs:
This PR wires up the actual per-signal ownership for AppO11y, Network, and Stats Metrics. AppO11y still uses a union view for app traces+metrics (will be split in the next PR). Dynamic/Parent pid tracking is added for
appolly/app/svc/svc.goanddiscover/matcher.gowith theDynamicSelectorPIDfield.Summary
Describe the change briefly.
Validation