-
Notifications
You must be signed in to change notification settings - Fork 202
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
eBPF instrumentation manager (#1776)
This PR is a follow-up to #1645. Adding the new `Manager` which will eventually replace the `Director`. The new design has the following key features and improvements: 1. Use the [new runtime-detector module](https://github.com/odigos-io/runtime-detector) to trigger instrument/un-instrument events. This replaces the current approach which relies on a Pod reconciler. The pod reconciler approach main disadvantage is in scenarios of multiple containers in the same Pod and multiple processes in the same container. Changing the trigger to being process creation will allow us to guarantee we won't miss a requested instrumentation. note: the `runtime-detector` is configured to filter process events and will only pass events according to its configuration. 2. Event loop design. The current director has a lot of fixed and potential race conditions due to the concurrent nature of processes creating/exiting and Pod events from the reconciler. The new `Manager` does not have locks and uses an internal event loop. 3. Configuration updates are triggered by the `InstrumentationConfig` reconciler (same as before) - those updates will be handled in the event loop. 4. The `Factory` interface is refactored and a `Settings` option can be expanded in the future to add more initial configuration options. 5. The `Instrumentation` interface is introduced and will replace `OtelEbpfSdk`. 6. Update `go.opentelemetry.io/auto` to `v0.18.0-alpha`. This change will currently only apply for OSS Go instrumentation.
- Loading branch information
Showing
14 changed files
with
793 additions
and
275 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.