0

我在 Rails 5 上运行异常通知 gem。我在 config/environments/production.rb 中设置了默认方式:

  Rails.application.config.middleware.use ExceptionNotification::Rack,
  email: {
    # deliver_with: :deliver, # Rails >= 4.2.1 do not need this option since it defaults to :deliver_now
    email_prefix: '[MFTA Error Notification] ',
    sender_address: %{"notifier" <almost@got.me>},
    exception_recipients: %w{butnotquite@gmail.com}
  }

当网站启动时,这适用于标准错误......

但它不应该向我发送一份关于 500 个服务器错误的报告吗?非常随机......大约每月一次左右......rails应用程序会在我身上崩溃,我需要重新部署它才能让它再次工作。但我什至不会知道该网站在没有通知的情况下已关闭。

那么是否有一些单独的配置......甚至另一个Gem......让我知道什么时候发生这种情况?

4

1 回答 1

0

由于您的应用托管在 aws 中,因此您可以在应用中设置运行状况检查端点并使用 lambda 函数定期对其进行 ping 操作。如果没有 200 响应,则很可能您的应用程序已关闭,因为提供健康检查是一件非常简单的事情,不应该失败。

通常人们会设置一个阈值,比如在 Y 时间内连续 X 次健康检查失败,以验证应用程序是否已关闭。但这需要您的 lambda 函数是有状态的。如果您不介意由于部署或服务器重启而导致误报,您可以忘记这一点。

此外,如果您希望健康检查更高效,您可以实现机架中间件来拦截此健康检查请求并返回 200 响应。从这个意义上说,请求不必经过所有堆栈,直到它到达 Rails

于 2021-04-03T16:31:28.203 回答