【问题标题】:Azure Application Insights - Custom alertsAzure Application Insights - 自定义警报
【发布时间】:2016-12-09 18:05:02
【问题描述】:

我们运行一个在不同 Azure 角色(2 个 Web 角色 + 2 个工作角色)上运行的混合应用程序。上周末出了点问题,服务进入“无响应”状态并在该状态下保持了两天(!)而没有重新启动。

我们决定不集成 Azure Application Insights,因为我们无法忍受 2 天不知道的情况。

我想要的是我的应用程序的心跳。我们的工作角色之一有不同的服务同时运行。我想监控这些服务是否正在运行以及它们的性能如何(根据我定义的指标,比如说“一分钟处理的消息数”)。

如果该指标下降(或上升)阈值,我希望收到警报。我尝试了一个小型演示应用程序,但我做不到。

我在 C# 演示应用上使用 Azure Application Insights API 所做的事情: 1. 在无限循环中,每个循环后等待 10 秒,跟踪 StartOperation 2. 在这个 StartOperation 中,跟踪一个 TrackMetric 传递一个从 0 到 10 的随机值 3. 检查 Azure 上是否一切正常(确实如此) 4. 定义一个警报,如果该指标在五分钟内小于或等于 1,则必须发送电子邮件

什么都没有到达,但一切都在正常运行。在我停止服务之后,我看到 Azure 中的事件下降,但没有引发警报。这正常吗?

你如何检查像我这样的案例?

谢谢 马可

【问题讨论】:

    标签: c# azure azure-worker-roles azure-application-insights


    【解决方案1】:

    您或许可以使用 Application Insights Web 测试功能来检查端点是否在不同的地理区域可用,并在不可用时发出警报。

    如果所有端点都经过身份验证,您可以公开简单的“/ping”端点并针对它运行 Web 测试。

    但是,它不适用于开箱即用的 Worker 角色,除非您将其注册为通过 Web 协议接受“/ping”(对于 Worker 角色可行,例如,可以通过这种方式实现 WCF 服务)。

    【讨论】:

    • 这是一个很好的想法,甚至是一个易于使用 OWIN 实现的想法。我唯一能想象的是,如果后台服务正在运行但没有做任何事情,我的“ping”服务将不知道。但这是一个有趣的方法。感谢您的支持!
    【解决方案2】:

    问题在于,Application Insights 自定义警报目前仅在数据到达时触发。

    我们在遇到相同问题时一直使用的策略是让单独的服务定期发送相同的指标但具有“零意义”值。 在我们的具体案例中,我们使用可用性指标,其中“1”表示健康,而“0”表示无意义,它仅用于在定义的持续时间内没有发送“1”的情况下引发警报。

    您可以使用任何广泛的可能机制来发送“0”指标,只要它独立于您实际要监控的服务即可。您需要确保它们不会同时失败。

    希望这会有所帮助, 马克西姆

    【讨论】:

      【解决方案3】:

      不要认为 App Insights 会让您在缺少指标时发送警报,当您的实例无响应时会发生这种情况。

      如果您有外部工具的预算,请查看CloudMonix。使用默认配置(不需要代理、自定义代码等),它将完全满足您的需求。免责声明:我隶属于该产品

      【讨论】:

      • 谢谢!我会深入研究它。谢谢!
      【解决方案4】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-04
        • 2020-04-16
        • 2018-12-13
        • 1970-01-01
        • 2017-10-17
        • 2021-09-14
        • 1970-01-01
        相关资源
        最近更新 更多