Skip to content

预处理阶段

在此阶段,该工具会分析用户项目中的第三方依赖项。它将它们与埋点规则存储库进行匹配,以确定哪些规则适用。同时,它会准备这些规则所需的任何附加依赖项。

埋点规则精确定义了要注入什么代码、在哪里注入以及针对哪个版本的框架或标准库。不同类型的规则服务于不同的目的,包括:

  • InstFuncRule:在方法的入口和出口点注入代码。
  • InstStructRule:通过添加新字段来修改结构体。
  • InstFileRule:添加一个新文件以参与原始编译过程。

预处理完成后,该工具通过执行go build -toolexec otel cmd/app来启动埋点构建。-toolexec标志是我们自动埋点的核心。它指示Go编译器将其标准构建工具替换为我们的自定义工具otel

向otel工具的交接标志着向埋点阶段的过渡,在此阶段将应用在预处理期间识别的规则。