先决条件:
Node.js
应用程序
Opencensus
库
Zipkin Exporter
和本地 Zipkin 服务
应用程序.js:
const tracing = require('@opencensus/nodejs');
const zipkin = require('@opencensus/exporter-zipkin');
const ZIPKIN_ENDPOINT = process.env.ZIPKIN_ENDPOINT || "http://localhost:9411";
const options = {
url: `${ZIPKIN_ENDPOINT}/api/v2/spans`,
serviceName: 'MyApplication'
}
const exporter = new zipkin.ZipkinTraceExporter(options);
tracing.start({'exporter': exporter});
...
app.use(..)
...
包.json:
"dependencies": {
"@opencensus/exporter-zipkin" : "0.0.19",
"@opencensus/nodejs" : "0.0.19"
...
Zipkin服务器使用以下命令在本地启动:
docker run -d -p 9411:9411 openzipkin/zipkin
触发/service1
Zipkin Ui 后显示 2 个跨度,用于 2 个不同的请求:在 Node.js 路由器中配置的
第一个传入请求
第二个是对外部服务的后续调用/service1
/external_service_2
问题
问题是触发后/service1
:
1. Zipkin UI 显示 2 个具有相同名称的跨度MyApplication
(见图),
但预期有 2 个不同的跨度名称