|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- # GPTtrace 🤖
-
- Generate eBPF programs and tracing with ChatGPT and natural language
-
- ## Key Features 💡
-
- - Interact and Tracing your Linux with natural language, it can tell how to write eBPF programs in `BCC`, `libbpf` styles.
-
- 
-
- - Generate eBPF programs with natural language
-
-
-
- ## Usage
-
- ```console
- $ python main.py
- usage: GPTtrace [-h] [-e | -v | -r TEXT] [-u UUID] [-t ACCESS_TOKEN]
-
- Use ChatGPT to write eBPF programs (bpftrace, etc.)
-
- optional arguments:
- -h, --help show this help message and exit
- -e, --explain Let ChatGPT explain what's eBPF
- -v, --verbose Print the receive
- -r TEXT, --run TEXT Generate commands using your input with ChatGPT, and run it
- -u UUID, --uuid UUID Conversion UUID to use, or passed through environment variable `GPTTRACE_CONV_UUID`
- -t ACCESS_TOKEN, --access-token ACCESS_TOKEN
- ChatGPT access token, see `https://chat.openai.com/api/auth/session` or passed through
- `GPTTRACE_ACCESS_TOKEN`
- ```
-
- In order to login with ChatGPT:
-
- - get the `Conversion ID` from ChatGPT, and then set it to the environment variable `GPTTRACE_CONV_UUID` or use the `-u` option. The `Conversion ID` is the last part of the URL of the conversation, for example, the `Conversion ID` of `https://chat.openai.com/conv/1a2b3c4d-0000-0000-0000-1k2l3m4n5o6p` is `1a2b3c4d-0000-0000-0000-1k2l3m4n5o6p`(example, not usable).
- - get the `access token` from ChatGPT, and then set it to the environment variable `GPTTRACE_ACCESS_TOKEN` or use the `-t` option. see `https://chat.openai.com/api/auth/session` for the access token.
-
- ```console
-
- ## Installation 🔧
-
- ```sh
- ./install.sh
- ```
-
- ## Examples
-
- - Files opened by process
- - Syscall count by program
- - Read bytes by process:
- - Read size distribution by process:
- - Show per-second syscall rates:
- - Trace disk size by process
- - Count page faults by process
- - Count LLC cache misses by process name and PID (uses PMCs):
- - Profile user-level stacks at 99 Hertz, for PID 189:
- - Files opened, for processes in the root cgroup-v2
-
- ## 🔗 Links
-
- - detail documents and tutorials about how we train ChatGPT to write eBPF programs: https://github.com/eunomia-bpf/bpf-developer-tutorial (基于 CO-RE (一次编写,到处运行) libbpf 的 eBPF 开发者教程:通过 20 个小工具一步步学习 eBPF(尝试教会 ChatGPT 编写 eBPF 程序)
- - bpftrace: https://github.com/iovisor/bpftrace
- - ChatGPT: https://chat.openai.com/
|