【Application Insights】Application Insights存储的Function App的日志存在"Operation Link" 为空的情况

简介: 在将 Azure Functions 升级到 .NET 8 和 Isolated Worker 模式后,Application Insights 的请求日志中 `operation_Link` 字段为空,导致分布式追踪无法正常关联。解决方法包括:确保引用正确的 SDK 包(如 `Microsoft.Azure.Functions.Worker.ApplicationInsights`),正确配置 Application Insights 服务,移除默认日志过滤规则,并使用最新依赖包以支持分布式追踪。通过这些步骤,可恢复端到端事务视图的可视化效果。

问题描述

将 Azure Functions 升级到 .NET 8 和 Isolated Worker 模式后,发现 Application Insights 中的请求(Request)日志的 operation_Link 字段为空,显示如下内容:

"operation_links": [

 {

   "operation_Id": "00000000000000000000000000000000",

   "id": "0000000000000000"

 }

]

 

这导致在 Application Insights 的端到端事务视图中,多个请求无法正确关联,影响了分布式追踪的可视化效果。


问题解答

该问题的根本原因在于 Azure Functions 使用 Isolated Worker 模式时,Application Insights 的默认配置未能正确设置分布式追踪上下文,尤其是在处理 Service Bus 等触发器时。


为了解决这个问题,需要确保以下几点:

一:使用正确的 Application Insights SDK 包

确保项目中引用了 Microsoft.Azure.Functions.Worker.ApplicationInsights 包(例如版本 1.4.0)以及 Microsoft.ApplicationInsights.WorkerService


二:配置 Application Insights 服务

Program.cs 中,使用如下方式配置服务:

builder.Services.AddApplicationInsightsTelemetryWorkerService();

builder.Services.ConfigureFunctionsApplicationInsights();


三:移除默认的日志过滤规则

Application Insights SDK 默认只记录 Warning 及以上级别的日志。需要手动移除该规则以启用更详细的日志记录:

builder.Services.Configure<LoggerFilterOptions>(options =>

{

   var ruleToRemove = options.Rules.FirstOrDefault(rule =>

       rule.ProviderName == "Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider");

 

   if (ruleToRemove != null)

   {

       options.Rules.Remove(ruleToRemove);

   }

});

 

四:确保使用最新版本的相关依赖包

包括 Microsoft.Azure.Functions.Worker.Extensions.ServiceBus 等,以获得更好的分布式追踪支持。

 

 

参考资料

Azure Functions & Application Insights requests "Operation Link" empty : https://stackoverflow.com/questions/79061459/azure-functions-application-insights-requests-operation-link-empty




当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
7月前
|
数据安全/隐私保护
【Azure Function App】PowerShell Function 执行 Get-AzAccessToken 的返回值类型问题:System.String 与 System.Security.SecureString
将PowerShell Function部署到Azure Function App后,Get-AzAccessToken返回值类型在不同环境中有差异。正常为SecureString类型,但部分情况下为System.String类型,导致后续处理出错。解决方法是在profile.ps1中设置环境变量$env:AZUREPS_OUTPUT_PLAINTEXT_AZACCESSTOKEN=false,以禁用明文输出。
196 0
|
9月前
|
网络协议 API 网络安全
【Azure Function App】发现部分请求Function App遇见 403.72 报错(请求Body>100KB)
在调用Azure Function的HTTP Trigger时,发送POST请求偶尔出现403错误,且响应为空、Header信息少。经排查发现,当请求Body大于100KB时会触发403.72错误,原因是启用了“Client Certificate mode”为“Optional Interactive User”。解决方法是将该模式设置为“Ignore”。由于TLS重新协商机制限制,大请求体无法正常处理,导致此问题。
262 1
|
11月前
|
安全 Linux 开发工具
【Azure Function】分享把Function App从.NET 6.0升级到.NET 8.0 Isolated的步骤
本文介绍了将Azure Function App从.NET 6.0升级到.NET 8.0 Isolated的步骤。.NET 6.0作为长期支持版本,生命周期至2024年11月结束。为确保持续支持,建议升级至更新版本。升级步骤包括安装.NET 8 SDK、更新Azure Functions Core Tools、修改项目文件目标框架为net8.0、更新兼容的NuGet包、本地测试以及重新发布到Azure。更多详细信息可参考官方文档。
434 9
|
11月前
【Function App】在PowerShell Function中指定特殊的Microsoft.Graph.Users版本
在Azure Function App中运行PowerShell Function时,通过Requirements.psd1文件管理模块版本。若需将“Microsoft.Graph.Users”从最新版2.26.0改回2.23.0以避免冲突,可通过以下步骤解决:1) 在requirements.psd1中明确指定版本为2.23.0 2) 在profile.ps1中添加`Import-Module Microsoft.Graph.Users -RequiredVersion 2.23.0`语句。此方法确保加载特定版本模块
205 18
|
10月前
|
C++ Windows
【Function App】本地通过VS Code调试Function时候遇见无法加载文件错误Microsoft.Extensions.Diagnostics.Abstractions
在使用 VS Code 调试 Azure Functions 时,执行 `func host start` 可能因版本冲突报错。错误信息显示 Rpc Initialization Service 启动失败,可能是由于缺少文件或组件导致。解决方法包括:1) 使用 npm 卸载并重新安装 Azure Functions Core Tools;2) 若问题未解决,重新下载安装包(如 func-cli-x64.msi)修复旧版本工具;3) 退出并重启 VS Code,重新加载项目即可恢复正常运行。参考资料链接提供了更多背景信息。
375 0
|
6月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
1079 139
|
6月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
518 137
|
6月前
|
数据采集 JavaScript 前端开发
开发比分App?你缺的不是程序员
开发体育比分App,关键不在代码,而在懂体育、懂数据、懂用户。明确定位、理清需求、选好数据源,再找专业的产品、数据与技术人才协同,才能少走弯路。程序员最后入场,效率最高。
335 154
|
7月前
|
移动开发 小程序 Android开发
基于 uni-app 开发的废品回收类多端应用功能与界面说明
本文将对一款基于 uni-app 开发的废品回收类多端应用,从多端支持范围、核心功能模块及部分界面展示进行客观说明,相关资源信息也将一并呈现。
237 0