本文介绍了如何将Node.js应用接入链路追踪。
前提条件
在Node工程的Package中配置对Jaeger Client的依赖。
"dependencies": {
"jaeger-client": "^3.12.0"
}
- 登录链路追踪控制台,在左侧导航栏,单击集群配置。
- 在集群配置页面上单击接入点信息页签,在集群信息区域打开显示Token开关。
- 在客户端采集工具区域单击需要使用的链路数据采集客户端。
- 在下方表格的相关信息列中,单击接入点信息末尾的复制图标。
说明:如果应用部署于阿里云生产环境,则选择私网接入点,否则选择公网接入点。对于Zipkin,一般情况下请使用v2版接入点,v1版接入点仅限对Zipkin十分了解的高阶用户使用。
背景信息
不通过Jaeger Agent而直接上报数据的原理如下图所示。
通过Jaeger Agent上报数据的原理如下图所示。
操作步骤
基于Express的完整示例
const express = require("express");
const initTracer = require("jaeger-client").initTracer;
const app = express();
const config = {
serviceName: 'node-service',
sampler: {
type: "const",
param: 1
},
reporter: {
collectorEndpoint: "<endpoint>"
},
};
const tracer = initTracer(config);
app.all('*', function (req, res, next) {
req.span = tracer.startSpan("say-hello");
next();
});
app.get("/api", function (req, res) {
const span = req.span;
span.log({event: "timestamp", value: Date.now()});
req.span.finish();
res.send({code: 200, msg: "success"});
});
app.listen(3000, '127.0.0.1', function () {
console.log('start');
});
更多信息
不是您要找的文档?鼠标悬浮在这里试一试。