Azure Functions编辑

.NET APM 代理可以跟踪 Azure Functions 应用中的函数调用。

先决条件编辑

您需要一个 APM 服务器来发送 APM 数据。如果您还没有设置,请按照 APM 快速入门 进行操作。您将需要您的 APM 服务器 URL 和 APM 服务器 密钥令牌(或 API 密钥)来配置下面的 APM 代理。

您还需要一个要监控的 Azure Function 应用。如果您没有现有的,可以按照 此 Azure 指南 创建一个。

您还可以查看并使用此 已集成 Elastic APM 的 Azure Functions 示例应用

目前,只能跟踪 隔离工作进程 中的 .NET Azure Functions。

步骤 1:添加 NuGet 包编辑

Elastic.Apm.Azure.Functions NuGet 包添加到您的 Azure Functions 项目中

dotnet add package Elastic.Apm.Azure.Functions

步骤 2:添加跟踪中间件编辑

为了让 APM 代理跟踪 Azure Functions 调用,必须在您的 Azure Functions 应用中使用 Elastic.Apm.Azure.Functions.ApmMiddleware

using Elastic.Apm.Azure.Functions;
using Microsoft.Extensions.Hosting;

var host = new HostBuilder()
	.ConfigureFunctionsWorkerDefaults(builder =>
	{
		builder.UseMiddleware<ApmMiddleware>();
	})
	.Build();

host.Run();

步骤 3:配置 APM 代理编辑

可以使用环境变量配置 APM 代理。使用环境变量允许您使用 Azure 门户中的应用程序设置,使您能够隐藏值并在无需重新部署代码的情况下更新设置。

在 Azure 门户中打开您的 Function 应用的“配置”>“应用程序设置”,并设置

ELASTIC_APM_SERVER_URL: <your APM server URL from the prerequisites step>
ELASTIC_APM_SECRET_TOKEN: <your APM secret token from the prerequisites step>

例如

Configuring the APM Agent in the Azure Portal

限制编辑

由于担心无意中增加 Azure Functions 成本(对于消费计划),Azure Functions 检测目前在后台收集系统指标。