Malagu 框架提供请求级别的追踪,在分布式系统中可以看到请求在各个模块的延时,用于分析性能瓶颈和全链路问题调查。框架通过中间件提供链路追踪的能力。框架提供了一个默认的 TraceId 解释器,默认从请求头中获取从其他模块或者系统传递过来的 TraceId,如果没有解析到 TraceId,则自动创建一个新的 TraceId,并在请求结束的时候,以响应头的方式返回。

TraceId 请求头标识

Malagu 框架默认使用 X-Malagu-Trace-ID 从请求头中获取 TraceId。我们也可以通过组件属性配置,设置 TraceId 在请求头中的标识。比如我们需要将阿里云函数计算平台的 request Id 做我们应用的 traceId 的设置如下:

  1. malagu:
  2. trace:
  3. requestField: X-Fc-Request-Id

TraceId 响应头标识

Malagu 框架默认使用 X-Malagu-Trace-ID 通过响应头返回 TraceId。我们也可以通过组件属性配置,设置 TraceId 在响应头中的标识。

  1. malagu:
  2. trace:
  3. responseField: X-Malagu-Trace-ID

TraceId 解析器

我们也可以实现 TraceId 解析器接口 TraceIdResolver 自定义解析规则,TraceIdResolver 接口定义如下:

  1. export interface TraceIdResolver {
  2. resolve(): Promise<string>;
  3. }