1. サーチマクロとは
サーチマクロ(Search Macro)とは、よく使うSPLの断片に名前を付けて再利用できるようにする仕組みです。 同じような条件やコマンドの並びを何度も書いていると、タイプミスが増え、あとから直すのも大変になります。 その共通部分をマクロとして一度定義しておけば、名前を呼び出すだけで展開されるため、 サーチの共通化と保守性の向上に役立ちます。
2. マクロの定義と呼び出し
マクロは「設定 > 高度なサーチ > サーチマクロ」から作成します。 定義するのは、名前と、そこに展開されるSPLの文字列(定義)です。
たとえば、Webエラーだけを抜き出す条件を web_errors という名前で定義するとします。
index=web status>=400
サーチの中では、マクロ名をバッククォートで囲んで呼び出します。 呼び出した箇所は、実行時に定義した文字列へそのまま置き換えられます。
`web_errors` | stats count by status
このサーチは、実行時には index=web status>=400 | stats count by status と同じ意味になります。
マクロは単なる文字列の置き換えです。index指定やコマンド、evalの式など、SPLのどの部分でも切り出してマクロにできます。
3. 引数付きマクロ
マクロには引数を持たせ、呼び出すたびに値を変えることもできます。
定義側では、受け取る値を $引数名$ の形で埋め込みます。
たとえば、指定したホストのエラー件数を数えるマクロを考えます。
index=web host="$host$" status>=400 | stats count
呼び出すときは、マクロ名のうしろにカッコを付けて値を渡します。
`errors_by(web01)`
これは実行時に index=web host="web01" status>=400 | stats count へ展開されます。
引数付きマクロは、名前に引数の数を添えて管理されます。上の例は引数が1つなので、設定画面上の名前は errors_by(1) となります。同じ errors_by でも引数の数が違えば別のマクロとして扱われます。
4. まとめ
- サーチマクロはよく使うSPLの断片に名前を付けて再利用する仕組み
- 定義は「設定 > 高度なサーチ > サーチマクロ」、呼び出しはバッククォートで囲む
- 引数付きマクロは定義側で
$引数名$で受け、名前(値)の形で渡す - 引数付きは
errors_by(1)のように引数の数を添えて管理される