0.1.10 • Published 3 months ago
sf-nest-trace v0.1.10
sf nest trace
配置使trace生效
在src目录创建trace.ts
const traceConfig = config().trace
// @ts-ignore
initTracingWithProvider({
...traceConfig,
ignoreIncomingRequestHook: (request) => {
const urls = [
'/deploy/ready',
'/deploy/live',
]
for (const url of urls) {
if (request.url === url) {
return true
}
}
return false
}
})
在main.ts导入trace.ts, 注意必须在@nestjs/core之前, nest-winston之后
import {
WINSTON_MODULE_NEST_PROVIDER,
WINSTON_MODULE_PROVIDER,
WinstonModule,
} from 'nest-winston'
import './trace.js'
在module模块添加新的module
SfNestTraceModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (confSvc: ConfigService) => {
const config = confSvc.get('trace');
return {
...config,
};
},
})
可以在想要添加span的代码添加@Span()手动创建span
@Span()
async getSoftRoutingConnectionInfo(id: string) {
const resp = await firstValueFrom(
this.httpService.post('http://localhost:8083/soft-router/conn-info',
{},
{
headers:{
Authorization: scopeUtils.getRequest().token
}
}))
return resp.data
}
示例配置文件(config.trace)
isTraceOn: 标记是否启用trace withConsoleExporter: 是否启用console输出 endpoint: opentelemetry服务 metadata: 其他内容: 如字节需要添加"X-ByteAPM-AppKey" serviceName: 服务名称
trace: {
endpoint: process.env.TRACE_GRPC_ENDPOINT || 'http://apmplus-cn-shanghai.volces.com:4317',
isTraceOn: process.env.IS_TRACE_ON || "1",
withConsoleExporter: false,
metadata: {
"X-ByteAPM-AppKey": process.env.TRACE_APP_KEY || '',
},
serviceName: process.env.TRACE_APP_KEY || 'sf_qa'
}
请求返回traceId
默认配置会放在http response header里的TraceId头 如果需要在自己的接口内容返回可以这样
import { trace } from '@opentelemetry/api'
@Injectable()
export class ResultInterceptor implements NestInterceptor {
intercept(ctx: ExecutionContext, next: CallHandler) {
const response = ctx.switchToHttp().getResponse();
response.statusCode = HttpStatusCode.Ok;
const requestId = scopeUtils.getRequestId();
return next.handle().pipe(
map((data) => {
const result = {
code: 0,
message: 'success',
data: data,
traceId: trace.getActiveSpan()?.spanContext().traceId || ''
}
return result;
}
)
)
}}
0.1.10
3 months ago
0.1.9
3 months ago
0.1.8
3 months ago
0.1.7
3 months ago
0.1.6
3 months ago
0.1.5
3 months ago
0.1.3
3 months ago
0.1.2
3 months ago
0.1.1
3 months ago
0.1.0
3 months ago
0.0.13
3 months ago
0.0.11
4 months ago
0.0.10
4 months ago
0.0.9
4 months ago
0.0.7
4 months ago
0.0.6
4 months ago
0.0.5
4 months ago
0.0.4
4 months ago
0.0.3
4 months ago
0.0.2
4 months ago
0.0.1
4 months ago