fro*_*sty 2 serilog azure-application-insights .net-core asp.net-core-2.0
之前,我曾直接使用App见解来进行应用程序日志记录,而且我已经看到.Net核心平台还创建了跟踪事件,这些事件都涉及到App见解。
在一个新的.Net核心API应用程序中,我想使用Serilog进行应用程序日志记录,并使用App Insight来存储和可视化日志事件。我想知道:
如何继续获取.Net核心.created跟踪事件以了解App见解?
如何将关联ID从应用程序传递到.Net核心创建的跟踪事件?
App洞察门户中的端到端交易功能会一起显示所有事件吗?对我来说,了解并密切注意SQL调用的延迟非常重要。
仅使用Serilog.Sinks.ApplicationInsights是不够的,因为它不会将Serilog事件与Application Insights上的其余遥测相关联。
为了关联事件,将它们显示为一个“端到端事务”-您必须执行以下操作:
ActivityID 记录为ScalarValue中LogEventProperty-请参见OperationIdEnricherTelemetryConverter(从TraceTelemetryConverter或的子类EventTelemetryConverter),该自定义将telemetry.Context.Operation.Id根据在1中设置的值进行设置-请参见OperationTelemetryConverter查看我的博客文章“ Serilog with ApplicationInsights ”,其中详细说明了以上几点,并提供了链接
另外,请务必在MSDN上的Application Insights中查看遥测相关性
如果您在 .Net core 中使用 ILogger 进行日志记录,则可以通过对startup.cs进行以下修改将这些消息定向到 Application Insights :
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
/*...existing code..*/
loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Warning);
}
Run Code Online (Sandbox Code Playgroud)
如果您使用自己的相关 ID,则可以使用Context.Operation自己的遥测初始值设定项在遥测项目字段中相应地修改 Application Insights 相关 ID,或者在请求中的相应标头(Request-ID(全局 ID)和Correlation-Context(名称-值对))中传递这些值到这个应用程序 - AI 将从中获取相关 ID。
端到端事务应该在 Application Insights 遥测的详细信息视图中的时间线上一起显示(请求/依赖项和异常)。对于您自己的相关 ID,如果它们从事务一开始就存在于其中(例如在第一个组件中),它应该也能正常工作 - 否则在中间注入它们会破坏链。
| 归档时间: |
|
| 查看次数: |
3544 次 |
| 最近记录: |