5.1 请求追踪
...大约 2 分钟
简介
链路追踪(tracing)
即调用链监控,特点是通过记录多个在请求间跨服务完成的逻辑请求信息,帮助开发人员优化性能和进行问题追踪。链路追踪可以捕获每个请求遇到的异常和错误,以及即时信息和有价值的数据。
为什么需要链路追踪?
在大型系统的微服务化构建中,一个系统被拆分成了许多个微服务。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种架构中,一次请求往往需要涉及到多个微服务。如果线上某个微服务出现故障,如何快速定位故障所在的微服务呢?
答案就是链路追踪技术。
Wing.APM
支持http和grpc请求追踪,支持Sql语句耗时分析,支持定时作业的链路追踪
安装依赖包
示例5.1
(点击查看完整示例代码)
dotnet add package Wing.APM
dotnet add package Wing.Consul
dotnet add package Wing.Persistence
dotnet add package FreeSql.Provider.SqlServer
Install-Package Wing.APM
Install-Package Wing.Consul
Install-Package Wing.Persistence
Install-Package FreeSql.Provider.SqlServer
Program代码
using Wing;
var builder = WebApplication.CreateBuilder(args);
builder.Host.AddWing(builder => builder.AddConsul());
// Add services to the container.
builder.Services.AddControllers();
builder.Services.AddWing().AddPersistence(FreeSql.DataType.SqlServer).AddAPM();
var app = builder.Build();
// Configure the HTTP request pipeline.
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
添加配置
Apm:IsEnabled
是否开启 默认开启,false表示关闭
Apm:PersistenceSeconds
设置定时持久化间隔,单位:秒,默认每3秒钟执行一次
Apm:ToListenerUrl
仅监听某些请求Url
Apm:DoNotListenerUrl
不监听的请求Url
Apm:ToListenerSql
仅监听某些Sql
Apm:DoNotListenerSql
不监听的Sql
{
"Apm": {
"IsEnabled": true,
"PersistenceSeconds":3,
// 仅监听某些请求Url(包含关系)
"ToListenerUrl": [],
// 不监听的请求Url(包含关系)
"DoNotListenerUrl": [],
// 仅监听的Sql(包含关系)
"ToListenerSql": [],
// 不监听的Sql(包含关系)
"DoNotListenerSql": []
}
}
查看运行结果
- 运行示例
5.1
,浏览器访问 http://localhost:5110/weatherforecast ,可以看到该请求的相关信息,如下图:
- 作业请求追踪