在前端开发中,对于网站或系统的性能监控和调试非常重要。Zipkin 是一个分布式跟踪系统,对于了解系统性能、调试和优化非常有帮助。Zipkin 提供了多种语言的客户端,而 zipkin-instrumentation-axios 就是其中之一。
zipkin-instrumentation-axios 是基于 axios 的拦截器,用于将调用 Zipkin API 并将调用信息传递给 Zipkin 服务器。使用 zipkin-instrumentation-axios 时,只需要简单地引入 npm 包并添加一些配置就可以开始跟踪您的应用程序了。
安装
使用 npm 安装 zipkin-instrumentation-axios:
npm install --save zipkin-instrumentation-axios
配置
接下来是实际的配置。这里我们使用 Zipkin 的开源演示版本(https://zipkin.io/pages/quickstart)来演示。
-- -------------------- ---- ------- ----- ----- - ----------------- ----- - ------- -------------- ------------ - ------- - - - ------------------ ----- ---------- - ------------------------------ ----- - ---------- - - --------------------------------- ----- - --------- - - ---------------------------------------- ----- ------------- - --------- ----- ------------- - ------------------------ ----- -------- - --- --------------- ------- --- ------------ --------- -------------------------------- ------------ ------- -- --- ----- ------ - --- -------- --------- -------- --- -------------------------- ----------------- ------------ --- ----- ------------- - ---------------- - ------ --- --------------------------------------------------------------------------------- -- - --------------------------- ---------------- -- - ------------------- ---
上述代码中,我们首先引入 zipkin-instrumentation-axios、zipkin、zipkin-context-cls 和 zipkin-transport-http。之后,我们定义了一些常量:CLS_NAMESPACE(CLS 的命名空间)和 zipkinBaseUrl(Zipkin 服务器的基本 URL)。
接下来,我们定义了一个 BatchRecorder,它使用 HttpLogger 作为记录器并将 Zipkin 后端地址配置为 zipkinBaseUrl。然后,我们创建了一个 Tracer,使用以上配置和 CLSContext 来实例化它。
最后,我们包装了 axiosInstance,以让它使用我们新创建的 tracer。最后,我们使用 axios 执行一个简单的 GET 请求。
现在我们已经准备好了,接下来启动 Zipkin 服务器(在本例中为我们的演示实例)。访问 http://localhost:9411/zipkin/,将看到 Zipkin 的 UI。
现在,只要我们的应用程序有 HTTP 请求,它们就会被指向 Zipkin。尝试在浏览器中访问一个网站,然后回到 Zipkin UI 并查看跟踪记录。我们可以看到刚刚的 GET 请求被记录在这里了!
总结
通过文中的介绍,我们可以看到,使用 zipkin-instrumentation-axios 来实现前端应用程序的 Zipkin 跟踪相当简单。利用本文介绍的方法和步骤,可以轻松使用和配置 Zipkin,深入了解和调试您的应用程序。
如果您想要更多深度且有关于 zipkin-instrumentation-axios 的指导性教程,建议访问官方文档(https://github.com/openzipkin/zipkin-js/tree/master/packages/zipkin-instrumentation-axios)或更深入学习 Zipkin(https://zipkin.io/ )。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600555de81e8991b448d2ed6