intel / intel/gprofiler

ruby: eBPF profiling

Open
#494 0 comments 0 reactions 0 assignees View on GitHub
runtime/ruby
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.