otelinji

OpenTelemetry的自动测量工具。它为所有导出的函数注入一个通用的跟踪块。
特点是:
- 支持自定义模板。例如:模板。
- 如果函数包含一个名为
err的结果参数,那么err将被记录在跨度中。 - 它支持不同名称的
ctx参数。 - 这也可以与OpenTracing一起使用,但需要一个自定义模板。
- 利用创造力,这可以用于在函数开始时的任何插入。
安装
MacOS/Linux HomeBrew
brew install hedhyw/main/otelinji
Deb/RPM
最新的DEB和RPM包可以在发布页面上找到。
进展
go install github.com/hedhyw/otelinji/cmd/otelinji@latest
来源
git clone git@github.com:hedhyw/otelinji.git
cd gherkingen
task build # Requires https://taskfile.dev/
cp ./bin/gherkingen /usr/local/bin
chmod +x /usr/local/bin
使用方法
基本用法
注入该层并重写文件(注意,一定要先提交所有的修改)。
-
otelinji -filename input_file.go > input_file.go或
-
otelinji -w -filename input_file.go或在docker中
-
docker run \ --rm \ --read-only \ --network none \ --rm \ --volume $PWD:/host \ hedhyw/otelinji:latest \ -filename /host/internal/pkg/assets/assets_test.go
递归运行
为当前目录下的所有Go文件运行:
# It will inject the layer to all exported functions.
# It will ignore vendor and .git folders, test and generated files.
find . -name "*.go" \
| grep -v "vendor/\|.git/\|_test.go" \
| xargs -n 1 -t otelinji -w -filename
在docker中也是如此:
docker run \
--rm \
--read-only \
--network none \
--volume $PWD:/host \
--entrypoint sh \
hedhyw/otelinji:latest \
-c " \
find /host -name \"*.go\" \
| grep -v \"vendor/\|.git/\|_test.go\" \
| xargs -n 1 -t /app/otelinji -w -filename \
"
帮助
otelinji --help
Usage of otelinji:
-filename string
golang file [required]
-skip-generated DO NOT EDIT
skip files with DO NOT EDIT comment (default true)
-template string
path to template file [optional] (default "@/otel")
-w write result to file [optional]