Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ebpf collector #156

Merged
merged 18 commits into from
Sep 17, 2024
Merged

Add ebpf collector #156

merged 18 commits into from
Sep 17, 2024

Conversation

mahendrapaipuri
Copy link
Owner

No description provided.

@mahendrapaipuri mahendrapaipuri added the enhancement New feature or request label Sep 5, 2024
@mahendrapaipuri mahendrapaipuri added this to the v0.3.0 milestone Sep 5, 2024
* Refactor cgroup detection into separate file. We should be able to use the struct in different collectors

* Use go routines in perf collector to update

Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
* Override BPF_TARGET_ARCH from uname for amd64 and arm64

Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
* Our first approach of monitoring link level funcs is not going anywhere due to lack of process context in those functions. So we resorted to monitoring TCP and UDP sockets which are more high level but surely we will have correct process context

Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
* Make a generic cgroup collector that can be used for different resource managers. Generic cgroup collector wont register itself to Collector interface and it is meant to be used in other collectors. Resource manager collectors must pass a list of valid cgroup paths to cgroup collector for metrics fetching.

* Similarly perf collector has been modified to become internal generic collector that must be called from other collectors specific to resource managers. Same goes to ebpf collector where it becomes an internal collector that is meant to be called from other collectors.

* cgroup, perf and ebpf collectors take an argument cgroupManager during instantiation that will direct on which processes/cgroups must be monitored.

* The side-effect is that we replicate CLI args for each resource manager but this should not be an issue as exporter on a given host will not/should not target two different resource managers. So, operators will never have to deal with duplication.

Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
* This will make the Makefile of repo simpler to do everyday development

Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
@mahendrapaipuri mahendrapaipuri changed the title Add ebpf exporter Add ebpf collector Sep 15, 2024
* Add an empty bpf target for CGO_BUILD apps

Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
…n evicting entries

* Keep CPU specific LRU cache for better performance

Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
Signed-off-by: Mahendra Paipuri <mahendra.paipuri@gmail.com>
@mahendrapaipuri mahendrapaipuri merged commit e297800 into main Sep 17, 2024
15 checks passed
@mahendrapaipuri mahendrapaipuri deleted the ebpf_exporter branch September 17, 2024 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant