【问题标题】:Compiled Azure Function Monitoring: "No data available"已编译的 Azure 功能监控:“无可用数据”
【发布时间】:2017-04-07 11:29:24
【问题描述】:

我在 Azure 上使用了几个已编译的 C# 函数。它们按预期工作,但是当我在任一功能上单击“监控”时,它只会显示“无可用数据”。

我可以在“开发”选项卡的日志中看到正在运行的函数,但想了解一下函数的使用情况。

我有什么遗漏吗?

【问题讨论】:

  • 您的日志存储在存储中。您能否查看您的应用设置并确认您已设置 AzureWebJobsDashboard 应用设置?您能否分享您在流式传输日志中看到的一次运行的调用 ID(如果可以的话,还包括区域)?
  • 另外,您使用的是应用服务认证吗?当您单击监视器选项卡或请求返回意外结果(404 等)时,浏览器控制台中是否有任何错误?
  • 我也有类似的问题。我的监视器页面不是“无可用数据”,而是仅显示 11 天前的函数调用日志,即使该函数最近在 2 天前运行。确认我设置了 AzureWebJobsDashboard 和 AzureWebJobsStorage 环境变量(它们恰好使用相同的连接字符串)。在我的 Kudu 页面中,那里的函数调用日志显示了 2 天前的最近执行情况。在我的表存储中,我确实看到了 2 天前与 StartTime 匹配的行。现在执行的函数 ID:85109356-dfe4-47cf-a982-a9f26d9f4503,Monitor 中没有更新
  • @ChrisAnderson-MSFT - 任何想法可能是什么问题?这是我们这边的配置问题吗?这让我们的生产操作人员非常担心他们无法使用监控页面

标签: c# azure azure-functions


【解决方案1】:

我也看到了这些。我比较了一个正在工作的函数应用程序和一个不工作的函数应用程序。当我在监视器选项卡中单击“刷新”时,不工作的那个会返回 404。它正在访问这样的 URL:

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

注意“调用”之前的双斜杠。

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

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 时,我注意到了两件事:

  • 有一个我删除的函数的条目
  • 我创建的一个函数没有条目(嗯,它存在于“默认-[YOUR_FUNCTION]”行键中,但“[YOUR_APP]-[YOUR_FUNCTION]”行键丢失了

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

我没有费心从已删除函数中删除无关条目。它似乎没有伤害任何东西。但是,如果缺少任何真正的功能,它似乎会破坏整个监视器选项卡。

它是怎么变成这样的,我不确定。也许当我发布更新时它正在做某事。

--

更新 2:嗯,这让 Monitor 选项卡工作了,但数据是“陈旧的”,就好像某个后台进程没有刷新一样。我可以看到日志数据出现在 Table Storage...

--

更新 3:在美国东部地区,陈旧数据似乎是单独的问题,在 https://github.com/Azure/Azure-Functions/issues/259 跟踪...我认为“无可用数据”问题已由我纠正AzureWebJobsHostLogscommon 表如上。

【讨论】:

    【解决方案2】:

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

    我们正在跟踪此问题here,并将随着我们的进展进行更新。

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

    【讨论】:

    • 我遇到了同样的问题。 host.json 文件为空(“{}”)。编译的函数正在工作,我可以在“开发”选项卡上看到日志,但“监视器”不起作用。没有错误,没有任何错误或旧数据。
    • 更新:我想我已经修复了,请参阅我对这篇文章的回答。不知何故,“AzureWebJobsHostLogscommon”表缺少其中一项功能,这破坏了所有这些功能的“监视器”选项卡。
    • 为我工作,谢谢。尽管我的代码有一个空的 host.json 文件,但部署的函数应用程序在文件中有一个 id。删除 id 并重新启动函数应用程序后,我的问题现在消失了。
    【解决方案3】:

    我也遇到了“没有可用数据”的问题。我通过添加缺少的应用程序设置解决了这个问题:"FUNCTIONS_EXTENSION_VERSION": "~1"

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

    【讨论】:

      【解决方案4】:

      有同样的问题,通过清空host.json并制作解决它 "FUNCTIONS_EXTENSION_VERSION": "~3"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-16
        • 2015-06-22
        • 1970-01-01
        • 1970-01-01
        • 2013-03-08
        • 1970-01-01
        • 2019-09-26
        • 1970-01-01
        相关资源
        最近更新 更多