Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/clouddetail/preload
https://github.com/clouddetail/preload
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/clouddetail/preload
- Owner: CloudDetail
- Created: 2024-08-09T08:17:37.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-08-28T05:45:27.000Z (4 months ago)
- Last Synced: 2024-08-28T06:42:38.676Z (4 months ago)
- Language: Rust
- Size: 33.2 KB
- Stars: 0
- Watchers: 0
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Preload
用于挂载操作系统的`execve`函数,自动加载APM探针
功能包括包括:
- 识别后续启动程序的语言类型
- 检查语言对应的APM探针并使用注入需要的环境变量
- (当前仅JAVA) 自动创建ServiceName
- 继续程序启动流程使用 `make dist` 创建安装文件, 执行 `bash install.sh` 安装到本地
使用 `make release` 创建 `install-apo-instrument.tar.gz` 安装包, 用于在其他机器上安装
卸载方式:
从 /etc/ld.so.preload 中移除 /etc/apo/instrument/libapolanucher.so 一行;
如果只有这一行,也可以直接移除 /etc/ld.so.preload 文件;
重启命令行后完全卸载.**特殊情况**
因为preload会在ssh登陆时加载,如果出现了ssh无法登录的情况,可以用scp拷贝空白文件来覆盖目标机器的/etc/ld.so.preload; 也可以完成卸载随后可以通过下面的命令清理剩余文件
rm -r /etc/apo
## 在虚拟机上使用
执行 install.sh 结束后即对所有程序的启动命令生效
## 在Docker容器内使用
在宿主机上完成安装后,启动容器时添加下面的参数
-v /etc/apo:/etc/apo
-e LD_PRELOAD=/etc/apo/instrument/libapolanucher.so其中 -v 用于挂载探针文件, -e 用于加载Preload库
例如原始启动命令为:
docker run -d exampleApp:tag
修改成:
docker run -d \
-v /etc/apo:/etc/apo \
-e LD_PRELOAD=/etc/apo/instrument/libapolanucher.so \
exampleApp:tag