Mik*_*kov 5 azure azure-functions azure-sdk
我正在消耗计划上运行 Azure Function 应用程序,并且我想监视当前运行的实例数量。使用格式的 REST API 端点
https://management.azure.com/subscriptions/{subscr}/resourceGroups/{rg}
/providers/Microsoft.Web/sites/{appname}/instances?api-version=2015-08-01
Run Code Online (Sandbox Code Playgroud)
我能够检索实例。但是,结果与我在 Application Insights/Live Metrics Stream 中看到的信息不匹配。
例如,现在 App Insights 显示有 4 台服务器在线,而 API 调用仅返回一台(这 1 个实例的 GUID 也在 App Insights guid 中)。
我可以信任谁?有没有更好的方法来获取实例计数(例如从 App Insights)?
更新:看起来 REST API 的数据是错误的。
我向队列发送了 10000 条消息,并使用处理请求的相应实例 ID 记录每个函数调用。
虽然消息不断传入且积压工作不断增长,但 REST API 的实例计数似乎是正确的(从 1 缩放到 12)。发送停止后,报告的实例计数迅速下降(最终回到 1,而处理器仍然繁忙)。
但根据速度和执行日志,我可以看出实际实例数不断增长,在处理最后一条消息时最终达到 15 个实例。
UPDATE2:看起来 SDK 拒绝报告超过 20 个服务器。该指标稳定在 20,而 App Insights 保持稳定增长,目前已达到 41。
\n\n\n我可以信任谁?有没有更好的方法来获取实例计数(例如从 App Insights)?
\n
根据我的理解,我们需要使用Rest API端点来检索实例,App Insights可以配置为多个WebApp,因此App Insights中在线的服务器数量可能是针对多个WebApp的。
\n\n更新:
\n\n根据我的测试,应用程序洞察的数量可能不是实时的。
\n\n在我的测试过程中,如果 WebApp 功能横向扩展,那么我可以使用 Rest API 获得多个实例,并且我还可以在 App Insights 中检查在线服务器的数量。
\n\nhttps://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.Web/sites/{functionname}/instances?api-version=2016-08-01\nRun Code Online (Sandbox Code Playgroud)\n\n但是当我完成测试后,我可以得到 Rest API 的实例数量是1,根据我的理解,这是正确的结果。 \n同时我在 Application Insight 中检查在线服务器的数量是我测试期间的最大数量。
\n\n而过了一段时间,应用洞察中的服务器在线数量也变成了1。
\n\n因此,如果我们想获取Azure函数的实例数,我的建议是使用REST API来做到这一点。
更新2\xef\xbc\x9a
\n\n据 DavidEbbo 提到,REST API 并不总是可靠的。
\n\n\n\n不幸的是,REST API 并不总是可靠的。具体来说,当 Function App 跨多个缩放单位进行缩放时,仅反映“主”缩放单位中的实例。您可能不会在小型测试中看到这一点,但如果您开始广泛扩展(例如超过 20 个实例),则可能会看到这一点。
\n
| 归档时间: |
|
| 查看次数: |
2445 次 |
| 最近记录: |