将标签添加到 ASP.NET 请求 Activity

Adding a tag to the ASP.NET Request Activity

我想在请求处理开始后立即为每个传入的 ASP.NET 请求向 System.Diagnostics.Activity 对象添加一个标记。有没有一种方法可以访问请求管道的 ActivitySource,并向其添加侦听器?

目前我正在考虑使用管道中间件,但必须有一种更轻量级的方法。尤其是其他开发人员无法在此之前添加任何其他中间件处理程序的情况。有什么想法吗?

看来您可以在启动时通过 DI 添加它。关键是 ActivitySource 的名称。我在任何文档中都找不到它。我不得不在 aspnetcore code 中搜索,看起来好像为 DiagnosticListener.

注册了一个空名称 ActivitySource

无论如何...

将以下内容添加到 Configure(...)

var requestActivityListener= new ActivityListener();
requestActivityListener.ShouldListenTo = activitySource => activitySource.Name == "";
requestActivityListener.ActivityStarted = activity => LetsShapeThisActivityToOurLiking(activity);
ActivitySource.AddActivityListener(requestActivityListener);

应该是这样。