Apache httpd access_logで条件を指定して、処理に500ミリ秒以上かかったリクエストのみを保持する方法はありますか?
CustomLog
ディレクティブを使用すると、要求がログに記録されるタイミングを制御するために使用されるcondition(オプションの3番目の引数)を設定できます。 (Apache 2.4+では、これは Apache Expression の形式をとることができます。)ただし、このconditionは通常、リクエストのプロパティ(ファイルresponseに関連付けられているものではなく、タイプ、リクエストヘッダーなど)。 (HTTPresponseステータスに基づいて条件を作成することは可能に思えますが、これは REQUEST_STATUS
サーバー変数 =。)
ただし、server response timeに基づいてconditonを作成する方法がわかりません。 (?)
回避策としては、カスタムログ形式のフォーマット文字列%msT
(特にミリ秒として記録する場合)を使用して、この情報をアクセスログに明確に含めることができます。その後、ログファイルアナライザーを使用してこの情報をフィルタリングできます。
%T
-リクエストの処理にかかった時間(秒単位)。
%{UNIT}T
-UNITで指定された時間単位での、リクエストの処理にかかった時間。有効な単位は、ミリ秒の場合はms
、マイクロ秒の場合はus
、秒の場合はs
です。s
を使用すると、フォーマットなしで%T
と同じ結果が得られます。us
を使用すると、%D
と同じ結果が得られます。%T
とユニットの組み合わせは、2.4.13以降で使用できます。
参照:
http://httpd.Apache.org/docs/current/mod/mod_log_config.html#formats