Skip to content

Commit bd9baa7

Browse files
committed
rename to probing
1 parent a04e19c commit bd9baa7

29 files changed

Lines changed: 154 additions & 174 deletions

.github/workflows/pypi.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ jobs:
6262
- name: Build package
6363
run: |
6464
make ZIG=1 wheel
65-
rnr -f probe probe-tool dist/*.whl
6665
- name: Publish package
6766
uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
6867
with:

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Cargo.lock
1212

1313
# MSVC Windows builds of rustc generate these, which store debugging information
1414
*.pdb
15-
probe.egg-info/
15+
probing.egg-info/
1616
*.so
1717
*.bak
1818
.idea/

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[package]
2-
name = "probe"
2+
name = "probing"
33
version = "0.1.0"
44
edition = "2021"
55

@@ -26,7 +26,7 @@ nu-ansi-term = "0.50.0"
2626
once_cell = "1.19.0"
2727
pin-project-lite = "0.2"
2828
pprof = { version = "0.13.0", features = ["cpp", "flamegraph"] }
29-
probe-common = { path = "common" }
29+
probing-common = { path = "common" }
3030
procfs = "0.16.0"
3131
pyo3 = { version = "0.21.2", features = ["abi3", "abi3-py37"] }
3232
qstring = "0.7.2"

Makefile

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
data_scripts_dir := probe-0.1.0.data/scripts/
1+
data_scripts_dir := probing-0.1.0.data/scripts/
22
ifndef DEBUG
33
CARGO_FLAGS := -r
44
TARGET_DIR := release
@@ -17,11 +17,9 @@ else
1717
TARGET_DIR_PREFIX := target/x86_64-unknown-linux-gnu
1818
endif
1919

20-
app_src := $(wildcard app/src/**.rs)
21-
2220
all: wheel
2321

24-
wheel: ${TARGET_DIR_PREFIX}/${TARGET_DIR}/probe ${TARGET_DIR_PREFIX}/${TARGET_DIR}/libprobe.so
22+
wheel: ${TARGET_DIR_PREFIX}/${TARGET_DIR}/probing ${TARGET_DIR_PREFIX}/${TARGET_DIR}/libprobing.so
2523
rm -rf dist
2624
maturin build -r ${MATURIN_FLAGS}
2725
test -e dist || mkdir -p dist
@@ -36,19 +34,15 @@ app/dist:
3634
${data_scripts_dir}:
3735
test -e ${data_scripts_dir}|| mkdir -p ${data_scripts_dir}
3836

39-
.PHONY: ${TARGET_DIR_PREFIX}/${TARGET_DIR}/probe
40-
${TARGET_DIR_PREFIX}/${TARGET_DIR}/probe: ${data_scripts_dir}
41-
cargo ${CARGO_BUILD_CMD} ${CARGO_FLAGS} --package probe-cli
37+
.PHONY: ${TARGET_DIR_PREFIX}/${TARGET_DIR}/probing
38+
${TARGET_DIR_PREFIX}/${TARGET_DIR}/probing: ${data_scripts_dir}
39+
cargo ${CARGO_BUILD_CMD} ${CARGO_FLAGS} --package probing-cli
4240
test -e ${data_scripts_dir} || mkdir -p ${data_scripts_dir}
43-
cp ${TARGET_DIR_PREFIX}/${TARGET_DIR}/probe ${data_scripts_dir}
41+
cp ${TARGET_DIR_PREFIX}/${TARGET_DIR}/probing ${data_scripts_dir}
4442

45-
.PHONY: ${TARGET_DIR_PREFIX}/${TARGET_DIR}/libprobe.so
46-
${TARGET_DIR_PREFIX}/${TARGET_DIR}/libprobe.so: ${data_scripts_dir} app/dist
43+
.PHONY: ${TARGET_DIR_PREFIX}/${TARGET_DIR}/libprobing.so
44+
${TARGET_DIR_PREFIX}/${TARGET_DIR}/libprobing.so: ${data_scripts_dir} app/dist
4745
cargo ${CARGO_BUILD_CMD} ${CARGO_FLAGS}
48-
cp ${TARGET_DIR_PREFIX}/${TARGET_DIR}/libprobe.so ${data_scripts_dir}
46+
cp ${TARGET_DIR_PREFIX}/${TARGET_DIR}/libprobing.so ${data_scripts_dir}
4947

50-
.PHONY: test
51-
test:
52-
echo ${DEBUG} "," ${CARGO_FLAGS}
53-
echo ${app_src}
5448

README.cn.md

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# Probe: AI应用的性能与稳定性诊断工具
1+
# Probing: AI应用的性能与稳定性诊断工具
22

3-
Probe 是一款专为AI应用设计的性能与稳定性诊断工具,旨在解决大规模、分布式、长周期AI异构计算任务(如LLM训练和推理)中的调试与优化难题。通过向目标进程植入探针服务(probe server),可以更详细地采集性能数据,或实时修改目标进程的执行行为。
3+
Probing 是一款专为AI应用设计的性能与稳定性诊断工具,旨在解决大规模、分布式、长周期AI异构计算任务(如LLM训练和推理)中的调试与优化难题。通过向目标进程植入探针服务(probing server),可以更详细地采集性能数据,或实时修改目标进程的执行行为。
44

55
## 主要特性
66

7-
Probe的主要功能包括
7+
Probing的主要功能包括
88

99
- 调试功能:
1010
- 观测目标进程的调用栈、Python对象、Torch Tensor与模块等;
@@ -16,7 +16,7 @@ Probe的主要功能包括:
1616
- 提供HTTP接口,用于获取数据和控制目标进程执行;
1717
- 支持远程注入任意Python代码至目标进程。
1818

19-
相比其他调试与诊断工具,`probe`能够即插即用,可在任意时刻侵入目标进程,无需中断或重启,也无需修改代码。
19+
相比其他调试与诊断工具,`probing`能够即插即用,可在任意时刻侵入目标进程,无需中断或重启,也无需修改代码。
2020

2121
## Quick Start
2222

@@ -25,29 +25,29 @@ Probe的主要功能包括:
2525
**通过命令行注入**
2626

2727
```shell
28-
probe --pid <pid> inject [OPTIONS]
28+
probing --pid <pid> inject [OPTIONS]
2929
```
3030

3131
选项:`-P,--pprof` 启用 profiling;`-c,--crash` 启用崩溃处理;`-l,--listen <ADDRESS>` 在指定地址服务监听远程连接。
3232

3333
**通过代码注入**
3434

3535
```python
36-
import probe
37-
probe.init(listen="127.0.0.1:9922")
36+
import probing
37+
probing.init(listen="127.0.0.1:9922")
3838
```
3939

4040
### 调试与性能诊断
4141

42-
注入探针后,可以使用probe提供的命令进行问题诊断
42+
注入探针后,可以使用probing提供的命令进行问题诊断
4343

4444
- `debug`命令(别名`dbg``d`),调试与检查工具,用于定位进程阻塞和死锁问题;
4545

4646
```sh
47-
$ probe help debug
47+
$ probing help debug
4848
Debug and Inspection Tool
4949

50-
Usage: probe debug [OPTIONS]
50+
Usage: probing debug [OPTIONS]
5151

5252
Options:
5353
-d, --dump Dump the calling stack of the target process
@@ -59,20 +59,20 @@ probe.init(listen="127.0.0.1:9922")
5959
例如:
6060

6161
```sh
62-
$probe -p <pid> debug --dump # 打印目标进程的当前调用堆栈
63-
$probe -p <pid> d -d # 同上,使用简化命令
62+
$probing -p <pid> debug --dump # 打印目标进程的当前调用堆栈
63+
$probing -p <pid> d -d # 同上,使用简化命令
6464
65-
$probe -p <pid> debug --pause --address 127.0.0.1:9922 #暂停目标进程,并等待远程连接
66-
$probe -p <pid> d -p -a 127.0.0.1:9922 # 同上,使用简化命令
65+
$probing -p <pid> debug --pause --address 127.0.0.1:9922 #暂停目标进程,并等待远程连接
66+
$probing -p <pid> d -p -a 127.0.0.1:9922 # 同上,使用简化命令
6767
```
6868

6969
- `performance`命令(别名:`perf``p`):性能诊断工具,用于收集性能数据、诊断性能瓶颈;
7070

7171
```sh
72-
$probe help performance
72+
$probing help performance
7373
Performance Diagnosis Tool
7474
75-
Usage: probe performance [OPTIONS]
75+
Usage: probing performance [OPTIONS]
7676
7777
Options:
7878
--cc profiling c/c++ codes
@@ -83,12 +83,12 @@ probe.init(listen="127.0.0.1:9922")
8383
例如:
8484

8585
```sh
86-
$probe -p <pid> perf --cc # 启用c/c++ 的profiling,可输出flamegraph
87-
$probe -p <pid> perf --torch # 启用torch的profiling
86+
$probing -p <pid> perf --cc # 启用c/c++ 的profiling,可输出flamegraph
87+
$probing -p <pid> perf --torch # 启用torch的profiling
8888
```
8989
### 进阶功能
9090

91-
probe 为大模型的开发与调试提供了一系列Python分析与诊断功能:
91+
probing 为大模型的开发与调试提供了一系列Python分析与诊断功能:
9292

9393
- Activity分析:捕获每个线程当前执行的Python堆栈信息;
9494
- Debug功能:启动Python远程调试功能,可在VSCode中调试目标进程;
@@ -97,23 +97,23 @@ probe 为大模型的开发与调试提供了一系列Python分析与诊断功
9797

9898
这些功能可以通过web界面访问。注入探针时指定服务地址,例如:
9999
```shell
100-
probe <pid> inject -b -a 127.0.0.1:1234
100+
probing <pid> inject -b -a 127.0.0.1:1234
101101
```
102102
之后可以通过浏览器打开`http://127.0.0.1:1234`来使用上述功能。
103103

104-
## 安装probe
104+
## 安装probing
105105

106106
### 二进制安装
107107

108-
`probe` 可以通过pip命令安装:
108+
`probing` 可以通过pip命令安装:
109109

110110
```sh
111-
$ pip install probe-tool
111+
$ pip install probing
112112
```
113113

114114
### 源码构建
115115

116-
`probe` 构建时依赖`trunk`工具,可通过如下命令安装,若已经安装可以跳过此步:
116+
`probing` 构建时依赖`trunk`工具,可通过如下命令安装,若已经安装可以跳过此步:
117117
```shell
118118
cargo install trunk
119119
```
@@ -124,17 +124,17 @@ sh build.sh
124124

125125
### 开发模式
126126

127-
为了便于用户使用,probe将python脚本与web app打包进libprobe.so中。开发时每次修改代码都要重新打包会极大的降低效率。
127+
为了便于用户使用,probing将python脚本与web app打包进libprobing.so中。开发时每次修改代码都要重新打包会极大的降低效率。
128128
因此这里推荐手动构建:
129129

130130
```shell
131131
# 持续构建web app
132132
cd app
133133
trunk watch --filehash false -d dist/
134134
135-
# 构建probe与libprobe
135+
# 构建probing与libprobing
136136
cargo b -p cli
137137
cargo b
138138
```
139139

140-
在debug模式下,`probe`会自动从dist目录加载web app,从src/加载python脚本,而无需重新打包。
140+
在debug模式下,`probing`会自动从dist目录加载web app,从src/加载python脚本,而无需重新打包。

README.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
### Probe: A Performance and Stability Diagnostic Tool for AI Applications
1+
### Probing: A Performance and Stability Diagnostic Tool for AI Applications
22

3-
Probe is a performance and stability diagnostic tool designed specifically for AI applications. It aims to solve the debugging and optimization challenges of large-scale, distributed, long-duration heterogeneous computing tasks (such as LLM training and inference). By injecting a probe server into the target process, it can collect more detailed performance data or modify the execution behavior of the target process in real-time.
3+
Probing is a performance and stability diagnostic tool designed specifically for AI applications. It aims to solve the debugging and optimization challenges of large-scale, distributed, long-duration heterogeneous computing tasks (such as LLM training and inference). By injecting a probing server into the target process, it can collect more detailed performance data or modify the execution behavior of the target process in real-time.
44

55
## Key Features
66

7-
The main features of Probe include:
7+
The main features of Probing include:
88

99
- **Debugging Capabilities**:
1010
- Observing the call stack, Python objects, Torch Tensors, and modules of the target process;
@@ -16,16 +16,16 @@ The main features of Probe include:
1616
- Providing HTTP interfaces to retrieve data and control the execution of the target process;
1717
- Supporting remote injection of arbitrary Python code into the target process.
1818

19-
Compared to other debugging and diagnostic tools, `probe` is plug-and-play, allowing it to intrude into the target process at any time without interruption or restart, and without modifying the code.
19+
Compared to other debugging and diagnostic tools, `probing` is plug-and-play, allowing it to intrude into the target process at any time without interruption or restart, and without modifying the code.
2020

2121
## Quick Start
2222

23-
### Injecting the Probe
23+
### Injecting the Probing
2424

25-
Use the following command to inject the probe:
25+
Use the following command to inject the probing:
2626

2727
```shell
28-
probe <pid> inject [OPTIONS]
28+
probing <pid> inject [OPTIONS]
2929
```
3030

3131
Options:
@@ -37,47 +37,47 @@ Options:
3737

3838
### Diagnosing Issues
3939

40-
After injecting the probe, you can use the commands provided by probe to diagnose issues:
40+
After injecting the probing, you can use the commands provided by probing to diagnose issues:
4141

4242
- `dump`: Print the current call stack to locate process blockages and deadlocks:
4343

4444
```shell
45-
probe <pid> dump
45+
probing <pid> dump
4646
```
4747

4848
- `pause`: Pause the process and start a remote debugging service:
4949

5050
```shell
51-
probe <pid> pause [ADDRESS] # ADDRESS is optional, default is a random port
51+
probing <pid> pause [ADDRESS] # ADDRESS is optional, default is a random port
5252
nc 127.0.0.1 3344 # Use nc to connect to the debugging service
5353
```
5454

5555
- `catch`: Take over error handling and start a remote service upon error:
5656

5757
```shell
58-
probe <pid> catch
58+
probing <pid> catch
5959
```
6060

6161
- `listen`: Start the background debugging service:
6262

6363
```shell
64-
probe <pid> listen [ADDRESS] # ADDRESS is optional, default is a random port
64+
probing <pid> listen [ADDRESS] # ADDRESS is optional, default is a random port
6565
nc 127.0.0.1 3344 # Use nc to connect to the debugging service
6666
```
6767

6868
- `execute`: Inject and execute code:
6969

7070
```shell
71-
probe <pid> execute <SCRIPT>
71+
probing <pid> execute <SCRIPT>
7272
# For example
73-
probe <pid> execute script.py
74-
probe <pid> execute "import traceback;traceback.print_stack()"
73+
probing <pid> execute script.py
74+
probing <pid> execute "import traceback;traceback.print_stack()"
7575
```
7676

7777
- `pprof`: Start profiling:
7878

7979
```shell
80-
probe <pid> pprof
80+
probing <pid> pprof
8181

8282
# Wait for a while and then get the flame graph
8383
sleep 10
@@ -87,30 +87,30 @@ curl http://127.0.0.1:3344/flamegraph > flamegraph.svg
8787

8888
### Advanced Features
8989

90-
Probe also provides a series of Python analysis and diagnostic features for the development and debugging of large models:
90+
Probing also provides a series of Python analysis and diagnostic features for the development and debugging of large models:
9191

9292
- Activity Analysis: Capture the current Python stack information of each thread;
9393
- Debugging: Start Python remote debugging to debug the target process in VSCode;
9494
- Profiling: Profile the execution of torch models;
9595
- Inspection: Inspect Python objects, torch Tensors, and torch Modules;
9696

97-
These features can be accessed through a web interface. For example, specify the service address when injecting the probe:
97+
These features can be accessed through a web interface. For example, specify the service address when injecting the probing:
9898

9999
```shell
100-
probe <pid> inject -b -a 127.0.0.1:1234
100+
probing <pid> inject -b -a 127.0.0.1:1234
101101
```
102102

103103
Then, you can access the above features by opening `http://127.0.0.1:1234` in a browser.
104104

105-
##Installing Probe
105+
##Installing Probing
106106

107107
### Binary Installation
108108

109-
`probe` does not require special installation. Simply download the release file, extract it, and execute. Users can optionally add probe to the $PATH environment variable.
109+
`probing` does not require special installation. Simply download the release file, extract it, and execute. Users can optionally add probing to the $PATH environment variable.
110110

111111
### Building from Source
112112

113-
`probe` relies on the trunk tool for building. Install it using the following command, or skip this step if it is already installed:
113+
`probing` relies on the trunk tool for building. Install it using the following command, or skip this step if it is already installed:
114114

115115
```shell
116116
cargo install trunk
@@ -124,16 +124,16 @@ sh build.sh
124124

125125
### Development Mode
126126

127-
To facilitate development, probe packages Python scripts and the web app into libprobe.so. Repacking every time code is modified can significantly reduce efficiency, so manual building is recommended:
127+
To facilitate development, probing packages Python scripts and the web app into libprobing.so. Repacking every time code is modified can significantly reduce efficiency, so manual building is recommended:
128128

129129
```shell
130130
# Continuously build the web app
131131
cd app
132132
trunk watch --filehash false -d dist/
133133

134-
# Build probe and libprobe
134+
# Build probing and libprobing
135135
cargo b -p cli
136136
cargo b
137137
```
138138

139-
In debug mode, probe will automatically load the web app from the dist directory and Python scripts from src, eliminating the need for repacking.
139+
In debug mode, probing will automatically load the web app from the dist directory and Python scripts from src, eliminating the need for repacking.

app/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[package]
2-
name = "probe-app"
2+
name = "probing-app"
33
version = "0.1.0"
44
edition = "2021"
55

@@ -30,7 +30,7 @@ leptos_meta = { version = "0.6.5", features = ["csr"] }
3030
leptos_router = { version = "0.6.5", features = ["csr"] }
3131
thiserror = "1.0.56"
3232
serde = { version = "1", features = ["derive"] }
33-
probe-common = {path="../common"}
33+
probing-common = {path="../common"}
3434
serde_json = "1.0.117"
3535

3636
[package.metadata.leptonic]

0 commit comments

Comments
 (0)