如何包括对使用NestJS传播的请求的跟踪?

时间:2019-08-07 07:42:39

标签: trace nestjs istio jaeger

我正在Istio中设置Jager跟踪,但无法弄清楚应如何传播NestJS中所需的标头。

我已经在文档中搜索了每个请求的注入,但是无法真正解决这个问题。

需要传播的标头如下:

x-request-id
x-b3-traceid
x-b3-spanid
x-b3-parentspanid
x-b3-sampled
x-b3-flags
x-ot-span-context

1 个答案:

答案 0 :(得分:2)

我使用hpropagate npm软件包在Istio群集上运行该软件包。它负责从输入请求中提取跟踪标头并将其附加到任何出站请求上的所有繁重工作。

安装

npm install hpropagate

用法

main.ts中,导入包并在创建Nest应用之前调用函数(使用所需的default overrides)。

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import hpropagate from 'hpropagate';

async function bootstrap() {

  hpropagate({
    setAndPropagateCorrelationId: false,
  });

  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();

有关更多信息,请查看这篇文章:https://medium.com/ww-engineering/headers-propagation-with-hpropagate-27de8347f76a