azure-application-insights - Azure Application Insights 中的用户代理信息
问题描述
有谁知道为什么 Application Insights 在 .NET 应用程序中实现时不会收集用户代理信息,但能够收集浏览器上的统计信息?
我有点希望能够过滤掉针对特定用户代理字符串的请求,但看起来我无法看到任何可用数据/表的用户代理。
解决方案
对于 SDK,这不再是自动的。您必须通过创建自定义 TelemetryInitializer 自己包含它。
public class MyCustomTelemetryInitializer: ITelemetryInitializer
{
readonly IHttpContextAccessor _httpContextAccessor;
public MyCustomTelemetryInitializer(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public void Initialize(ITelemetry telemetry)
{
if (telemetry is RequestTelemetry requestTelemetry)
{
requestTelemetry.Context.User.Id = _httpContextAccessor.HttpContext.Request.Headers["User-Agent"];
}
}
}
这会从每个 HttpRequest 中读取 User-Agent,并将其设置为 Request Telemetry 的 UserId 字段。
接下来,您需要在应用程序启动期间通过 DI 注册您的自定义遥测初始化程序(如果您使用的是 ASP .NET 核心)。
services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
推荐阅读
- android - 如何在 Recyclerview 案例中的 cardview 内显示交错的 gridImageView
- c# - 使用 Sprache 解析文本时,我可以确定原始字符串中的当前索引吗?
- ocaml - 如何禁用错误(警告 66):未使用打开!在沙丘
- windows-terminal - 如何在与前一个目录相同的目录中生成一个新选项卡?
- next.js - NextJS 9 - 压缩最佳实践
- python - 为什么 Python .readlines() 方法似乎在擦除文件?
- javascript - 列表状态更新时,react-native flatlist 图像闪烁
- javascript - 使用 react-navigation 在 react-native 中隐藏某些页面上的底部标签栏
- algorithm - 生成具有某些约束的大量组合列表的计算有效方法是什么?
- python - from scipy.linalg import _fblas: ImportError: DLL load failed: 找不到指定的模块