Backend
链路追踪
Malagu 提供了链路追踪能力,用于分析性能瓶颈和全链路问题调查。
Malagu 框架提供请求级别的追踪,在分布式系统中可以看到请求在各个模块的延时,用于分析性能瓶颈和全链路问题调查。框架通过中间件提供链路追踪的能力。框架提供了一个默认的 TraceId 解释器,默认从请求头中获取从其他模块或者系统传递过来的 TraceId,如果没有解析到 TraceId,则自动创建一个新的 TraceId,并在请求结束的时候,以响应头的方式返回。
TraceId 请求头标识
Malagu 框架默认使用 X-Malagu-Trace-ID
从请求头中获取 TraceId。我们也可以通过组件属性配置,设置 TraceId 在请求头中的标识。比如我们需要将阿里云函数计算平台的 request Id
做我们应用的 traceId
的设置如下:
# malagu.yml
malagu:
trace:
requestField: X-Fc-Request-Id
TraceId 响应头标识
Malagu 框架默认使用 X-Malagu-Trace-ID
通过响应头返回 TraceId。我们也可以通过组件属性配置,设置 TraceId 在响应头中的标识。
malagu:
trace:
responseField: X-Malagu-Trace-ID
TraceId 解析器
我们也可以实现 TraceId 解析器接口 TraceIdResolver
自定义解析规则,TraceIdResolver
接口定义如下:
export interface TraceIdResolver {
resolve(): Promise<string>;
}