Jaeger 后端未收到任何数据(使用 Jager Node.js 客户端)

Chi*_*nda 5 javascript node.js jaeger

我正在尝试使用 Node.js 获取 Jaeger 工作的一个小例子,但我无法让 Jaeger UI 显示任何数据或显示任何内容。

我读过这个问题:uber/jaeger-client-node: backend wont receive data但这对我来说没有帮助。

我正在使用以下命令在 docker 容器中运行 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
Run Code Online (Sandbox Code Playgroud)

我的例子的代码是:

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);
});
Run Code Online (Sandbox Code Playgroud)

任何关于我做错了什么的帮助将不胜感激!

小智 2

您需要向配置选项添加更多属性。对于部署在本地主机和本地采样器策略上的记者:

var config = {
  'serviceName': 'my-awesome-service',
  'reporter': {
    'logSpans': true,
    'agentHost': 'localhost',
    'agentPort': 6832
  },
  'sampler': {
    'type': 'probabilistic',
    'param': 1.0
  }
};
Run Code Online (Sandbox Code Playgroud)

替换localhost为服务器或路由名称以将 Jeager 运行时的目标定位到另一个主机。

  • @Abhishek这可能没有多大帮助,但我已经在 docker-compose.yml 中的 jaeger 图像下声明了这一点: `+ ports: - "5775:5775/udp" - "6831:6831/udp" - "6832:6832/ udp” - “5778:5778” - “16686:16686” - “14268:14268” - “9411:9411”` (2认同)