跳至主要內容

5.1 请求追踪

linguicheng...大约 2 分钟

简介

链路追踪(tracing)即调用链监控,特点是通过记录多个在请求间跨服务完成的逻辑请求信息,帮助开发人员优化性能和进行问题追踪。链路追踪可以捕获每个请求遇到的异常和错误,以及即时信息和有价值的数据。

为什么需要链路追踪?

在大型系统的微服务化构建中,一个系统被拆分成了许多个微服务。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种架构中,一次请求往往需要涉及到多个微服务。如果线上某个微服务出现故障,如何快速定位故障所在的微服务呢?
答案就是链路追踪技术。

Wing.APM支持http和grpc请求追踪,支持Sql语句耗时分析,支持定时作业的链路追踪

安装依赖包

示例5.1(点击查看完整示例代码open in new window)

dotnet add package Wing.APM

dotnet add package Wing.Consul

dotnet add package Wing.Persistence

dotnet add 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": []
  }
}

查看运行结果

  • 作业请求追踪
上次编辑于:
贡献者: linguicheng