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

publish ebf as otel collector module #168

Open
cforce opened this issue Apr 21, 2023 · 7 comments
Open

publish ebf as otel collector module #168

cforce opened this issue Apr 21, 2023 · 7 comments
Labels
enhancement New feature or request

Comments

@cforce
Copy link

cforce commented Apr 21, 2023

Is your feature request related to a problem? Please describe.

I need to setup and run additional processes to enable ebf collection on devices(eg iot). I want to have the features as part and integrated into the otel collector process.

Describe the solution you'd like

Provide the collector and reducer feature set as opentelemetry collector modules which can be optional integrated as receiver and /or processor module.

Describe alternatives you've considered

No response

Additional context

No response

@cforce cforce added the enhancement New feature or request label Apr 21, 2023
@utezduyar
Copy link

wouldn't this fall under "hostmetrics" ?

@cforce
Copy link
Author

cforce commented May 3, 2023

What about metrics from https://github.com/open-telemetry/opentelemetry-ebpf/blob/main/docs/kernel-collector.md - are those covered in hostmetrics.
What about embedding reducer https://github.com/open-telemetry/opentelemetry-ebpf/blob/main/docs/reducer.md otel collector receiver for inbound ebpf stream pushed from "ebpf collector's" running on the same edge but on "low" resource devices:
The otel collector would be "the" gate on the edge for all controllers around at the same iot edge , kind of a gateway to the backend collecting epbf requests.

@utezduyar
Copy link

What I meant was to suggest if this software features should be offered under hostmetrics receiver or not. What hostmetrics offer and what this project offers is really about the hostmetrics and it would be nice to have all the configuration in one receiver. But I understand why it might benefit to keep separate too.

@atoulme
Copy link
Contributor

atoulme commented May 9, 2023

I think you are referring to the encapsulation of the eBPF collector as a receiver directly available as part of the receivers of the OpenTelemetry collector.

The collector right now doesn't allow cross-compilation of C components (it builds with CGO=0).

https://github.com/open-telemetry/opentelemetry-collector/blob/main/CONTRIBUTING.md#using-cgo

Now, we could build a separate go receiver that encapsulates the eBPF collector and offer it for folks who want to build their own collector distribution.

@cforce
Copy link
Author

cforce commented May 10, 2023

"prohibited due to the lack of portability and complexity"
Would it generally work? The problem on IOT devices mostly is that go is not the first citizen, whereas c is one.
Switching CGO=1 for a collector with ebf "onboard" ..would make sense a lot, doesn't it?
It would be great if you can provide a manual how to build the ebf (as ebf receiver using c libs) included in a "custom" collector build. I already use the ocb builder to craft my own binary why not add CG0=1 and with your manual the ebpf part and make it work on dedicated hardware.

@atoulme
Copy link
Contributor

atoulme commented May 16, 2023

From the SIG meeting: what problem are we trying to solve? Are we trying to slim down the solution to one binary, which compiles both the eBPF collector and the OpenTelemetry Collector?

Given that you mention that Go is not a first class citizen on iot devices, why not instead deploy the kernel collector on the device and move off the reducer to a central location? Then it might make sense to create a reducer receiver.

@cforce
Copy link
Author

cforce commented May 16, 2023

Sorry..maybe i made it not clear, the reducer as an otel collector receiver is exactly what i requested, where as the eBpf collector can run in x instances in the outer rim of that iot/edge device where resources are tight and go is not welcome but still push it to the collector where its gets reduced and forwarded to the cloud
The request was mean't to create a collector receiver for the reducer which can listen on inbound requests from any kernel collector process and being compiled natively.
@atoulme

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

No branches or pull requests

3 participants