首页 文章

Azure应用程序洞察 - 自定义警报

提问于
浏览
1

我们运行一个运行在不同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中的事件丢失,但没有提出警报 . 这是正常的吗?

你怎么检查像我这样的案子?

谢谢马可

4 回答

  • -1

    您可以使用Application Insights Web Tests功能来检查 endpoints 是否可以从不同的地理区域获得,并在不可用时发出警报 .

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

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

  • 2

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

    我们在遇到相同问题时一直使用的策略是让一个单独的服务定期发送相同的度量值,但具有“零含义”值 . 在我们的特定情况下,我们使用可用性度量,其中“1”表示 Health ,而“0”表示无,它仅用于在定义的持续时间内没有发送“1”的情况下引出警报 .

    您可以使用任何一组可能的机制发送“0”指标,只要它与您实际想要监控的服务无关 . 你需要确保他们不能同时失败 .

    希望这有帮助,马克西姆

  • 1

    不要以为App Insights会让您发送有关缺少指标的警报,这就是当您的实例无响应时会发生的情况 .

    如果您有外部工具的预算,请查看CloudMonix . 它'll do exactly what you need with using default configuration (no need for agents, custom code, etc). Disclaimer: I'米附属于该产品

  • 2

相关问题