hogashi.*

日記から何から

kataribeでクエリパラメータの値を無視してキーの様子だけうまくまとめる

 設定ファイル (toml) で [[replace]] が使える。 kataribe というのはこちら: GitHub - matsuu/kataribe: Access log profiler based on response time

github.com

 ISUCON10 予選の後の感想戦の時間に初めてちゃんと kataribe を使ってみた(予選中は僕じゃない人がやってくれていた)のだけど、 (正規表現にマッチしたものを name として扱うことにするルールである) [[bundle]] だけでちまっと設定を書いてある状態だったので、クエリパラメータの値を無視してキーだけうまくまとめてみたいな、と思い、登場するクエリパラメータそれぞれついている/いないの全通りの [[bundle]] を 2400行くらい書いて(というか js で雑に生成して)見てみていた。

 正規表現にマッチした部分を name で置き換えてくれる、というような動きをしてくれれば 1個のルールで済んで助かるな〜と思って issue を探してみたところ、記事冒頭の issue の通り [[replace]] という設定がもう実装されていることに気づいて、めちゃめちゃテンションが上がった。今後また kataribe を使うときは [[replace]] をバリバリ使ってうまくまとめて見たい。

 ちなみに issue ではクエリパラメータの値を無視するこういう例が紹介されている:

[[replace]]
regexp = '=[0-9]+&'
replace = '=<num>&'

[[replace]]
regexp = '=[0-9]+\s'
replace = '=<num> '
https://github.com/matsuu/kataribe/pull/18#issuecomment-527731712

 これで /hoge?foo=1&bar=2/hoge?foo=3&bar=4 のようなリクエストを同じ /hoge?foo=<num>&bar=<num> としてまとめることができる。