Требования:Node.js
приложениеOpencensus
библиотекаZipkin Exporter
и локальная служба Zipkin
app.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(..)
...
package.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 разных запросов:
первый /service1
входящий запрос, настроенный в маршрутизаторах Node.js
второй /external_service_2
— это последующий вызов внешней службы
Проблема
Проблема заключается в том, что после запуска /service1
:
1. Пользовательский интерфейс Zipkin отображает 2 диапазона с одинаковым именем MyApplication
(см. изображение),
но ожидается 2 разных имени диапазона
2. Поскольку пользовательский интерфейс Zipkin отображает 2 диапазона с одинаковыми именами,
страница зависимостей службы содержит только одну службу (см. изображение)