Activity.Current 在带有 BlobTrigger 的 Azure 函数中为空
Activity.Current is null in Azure function with BlobTrigger
我有一个使用 BlobTrigger 绑定并用 C# 编写的 Azure 函数 (V3)。
为了在 Application Insights RequestTelemetry 中为其添加自定义属性,使用
Activity.Current?.AddTag("TraceId", traceId);
我需要根据 的建议访问 Activity.Current
。但是,由于 Activity.Current is NULL
.
,它不起作用
我的包配置如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AzureFunctionsVersion>v3</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Azure.Storage.Blobs" Version="12.9.0" />
<PackageReference Include="Microsoft.ApplicationInsights" Version="2.14.0" />
<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="5.0.0-beta.2" />
<PackageReference Include="Microsoft.Azure.WebJobs.Logging.ApplicationInsights" Version="3.0.14" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.8" />
<PackageReference Include="SixLabors.ImageSharp" Version="1.0.3" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="5.0.1" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>
我的函数如下所示:
[FunctionName("Create-Thumbnail")]
public async Task CreateThumbnail([BlobTrigger("input/{name}", Source = BlobTriggerSource.EventGrid, Connection = "AzureWebJobsStorage")] Stream image,
IDictionary<string,string> metadata,
string name,
ILogger log,
ExecutionContext context)
{
Activity.Current?.AddTag("TraceId", traceId);
}
我研究了一整天,但没有找到任何解决方案。有谁知道可能是什么问题?
目前它可以在 HTTP 触发器函数中运行,这些函数不再出现在应用程序洞察中的请求的自定义属性中。参考 here
相同的 Activity.Current 值是 github Azure Function host & Application Insights
中可用的空问题
Application Insights .NET SDK 使用 DiagnosticSource
(DiagnosticSourceUsersGuide) and Activity
(ActivityUserGuide) 个步骤来收集和关联遥测数据。
请在 Functions 存储库中打开一个问题 link here。
多亏了这个 GitHub issue,我在将 System.Diagnostics.DiagnosticSource 降级到版本 4.6
后设法让它工作
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="4.6.0" />
我有一个使用 BlobTrigger 绑定并用 C# 编写的 Azure 函数 (V3)。
为了在 Application Insights RequestTelemetry 中为其添加自定义属性,使用
Activity.Current?.AddTag("TraceId", traceId);
我需要根据 Activity.Current
。但是,由于 Activity.Current is NULL
.
我的包配置如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AzureFunctionsVersion>v3</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Azure.Storage.Blobs" Version="12.9.0" />
<PackageReference Include="Microsoft.ApplicationInsights" Version="2.14.0" />
<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="5.0.0-beta.2" />
<PackageReference Include="Microsoft.Azure.WebJobs.Logging.ApplicationInsights" Version="3.0.14" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.8" />
<PackageReference Include="SixLabors.ImageSharp" Version="1.0.3" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="5.0.1" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>
我的函数如下所示:
[FunctionName("Create-Thumbnail")]
public async Task CreateThumbnail([BlobTrigger("input/{name}", Source = BlobTriggerSource.EventGrid, Connection = "AzureWebJobsStorage")] Stream image,
IDictionary<string,string> metadata,
string name,
ILogger log,
ExecutionContext context)
{
Activity.Current?.AddTag("TraceId", traceId);
}
我研究了一整天,但没有找到任何解决方案。有谁知道可能是什么问题?
目前它可以在 HTTP 触发器函数中运行,这些函数不再出现在应用程序洞察中的请求的自定义属性中。参考 here
相同的 Activity.Current 值是 github Azure Function host & Application Insights
中可用的空问题Application Insights .NET SDK 使用 DiagnosticSource
(DiagnosticSourceUsersGuide) and Activity
(ActivityUserGuide) 个步骤来收集和关联遥测数据。
请在 Functions 存储库中打开一个问题 link here。
多亏了这个 GitHub issue,我在将 System.Diagnostics.DiagnosticSource 降级到版本 4.6
后设法让它工作<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="4.6.0" />