源代码映射支持

编辑

Elastic APM Node.js 代理默认支持源代码映射。如果您编译了源代码并提供了源代码映射,代理将能够收集正确的堆栈跟踪,甚至在可用时收集原始源代码。

要利用此功能,只需确保您的编译后的源代码在每个 JavaScript 文件的底部包含一个 sourceMappingURL 注释。它可以指向磁盘上的源代码映射文件

//# sourceMappingURL=/path/to/file.js.map

或者您可以使用 base64 编码内联源代码映射

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyJmb28uanMiLCJiYXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O1VBQ0c7Ozs7Ozs7Ozs7Ozs7O3NCQ0RIO3NCQUNBIn0=

所有现代构建工具链都支持生成源代码映射并将这些注释添加到编译后的源代码中。

原始源代码

编辑

Elastic APM 使用源代码映射用于两个目的:收集指向原始源代码的堆栈跟踪,以及收集作为与堆栈跟踪中每个帧相关的内联代码片段的原始源代码。

为了获得最佳支持,我们建议您使用源代码映射中的 sourcesContent 属性内联原始源代码,或者将原始源代码与编译后的源代码一起部署到您的生产服务器。

如果您选择部署原始源代码,请确保可以通过源代码映射中使用 sourceRoot 属性指定的路径通过文件系统访问它。

公共访问?

编辑

您的源代码映射或原始源代码不需要通过互联网访问。所有操作都由服务器上的本地 Node.js 代理处理。