こんにちは!やくもです!
最近気になるアップデートがありましたので、さっそく試してみました。
はじめに
今回実施してみたのは、CloudWatch Logs Insightsから、OpenSearch PPLとSQLのクエリ言語を自然言語で生成できるようになったということです。
以前までも自然言語で生成する機能はあったようですが、今回いくつか変わっている点もあるようですね。
何が変わったか
具体的な変更ポイントとしては大きく2点あります。
一つ目は対応クエリにOpenSearch PPL/SQLが追加されたことです。
以前は一種類しか選べませんでしたが、大きく増えました。
PPL、SQLについてですが、ここではOpenSearch独自のクエリ言語くらいの説明にとどめておこうかと...
今回はPPLを例に進めていきたいと思います。
PPL(パイプ処理言語 )はパイプ(|)を使った処理が特徴的なクエリ言語です。
これらの対応により、今までよりもしっかりインサイトが得られるようになったといえます。
もう一点は、対応リージョンの増加です。
以前はこのクエリ生成、対応リージョンがかなり少なかったですが、今回でかなり増え以下のリージョンに対応しています。
米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (オレゴン)、アジアパシフィック (香港)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京)、ヨーロッパ (フランクフルト)、ヨーロッパ (アイルランド)、およびヨーロッパ (ストックホルム)
触ってみる
実際にクエリの生成を試してみました。
CloudWatch Logs Insights
プロンプト欄に入力して、クエリを生成していくようになっているようです。
ちなみに、注意書きで出てきていますが、現在英語のみ対応とのことです。日本語も試しましたが普通にエラーになりました。
プロンプト欄には以下のように入力しました。
Find the 10 slowest requests
英語ですが、遅いリクエストを教えてくれ~って意味になると思います。これでクエリを生成すると、以下のようなものができます。
stats AVG(@timestamp) as avg_timestamp by @message
| sort -avg_timestamp
| head 10
これで遅いリクエストの一覧がわかるようです。
パイプ処理も使ってるので、PPLの構文に則って作成してくれてると思います。
実行結果は以下のようになりました。

また、別のクエリも試してみました。
以下で全部のエラーメッセージを見てみようと思います。
Give me all unique exception messages
こちらのクエリを実行します。
dedup @message
| fields @message
こんな感じでログを簡単に確認できるので、感触としてはかなりいいです!
クエリ生成に使用するプロンプトですが、サンプルコマンドがいくつか用意されています。
「クエリコマンド」をクリックすると出てきますし、
「サンプルクエリを選択」をクリックすると、用途別の出来上がったSQLを選択することもできます。

上記でも触れましたが、プロンプト欄に日本語を入力すると、英語しか受け付けてないよ。と怒られます。
日本語対応しないかなあ...

最後に
今回はCloudWatch Insightsのアップデートで、OpenSearch PPL/SQLのクエリを生成できるようになった機能でした。
私は普段監視や運用をしないのでなじみがないですが、普段多く触る方には意外とうれしい機能なんじゃないかなと思います。普段から使い慣れた言語を使えるわけですから。それに加えて、英語のみとはいえ、自然言語でクエリ生成できるようになったので、ログ検索の敷居はぐっと低くなり、やりやすくなったと思います。
文法はよく知らんから、手早く分析したい!という方にもおすすめだと思います。


