引言
elastic-apm-http-client 是一个基于 Elastic APM 的 HTTP 客户端工具,它可以帮助前端开发者在 JavaScript 应用程序中集成 Elastic APM。在本文中,我们将详细讲解该 npm 包的使用方法、实现原理以及相关注意事项。
安装
在使用该 npm 包之前,需要先安装该工具,可以通过以下命令来进行安装:
npm install elastic-apm-http-client --save
安装完成之后,可以在你的项目中使用该工具。
使用方法
在引入该工具之前,需要先向 Elastic APM 服务器注册应用程序。具体方法请参考 Elastic APM 文档中的指导。
在应用程序注册完成之后,我们可以在项目中引入 elastic-apm-http-client 模块,然后进行相关配置。例如:
const ApmHttpClient = require('elastic-apm-http-client'); const apmClient = new ApmHttpClient({ serviceName: '<YOUR_SERVICE_NAME>', secretToken: '<YOUR_SECRET_TOKEN>', serverUrl: '<YOUR_APM_SERVER_URL>', });
以上代码中,我们使用 ApmHttpClient 的构造函数初始化了一个实例,在初始化实例时,需要提供以下参数:
serviceName
:指定应用程序名称。secretToken
:在 Elastic APM 服务器注册应用程序后,系统将自动生成一个密钥,我们可以使用该密钥进行应用程序身份验证。serverUrl
:指定 Elastic APM 服务器地址。
当初始化实例完成后,我们就可以开始使用该工具进行数据上报。
上报自定义事务
在代码中,我们可以使用 apmClient.startTransaction()
来启动一个事务,例如:
const transaction = apmClient.startTransaction('Test Transaction', 'custom');
该命令用于启动一个名称为 'Test Transaction' 的事务,类型为 'custom'。接下来,你可以在该事务中进行相关操作:
transaction.foobar = 'bar'; // adding some custom info to transaction object // do something … transaction.end();
在结束事务之前,我们可以向 transaction 对象中添加自定义信息。事务结束时,我们可以调用 transaction.end()
命令来关闭事务。
上报自定义错误
在代码中,我们可以使用 apmClient.captureError()
来捕获一个错误,例如:
try { foo.bar(); } catch (error) { apmClient.captureError(error); }
该命令将会捕获发生的错误,并将错误信息上报到 Elastic APM 服务器。
上报自定义消息
在代码中,我们可以使用 apmClient.log()
来记录一个消息,例如:
apmClient.log('INFO', 'message', { customProperty: 'value' });
该命令将会记录一条消息,包含以下信息:
- 等级:INFO
- 内容:message
- 自定义属性:customProperty
配置示例
以下是一个完整的配置示例:
-- -------------------- ---- ------- ----- ------------- - ----------------------------------- ----- --------- - --- --------------- ------------ ---------------------- ------------ ---------------------- ---------- ------------------------ --- --------------------- ----- -- - -- ------ ------ --- ---------------------- ------- -- - -- ------ ------ ------ --- ----- ----------- - -------------------------------- ------------- ---------- ------------------ - ------ -- ------ ---- ------ ---- -- ----------- ------ ------------- -- - --- - ---------- - ----- ------- - ------------------------------ - ------------------ -- ------展开代码
本示例中,我们使用了一个 setTimeout() 来模拟一个异步操作,并在操作结束后结束了该事务。在该示例中,我们使用了多个命令,包括:
apmClient.on('error', …)
:用于处理错误事件。apmClient.on('logged', …)
:用于处理日志事件。apmClient.startTransaction(…)
:用于启动一个事务。apmClient.captureError(…)
: 用于捕获一个错误。apmClient.log(…)
:用于记录一条消息。
总结
在本文中,我们学习了如何在前端应用程序中使用 Elastic APM 以及如何使用 elastic-apm-http-client
包来实现数据上报。我们了解到 elastic-apm-http-client
可以用于上报自定义事务、错误和消息,同时提供了相应的 API、事件等功能,帮助我们更好地管理、调优和维护前端应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/199304