Серверная часть Jaeger не получает никаких данных (используя клиент Jager Node.js)

1

Я пытаюсь получить небольшой пример работы Jaeger с помощью Node.js, но я не могу заставить пользовательский интерфейс Jaeger отображать любые данные или показывать что-либо.

Я прочитал этот вопрос: uber/jaeger-client-node: backend не получит данные, но это не помогло в моем случае.

Я запускаю заднюю часть Jaeger в контейнере докера, используя:

docker run -d -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 -p5775:5775/udp -p6831:6831/udp -p6832:6832/udp -p5778:5778 -p16686:16686 -p14268:14268 -p9411:9411 jaegertracing/all-in-one:latest

Код для моего примера:

var initTracer = require('jaeger-client').initTracer;

// See schema https://github.com/jaegertracing/jaeger-client-node/blob/master/src/configuration.js#L37
var config = {
  'serviceName': 'my-awesome-service'
};
var options = {
  'tags': {
    'my-awesome-service.version': '1.1.2'
  }
  //'metrics': metrics,
  //'logger': logger
};
var tracer = initTracer(config, options);

const express = require('express');
const app = express();

// Handle a GET request on the root path
app.get('/', (req, res) => {
    const span = tracer.startSpan('http_request');
    res.send('Hello Jaeger');
    span.log({'event': 'request_end'});
    span.finish();
});

// Set up server
const server = app.listen(8000, () => {
    let host = server.address().address;
    let port = server.address().port;

    console.log('Service_1 listening at http://%s:%s', host, port);
});

Любая помощь относительно того, что я делаю неправильно, будет очень признательна!

Теги:
jaeger

1 ответ

1
Лучший ответ

Вам нужно добавить еще несколько свойств в ваши параметры конфигурации. Для репортера, развернутого на локальном хосте и локальной стратегии сэмплера:

var config = {
  'serviceName': 'my-awesome-service',
  'reporter': {
    'logSpans': true,
    'agentHost': 'localhost',
    'agentPort': 6832
  },
  'sampler': {
    'type': 'probabilistic',
    'param': 1.0
  }
};

Замените localhost на имя сервера или маршрута, чтобы настроить другой хост на время выполнения Jeager.

  • 0
    Спасибо, я подумал после проверки кода для пакета jaeger-client-node, что если бы ни одно из этих полей не было указано, то он создал бы сэмплер и репортер, используя настройки по умолчанию, но это устранило мою проблему. Еще раз спасибо!
  • 0
    Если вы похожи на меня и используете докер; не забудьте убедиться, что порт udp доступен из вашего приложения js! Он не жалуется, когда это не работает.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню