如何在横向扩展时监控函数应用的实例数?

Tur*_*rbo 6 azure azure-functions

我正在为我的函数应用查看 Azure 门户中的“指标”选项卡(平台功能 -> 指标)。我可以看到有趣的指标,例如 CPU 时间、请求计数等,但没有指标可以显示应用程序扩展到的实例数量。

在此处输入图片说明

有没有办法随时间获取应用程序的实例数?

Sam*_*ber 23

一种方法是使用 App Insights 查询。这将为您提供过去 24 小时内每 30 秒运行的不同实例的数量。

您可以根据需要编辑粒度和时间跨度,但请记住,粒度越大,查询的准确性就越低,因为实例可以随时启动和关闭。

let grainTime = 30sec;

traces
| where timestamp >= ago(24h)
| summarize ['rate/minute'] = dcount(cloud_RoleInstance) by bin(timestamp, grainTime)
| render timechart
Run Code Online (Sandbox Code Playgroud)

然后您可以将其固定到您的仪表板上!


Kir*_*ran 6

作为预览功能,现在我们可以让缩放控制器发出带有推理的日志,以帮助理解应用程序在不同点缩放的原因和方式。您必须将功能配置添加为SCALE_CONTROLLER_LOGGING_ENABLED=AppInsights:Verbose. 然后,您可以查询规模控制器日志以了解原因和实例计数,如本 Microsoft 文档中所示。

我修改了链接文档中的 kusto 查询,以获得过去 24 小时的函数缩放图

traces 
| where customDimensions.Category == "ScaleControllerLogs"
| where customDimensions.Action == "ScaleResult"
| where customDimensions.AppName == "my-function-app-name"
| extend currentInstanceCount = toint(customDimensions.CurrentInstanceCount)
| make-series rawInstanceCounts = max(currentInstanceCount) default=-1 on timestamp in range(ago(24h), now(), 5m)
| extend instanceCountsForwardFilled = series_fill_forward(rawInstanceCounts, -1)
| project timestamp, instanceCountsForwardFilled
| render timechart 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

您还可以将规模控制器日志发送到 Blob 存储。在上面的例子中,我选择了AppInsights来进行快速查询。另外,为了避免应用见解定价影响,请在了解扩展行为后考虑禁用配置参数。


Cha*_*SFT 5

从给定选项中选择任何指标后,我们可以添加另一个过滤器。如下所示。

添加过滤器

然后我们可以添加“实例”属性并选择当前为函数应用运行的所有实例。如下所示。

选择实例