Зипкин в nodejs точно не отслеживает - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу отслеживать свой запрос с помощью 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. Я не знаю, почему это произошло!

...