为 Azure Functions (v3) 的 RequestTelemetry 添加自定义属性
Add Custom Properties for RequestTelemetry of the Azure Function (v3)
我有一个用 C# 编写并部署在 Azure 上的函数应用程序。为了实现关联,我想在 Azure Function 的默认 RequestTelemetry 中添加一些自定义属性:
我的函数如下所示:
[FunctionName("Upload")]
[StorageAccount("AzureWebJobsStorage")]
public static async Task<IActionResult> Upload(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "upload/{name}")] HttpRequest req,
string name,
ILogger log,
ExecutionContext context)
{
var requestTelemetry = req.HttpContext?.Features.Get<RequestTelemetry>();
....
return new OkObjectResult(name + "Uploaded successfully.");
}
根据我的研究,大多数人建议使用以下代码:
requestTelemetry.Context.GlobalProperties.Add("someproperty", "123");
或
// Deprecated
requestTelemetry.Context.Properties.Add("someproperty", "123");
但是没用。
所以我想知道是否可以在 Azure Function(V3) 中修改默认 RequestTelemetry 的自定义属性。有没有人有关于如何实现此目的的其他提示?
有一些方法。一个是这样的:
var requestTelemetry = req.HttpContext.Features.Get<RequestTelemetry>();
requestTelemetry.Properties.Add("aProp", "aValue");
另一个是
Activity.Current.AddTag("aProp", "aValue");
我在个人存储库中找到了一个完整的工作演示项目 here,它演示了此答案中的代码。
我有一个用 C# 编写并部署在 Azure 上的函数应用程序。为了实现关联,我想在 Azure Function 的默认 RequestTelemetry 中添加一些自定义属性:
我的函数如下所示:
[FunctionName("Upload")]
[StorageAccount("AzureWebJobsStorage")]
public static async Task<IActionResult> Upload(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "upload/{name}")] HttpRequest req,
string name,
ILogger log,
ExecutionContext context)
{
var requestTelemetry = req.HttpContext?.Features.Get<RequestTelemetry>();
....
return new OkObjectResult(name + "Uploaded successfully.");
}
根据我的研究,大多数人建议使用以下代码:
requestTelemetry.Context.GlobalProperties.Add("someproperty", "123");
或
// Deprecated
requestTelemetry.Context.Properties.Add("someproperty", "123");
但是没用。
所以我想知道是否可以在 Azure Function(V3) 中修改默认 RequestTelemetry 的自定义属性。有没有人有关于如何实现此目的的其他提示?
有一些方法。一个是这样的:
var requestTelemetry = req.HttpContext.Features.Get<RequestTelemetry>();
requestTelemetry.Properties.Add("aProp", "aValue");
另一个是
Activity.Current.AddTag("aProp", "aValue");
我在个人存储库中找到了一个完整的工作演示项目 here,它演示了此答案中的代码。