SuperAPI AI 工具集

serverless-integrations

部署与运维

查看项目

更新于 10-31 06:05

技能介绍

本技能针对 dd-trace-js 在无服务器平台边界上的插桩工作,适用场景是 dd-trace-js 负责函数调用生命周期的情况。若只是追踪运行在无服务器函数内部的普通库调用,应改用 apm-integrations。

用途与判定 资料给出决策门:追踪 Lambda/Azure/GCP 内部第三方库调用走 apm-integrations,产生调用下的子跨度;追踪云函数调用本身使用本技能,产生 type = 'serverless' 的根跨度;追踪 HTTP、队列或事件触发器使用本技能并结合触发器参考,产生根跨度加上下文或链接;修改 AWS Lambda 启动或超时行为也使用本技能,走特殊运行时包装路径。资料明确提醒,不要按 Lambda 启动包装来建模普通库插件,Lambda 属于兼容/运行时包装路径,不是新集成的默认架构。

核心不变量 无服务器平台集成把一次调用视为主要工作单元。根插件设置静态 kind = 'server' 和静态 type = 'serverless'。除非更具体的本地模式明显适用,否则使用 TracingPlugin,不要仅因跨度 kind 是 server 就默认使用 ServerPlugin。集成需负责所有完成路径:成功、抛出错误、被拒绝的 promise、回调完成、超时,以及平台暴露的运行时关闭。刷盘行为必须围绕平台冻结或终止进程来设计。上下文提取发生在平台边界,包括 HTTP 头、事件/消息属性、客户端上下文或批量跨度链接。需保留诊断通道订阅者行为,AppSec、IAST、遥测等订阅者可能依赖已发布事件,即使追踪插件被禁用。静态模块钩子优先使用 Orchestrion;仅当平台处理器模型需要动态拦截时才用 shimmer/运行时包装,并记录原因。

使用方式与工作流 先读 references/architecture.md 确认属于无服务器根还是普通 APM;再读 references/reference-integrations.md 并检查至少一个仓库内匹配实现;实现工作遵循 references/implementation-guide.md;测试和部署验证遵循 references/testing-guide.md。

实现清单 运行时可通过普通钩子观察时,在 packages/datadog-instrumentations/ 增改插桩;跨度由诊断通道事件创建时,在 packages/datadog-plugin-<name>/ 增改插件;在 packages/dd-trace/src/plugins/index.js 注册插件;在 packages/dd-trace/src/service-naming/schemas/*/serverless.js 添加服务命名行为;仅当用户面配置变化时才添加文档、TypeScript 配置面和受支持集成元数据。HTTP 触发函数可复用 web.patch、web.startServerlessSpanWithInferredProxy、web.finishAll 等 web 辅助;批量/消息触发器尽量按条目提取上游上下文,多个上游上下文使用跨度链接。

审查清单 调用跨度在用户处理器执行前开始且恰好完成一次;错误标记在调用跨度上且不使应用崩溃;运行时支持时覆盖异步、promise、回调和同步处理器;超时或临近关闭时在平台冻结前完成或刷出追踪数据;禁用插桩不影响其他无关集成;部署/手动验证需确认 Datadog 中出现追踪,而不仅是本地单元行为。

限制 资料未提供具体平台版本支持范围、配置项细节、安装命令或收费信息,相关内容暂未提供。