bazel-contrib / bazel-contrib/rules_python

eBPF tracing support for python runtime installed using bazel

Open
#1,737 2 comments 0 reactions 0 assignees View on GitHub
need: upstream support type: toolchain
Dominant language
Starlark
Stars
688
Forks
721
Avg merge
15h 7m
Merged PRs (30d)
76

Description

# 🚀 feature request

### Relevant Rules

My workspace file looks like this

```python
### PYTHON
http_archive(
name = "rules_python",
sha256 = "94750828b18044533e98a129003b6a68001204038dc4749f40b195b24c38f49f",
strip_prefix = "rules_python-0.21.0",
url = "https://github.com/bazelbuild/rules_python/releases/download/0.21.0/rules_python-0.21.0.tar.gz",
)

load("@rules_python//python:repositories.bzl", "py_repositories")

py_repositories()

# use hermetic / bundle python3.9
load("@rules_python//python:repositories.bzl", "python_register_toolchains")

python_register_toolchains(
name = "python3_9",
python_version = "3.9",
register_coverage_tool = True
)

load("@python3_9//:defs.bzl", "interpreter")
load("@rules_python//python:pip.bzl", "pip_parse")

pip_parse(
name = "python_deps",
python_interpreter_target = interpreter,
requirements_lock = "//third_party/python:requirements_lock.txt",
)

# Load the starlark macro which will define your dependencies.
load("@python_deps//:requirements.bzl", "install_deps")
```

### Description

I want to use eBPF to instrument my application.

### Describe the solution you'd like
Its possible to use eBPF if this URL is followed for building python https://docs.python.org/3/howto/instrumentation.html
In addition to this, having frame pointer is also useful, python needs to be built with the `-fno-omit-frame-pointer` option

Contributor guide

Open the contributing guide

Research direction

Start by reading the python_register_toolchains and interpreter entry points referenced in the workspace example, then compare their build configuration with Python's instrumentation requirements at the linked documentation. Done should mean that a Python runtime installed through rules_python can support eBPF instrumentation and is built with frame pointers enabled.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.