ruby: eBPF profiling
- Dominant language
- Python
- Stars
- 826
- Forks
- 79
- PR merge metrics
- No merged PRs in 30d
Description
For Ruby we currently use rbspy. Ruby is a fairly simple VM, like Python, so an eBPF profiler would be about the same project size as our [PyPerf](https://github.com/Granulate/bcc/tree/master/examples/cpp/pyperf) - a profiler driver which loads a set of perf_events BPF programs that profile all Ruby processes running on the system.
I doin't think we should use BCC like PyPerf - instead, a driver written in C/C++/Rust & BPF programs written in C over libbpf is the way to go.
Existing resources:
* [rbperf](https://github.com/facebookarchive/rbperf) - haven't tried it but it's a functioning Ruby profiler for a single PID and a single Ruby version. BPF is written in C, driver is written in Python (BCC). Seems unmaintained. We can draw inspiration from it.
Contributor guide
Assessment
This issue has not been assessed yet.