简介
klg-tracer-model 是一个基于 Node.js 的 NPM 包,它提供了一个易于使用的客户端架构,可让您进行分布式跟踪,以及了解您的应用程序中的所有服务之间的相互作用。klg-tracer-model 能够创建分布式跟踪 ID,它可以在整个分布式系统中跟踪请求,并为每个请求构建一个完整的调用链。它旨在简化应用程序的跟踪需求,以便您可以集中精力开发应用程序本身,而不必担心跨服务的调用和跟踪。
安装
使用 npm 安装最新版本:
npm install klg-tracer-model --save
然后在代码中引用 klg-tracer-model :
const TracerModel = require('klg-tracer-model')
基本用法
在代码中实例化 TracerModel 类,并使用 createTracer 方法生成一个新的跟踪 ID:
const TracerModel = require('klg-tracer-model') const tracer = new TracerModel({ serviceName: 'example-service' }) const traceContext = tracer.createTracer() console.log(traceContext) // { id: '0250779c-a87f-417c-8858-8cc38e24d723' }
你可以使用 inject 方法将这个跟踪 ID 传递给请求上下文:
-- -------------------- ---- ------- ------------- -------- ----- ----- - ----- ------- - ------------------ ----- ------------ - --------------------------- ----- ---- - -------------------------------------- ----- ------ ------------- --
使用完成后,可以在调用链界面中查看跟踪记录。
高级用法
klg-tracer-model 提供了更高级的用法:
自定义信息
可以使用 addTag 方法添加自定义标签,例如添加自定义标签传递一些请求信息,详情请参见下面示例代码:
const span = traceContext.startSpan('http_request') span.addTag('url', ctx.url) span.addTag('method', ctx.method) await next() span.addTag('status', ctx.status) span.finish()
嵌套跟踪
使用 startTrace
和 finishTrace
可以嵌套跟踪次要耗时,用法类似 startSpan
和 finish
。
const span = traceContext.startSpan('http_request') const timer = traceContext.startTrace('http_downstream_request') await axios.get('http://downstream.com') traceTrace.finishTrace(timer) span.finish()
示例代码
-- -------------------- ---- ------- ----- --- - -------------- ----- ----- - ---------------- ----- ----------- - --------------------------- ----- --- - --- ----- ----- ------ - --- ------------- ------------ ----------------- -- ------------- -------- ----- ----- - ----- ------- - ------------------ ----- ------------ - --------------------------- ----- ---- - -------------------------------------- ----- ----- - -------------------------------------------------- ----- ---------------------------------- ------------------------------- ------------------ -------- --------------------- ----------- ----- ------ --------------------- ----------- ------------- -- ---------------- -- -- - -------------------- --- --------- -- ---- ------- --
结论
此文介绍了 klg-tracer-model 的基本用法和高级用法,希望能够帮助大家快速掌握这个包的使用技巧。klg-tracer-model 能够简化应用程序的跟踪需求,帮助我们更好地进行分布式应用程序跟踪,从而提高开发效率和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60057c6181e8991b448ebe0a