azure - 如何从 AI 日志中排除参数?
问题描述
我想从 Application Insights 中的跟踪和依赖项日志中排除一些参数(例如城市、用户 ID、应用程序角色...)。
你有什么建议吗?
解决方案
您可以使用ITelemetryInitializer将 userId / app 角色的值更改为空。然后在 AI 日志中,city、userId、app 角色会被自动移除。
我使用.net 核心网络应用程序对其进行测试:
1.在 web 项目中添加一个MyTelemetryInitializer类:
public class MyTelemetryInitializer: ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
//only apply for Trace and Dependency
if (telemetry is TraceTelemetry || telemetry is DependencyTelemetry)
{
telemetry.Context.User.Id = "";
telemetry.Context.Cloud.RoleInstance = "";
telemetry.Context.Cloud.RoleName = "";
}
}
}
2.在 Startup.cs -> ConfigureServices 方法中,注册自定义遥测初始化器:
public void ConfigureServices(IServiceCollection services)
{
//other code
services.AddSingleton<ITelemetryInitializer, MyTelemetryInitializer>();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
3.在 HomeController.cs 中,创建 TelemetryClient 来发送遥测数据:
public class HomeController : Controller
{
TelemetryClient client = new TelemetryClient();
public IActionResult Index()
{
client.TrackTrace("0624-2 index: this is a trace message!!!");
return View();
}
public IActionResult About()
{
client.TrackTrace("0624-2 about: this is a trace message!!!");
ViewData["Message"] = "Your application description page.";
return View();
}
public IActionResult Contact()
{
client.TrackTrace("0624-2 contact: this is a trace message!!!");
ViewData["Message"] = "Your contact page.";
return View();
}
}
4.运行项目后,等待几分钟,然后导航到 azure 门户 -> 你的应用洞察 -> 搜索页面,检查跟踪消息的属性: