已编译的 Azure 函数监控:"No data available"

Compiled Azure Function Monitoring: "No data available"

我在 Azure 上使用了几个编译的 C# 函数。它们按预期工作,但是当我在任一函数上单击 'Monitor' 时,它只显示 "No data available"。

我可以在 'Develop' 选项卡的日志中看到函数 运行,但想了解一下该函数的用法。

有什么我遗漏的吗?

我们认为在主机文件中设置显式主机 ID 时发现了一个问题,这很可能是导致问题的原因。

我们正在跟踪此问题 here 并将在取得进展时对其进行更新。

作为解决方法,请从您的 host.json 文件中删除该 ID。

我也看到了这些。我比较了一个正在运行的函数应用程序和一个不运行的函数应用程序。当我在监视器选项卡中单击 "refresh" 时,无法正常工作的 returns 为 404。它正在像这样击中 URL:

https://[YOUR_APP].scm.azurewebsites.net/azurejobs/api/functions/definitions//invocations?limit=20

注意 "invocations" 前的双斜杠。

在一个工作的应用程序中,它更像是:

https://[YOUR_APP].scm.azurewebsites.net/azurejobs/api/functions/definitions/[YOUR_APP]-[YOUR_FUNCTION]/invocations?limit=20

所以发生了一些事情,炸毁了门户生成的 URL 的 [YOUR_APP]-[YOUR_FUNCTION] 部分。有什么想法吗?

--

更新:我想我已经修好了。

我使用 Microsoft Azure 存储资源管理器连接到与函数应用关联的存储帐户。当我转到 Tables > AzureWebJobsHostLogscommon 时,我注意到两件事:

  • 有一个我删除的函数条目
  • 我创建了一个没有条目的函数(好吧,它存在于 "default-[YOUR_FUNCTION]" RowKey 中,但是“[YOUR_APP]-[YOUR_FUNCTION]” RowKey 丢失

我为缺少的“[YOUR_APP]-[YOUR_FUNCTION]”RowKey 添加了一个新行,并将 OriginalName 设置为实际函数名称。我回到门户,噗!它开始工作了。

我懒得从删除的函数中删除多余的条目。它似乎没有伤害任何东西。但是如果缺少任何真正的功能,它似乎会破坏整个监控选项卡。

它是如何变成这样的,我不确定。也许它在我发布更新时正在做一些事情。

--

更新 2:好吧,这让 Monitor 选项卡工作了,但是数据是 "stale",就好像某个后台进程没有刷新一样。我可以看到 Table 存储中出现的日志数据...

--

更新 3:过时的数据似乎是美国东部地区的一个单独问题,跟踪于 https://github.com/Azure/Azure-Functions/issues/259 ... "no data available" 问题 I如上所述,我更正了 AzureWebJobsHostLogscommon table 的想法。

我也遇到了 "No data available" 问题。我通过添加缺少的应用程序设置解决了这个问题:"FUNCTIONS_EXTENSION_VERSION": "~1"

参考,David Ebbo 对 GitHub 的评论: https://github.com/Azure/Azure-Functions/issues/259#issuecomment-300379674

有同样的问题,通过清空 host.json 并使 "FUNCTIONS_EXTENSION_VERSION": "~3"