我们正在 haproxy 后面运行一个 Rails 项目。每秒都会向应用程序发送一个保持活动状态。这会导致非常嘈杂的日志文件,这使得挖掘起来有点痛苦,并使它们变得不必要地大。
我的第一个想法是更改该操作的日志记录级别以进行调试,但其他人建议更改around_filter
. 我对这个想法并不疯狂,但这可能就是我实现它的方式。我对不同的解决方案持开放态度,但一般要求是我可以让这些操作安静下来,但如果我出于任何原因需要查看它们,我可以更改日志记录级别。
我们正在 haproxy 后面运行一个 Rails 项目。每秒都会向应用程序发送一个保持活动状态。这会导致非常嘈杂的日志文件,这使得挖掘起来有点痛苦,并使它们变得不必要地大。
我的第一个想法是更改该操作的日志记录级别以进行调试,但其他人建议更改around_filter
. 我对这个想法并不疯狂,但这可能就是我实现它的方式。我对不同的解决方案持开放态度,但一般要求是我可以让这些操作安静下来,但如果我出于任何原因需要查看它们,我可以更改日志记录级别。
另一种解决方案是在进入 Rails ApplicationController 生命周期之前插入一些 Rack 中间件来处理保活检查。
步骤1:制作一些响应keep-alive检查的中间件。在我的示例中,keep-alive 请求是一个GET /health-check
,所以它看起来像:
class HealthCheckMiddleware
def initialize(app)
@app = app
end
def call(env)
if env['PATH_INFO'] == '/health-check'
return [200, {}, ['healthy']]
end
@app.call(env)
end
end
当然,根据需要调整此运行状况检查。也许您需要检查其他请求/CGI 变量...
第 2 步:确保在Rails::Rack::Logger之前插入此中间件:
config.middleware.insert_before Rails::Rack::Logger, "HealthCheckMiddleware"
现在您的中间件将处理健康检查,并且您的日志已被完全绕过。