监控 Azure Functions
编辑监控 Azure Functions编辑
先决条件编辑
您需要一个 APM 服务器,您可以将 APM 数据发送到该服务器。如果您尚未设置,请按照 APM 快速入门 进行操作。为了获得最佳性能,我们建议在与您的 Azure Functions 应用相同的 Azure 区域的 Elastic Cloud 上设置 APM。
目前,仅支持 HTTP 和计时器触发器。其他触发器类型也可能被捕获,但捕获的上下文数据的数量可能会有所不同。
步骤 1:启用工作进程扩展编辑
Elastic APM 使用 工作进程扩展 来检测 Azure Functions。此功能默认情况下未启用,必须在您的 Azure Functions 应用中启用。请按照 Azure 文档 中的说明进行操作。
启用工作进程扩展后,这两行代码将启用 Elastic APM 的扩展
from elasticapm.contrib.serverless.azure import ElasticAPMExtension ElasticAPMExtension.configure()
将它们放在 Python 文件的顶部,在函数定义之前。
步骤 2:安装 APM Python Agent编辑
您需要将 elastic-apm
添加为 Functions 应用的依赖项。只需将 elastic-apm
添加到您的 requirements.txt
文件中即可。我们建议将版本固定到代理的当前最新版本,并定期更新版本。
步骤 3:在 Azure Functions 上配置 APM编辑
APM Python 代理通过 应用设置 进行配置。然后,代理会将这些设置作为环境变量获取。
对于最小配置,您将需要 ELASTIC_APM_SERVER_URL
来设置 APM 数据的目标,以及一个 ELASTIC_APM_SECRET_TOKEN
。如果您希望使用 APM API 密钥 而不是 APM 密钥,请在以下示例配置中使用 ELASTIC_APM_API_KEY
环境变量,而不是 ELASTIC_APM_SECRET_TOKEN
。
$ az functionapp config appsettings set --settings ELASTIC_APM_SERVER_URL=https://example.apm.northeurope.azure.elastic-cloud.com:443 $ az functionapp config appsettings set --settings ELASTIC_APM_SECRET_TOKEN=verysecurerandomstring
您可以选择 微调 Python 代理。
就是这样;代理安装并运行后,将为 支持的技术 捕获跨度。您还可以使用 capture_span
来捕获自定义跨度,并且您可以使用 get_client
来检索用于捕获异常/消息的 Client
对象。