Я хочу отслеживать свой запрос с помощью zipkin- js модуля в nodejs. после того, как я прочитал документ и вопрос о zipkin в nodejs, я пишу этот простой код на основе этой статьи для отслеживания с zipkin. я создаю экземпляр tracer и импортирую этот tracer в мой маршрутизатор. zipkin. js - это:
const { Tracer, ExplicitContext, BatchRecorder, jsonEncoder } = require("zipkin");
const { HttpLogger } = require("zipkin-transport-http");
const { ZIPKIN_ENDPOINT } = require('./index');
const tracer = new Tracer({
ctxImpl: new ExplicitContext(),
recorder: new BatchRecorder({
logger: new HttpLogger({
endpoint: `${ZIPKIN_ENDPOINT}/api/v2/spans`,
jsonEncoder: jsonEncoder.JSON_V2,
}),
}),
localServiceName: "hello-service",
});
module.exports = tracer;
, и это функция, которую я вызываю в ней трассировщиком:
const tracer = require('../config/zipkin')
const sayHello = async (name) => {
const healthResponse = await tracer.local("remote", () =>
delay(2000).then(delay(5000)));
return `hello ${name}!`
}
, а это приложение . js:
const express = require("express");
const bodyParser = require("body-parser");
const zipkinMiddleware = require("zipkin-instrumentation-express").expressMiddleware;
const tracer = require("./config/zipkin")
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
// Add zipkin express middleware
app.use(zipkinMiddleware({ tracer }));
// Routes
app.use("/health", healthRoute);
app.use("/hello", helloRoute);
module.exports = app;
все очень просто и хорошо. но когда я запрашиваю http://localhost: 3002 / hello? name = world , я ожидаю увидеть промежуток в zipkin с задержкой 2000 + 5000 = 7000. но я получаю промежуток с задержкой в 2 мили c. Я не знаю, почему это произошло!