2

haproxy の背後で Rails プロジェクトを実行しています。アプリケーションにキープアライブが毎秒送信されます。これにより、非常にノイズの多いログ ファイルが生成され、掘り下げるのが少し面倒になり、ファイルが不必要に大きくなります。

私が最初に考えたのは、そのアクションのログ レベルを debug に変更することでしたが、他の誰かが.log のログ レベルを変更することを提案しましたaround_filter。私はそのアイデアに夢中ではありませんが、それは私がそれを実装した方法かもしれません. 私はさまざまな解決策を受け入れますが、一般的な要件は、それらのアクションを静かにできることですが、何らかの理由でそれらを見る必要がある場合は、ログ レベルを変更できます。

4

1 に答える 1

4

もう 1 つの解決策は、Rails ApplicationController ライフサイクルに到達する前にキープアライブ チェックを処理する Rack ミドルウェアを挿入することです。

ステップ 1: 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

もちろん、必要に応じてこのヘルスチェックを調整してください。他の Request / CGI 変数を確認する必要があるかもしれません...

ステップ 2: このミドルウェアをRails::Rack::Logger の前に必ず挿入してください:

config.middleware.insert_before Rails::Rack::Logger, "HealthCheckMiddleware"

これで、ミドルウェアがヘルス チェックを処理し、ログが完全にバイパスされます。

于 2012-04-23T18:45:33.560 に答える