尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Elastic APM Node.js Agent 快速入门指南:3步为 Express 应用接入错误监控与分布式链路追踪

Elastic APM Node.js Agent 快速入门指南:3步为 Express 应用接入错误监控与分布式链路追踪 Elastic APM Node.js Agent 快速入门指南3步为 Express 应用接入错误监控与分布式链路追踪【免费下载链接】apm-agent-nodejsElastic APM Node.js Agent项目地址: https://gitcode.com/gh_mirrors/ap/apm-agent-nodejsElastic APM Node.js Agent是 Elastic 官方的 Node.js 应用性能监控APM代理它能自动捕获 Express 应用的错误、链路追踪Tracing数据与性能指标并发送到 Elastic StackAPM Server Elasticsearch Kibana帮你快速定位慢请求和服务问题的根因。对于新手来说接入过程非常友好只需 3 步就能让错误监控和分布式链路追踪在你的 Express 应用中跑起来。接入前准备确认你的环境在开始之前请确认两件事已部署一套 Elastic Stack包含 APM Server、Elasticsearch、Kibana并拿到两个关键信息APM Server 的serverUrl访问凭证secretToken或apiKeyNode.js 版本满足 Agent 要求。Agent 默认会自动插桩instrument最常见的模块如 Express、HTTP/HTTPS、数据库驱动、消息队列等完整清单见 supported-technologies.md。 一个重要的前提认知Agent 必须在require(...)加载任何其他模块之前启动这样它才能在模块加载时插入自己的监控代码。这是后面第 2 步的核心原因。第 1 步一键安装 APM Agent 包在你的 Express 项目根目录执行一条命令把elastic-apm-node安装为依赖npm install elastic-apm-node --save这就是官方文档 README.md 中给出的标准安装方式几秒即可完成。第 2 步在入口文件最顶部启动 Agent在应用的主入口文件通常是index.js、server.js或app.js最顶部加入启动代码// 放在文件最顶部先于其他 require / import const apm require(elastic-apm-node).start({ serverUrl: 你的 APM Server 地址, secretToken: 你的 secretToken, serviceName: my-express-app, environment: production, }) const app require(express)() app.get(/, (req, res) res.send(Hello World!)) app.listen(3000)关键点拆解配置项作用serverUrlAPM Server 地址默认http://127.0.0.1:8200secretToken/apiKeyAPM Server 的认证凭证二选一serviceName服务名称决定 Kibana 中如何区分应用environment环境标识如development/production⚠️ 为什么必须在最顶部如果express、http等模块先于 Agent 被加载Agent 就无法对它们插桩监控会失效表现为 Kibana 里出现 unknown route 事务。更多启动方式例如不改代码的node -r elastic-apm-node/start.js方式见 starting-agent.md。不喜欢改代码也可以用环境变量完成同样的配置然后只写一行require(elastic-apm-node).start()export ELASTIC_APM_SERVICE_NAMEmy-express-app export ELASTIC_APM_SECRET_TOKENtoken export ELASTIC_APM_SERVER_URLurl第 3 步运行并验证错误监控与链路追踪启动你的 Express 应用后Agent 会立即开始工作性能与链路追踪每个入站 HTTP 请求都会生成一个 Transaction事务其中的数据库查询、外部 HTTP 调用等会被记录为 Span跨度自动串成完整的调用链路。错误监控未捕获的异常uncaught exceptions会被自动捕获并上报无需任何额外代码。对于通过回调返回、Promise 捕获或手动构造的错误可以一行代码手动上报apm.captureError(new Error(Ups, something broke!))在 Kibana 中查看监控效果数据发送到 Elastic Stack 后打开 Kibana 的 Observability → APM选择你的serviceName就能看到Transactions事务按路由查看每个接口的耗时、吞吐量和错误率Spans跨度单个请求内部的数据库、外部调用明细形成可视化链路图Errors错误错误详情、堆栈和触发该错误的具体请求上下文。下面是一个典型的 APM 指标时间序列视图示例按 5 秒聚合的请求量中位数可以直观看到服务负载的变化曲线进阶玩法让追踪数据更丰富接入完成后还可以按需扩展自定义 Span为非自动插桩的代码段手动计时参考 custom-spans.md自定义 Transaction为定时任务等非 HTTP 场景创建事务参考 custom-transactions.md附加业务上下文用apm.setUserContext()、apm.setLabel()给错误和事务打上用户信息、标签过滤敏感信息Agent 默认会过滤 HTTP Body 和敏感 Header可用captureBody、sanitizeFieldNames按需调整完整 API所有方法见 agent-api.mdExpress 专题指南见 express.md。常见注意事项场景建议使用 Babel / esbuild 转译 ES Moduleimport会被提升hoistedapm.start()可能执行太晚建议改用require(elastic-apm-node/start)或独立 init 模块详见 starting-agent.mdKibana 中出现 unknown route通常是 Agent 未正确先于其他模块启动请检查入口文件顺序生产环境开启通过NODE_OPTIONS-r elastic-apm-node/start.js零侵入启动配合环境变量配置小结通过本文的 3 步——安装elastic-apm-node、在入口文件顶部调用start()、运行验证——你就为 Express 应用接入了完整的错误监控与分布式链路追踪能力。Elastic APM Node.js Agent 的自动插桩机制意味着无需侵入业务代码即可获得事务、跨度、错误和性能指标四大类可观测性数据是 Node.js 开发者排查线上问题的利器。【免费下载链接】apm-agent-nodejsElastic APM Node.js Agent项目地址: https://gitcode.com/gh_mirrors/ap/apm-agent-nodejs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表