【问题标题】:How to send alert email when Flask web service is downFlask Web 服务关闭时如何发送警报电子邮件
【发布时间】:2019-12-27 19:05:53
【问题描述】:

我们使用 Flask 创建了一个监听 webhook POST 请求的 web 服务。当且仅当 Flask Web 服务以某种方式停止运行时,我们才会设置一个电子邮件警报系统。如果返回的状态码是400500,我们不希望发送电子邮件,我们不在乎,只在烧瓶应用程序或进程已被杀死时发送。

Web 服务在永远不会关闭的服务器中运行。任何想法表示赞赏,谢谢!!!

【问题讨论】:

标签: flask


【解决方案1】:

这不应该是烧瓶应用程序的责任。您应该配置一个监控(和警报)系统来轮询烧瓶应用程序并在它不可用时通知您。

我倾向于创建一个不向公众公开的/healthz 端点(它在响应正文中返回带有ok 的HTTP 200)。然后我通过一些监控系统配置轮询,如果轮询失败会提醒我。

您是否已经对您的基础架构/其他服务进行了某种监控?

【讨论】:

  • 您好,先谢谢您的回答。我确实认为这不是 Flask 应用程序的责任。我原本是想监控pid?您介意在您的方法中分享更多细节吗?我确实认为我们有一个监控系统。您对此有什么建议吗?
  • web服务只用于监听webhook,然后根据收到的POST请求中的内容进行一些操作。所以我应该确保服务没有关闭。如果它关闭,那么我们将尽快收到警报。谢谢!!!! :)
  • PID 监控可能是最简单的解决方案,但也是最不精确的解决方案。如果您的 webhook 具有外部依赖项(即:写入磁盘、插入 mysql)并且其中一个依赖项失败(即:磁盘已满,mysql 连接失败)您不会注意到它(您的进程仍将运行,但 webhook将失败)。 /healthz 可以检查这些依赖关系并在其中任何一个失败时引发错误,这将触发警报。如果您不想在这种情况下收到警报,PID 监控可能是最佳选择。
  • 如果您需要,我很乐意推荐一个监控系统。在这种情况下,请提供有关您的基础架构的一些详细信息(服务是普通的 unix 进程/docker 容器/等)。
猜你喜欢
  • 1970-01-01
  • 2018-06-29
  • 2011-12-18
  • 2016-07-24
  • 1970-01-01
  • 1970-01-01
  • 2013-07-01
  • 2011-03-25
  • 2011-09-29
相关资源
最近更新 更多