Amazon Web Services ブログ
自然言語を使用して Amazon CloudWatch のログとメトリクスをクエリする (プレビュー)
運用データの操作を容易にするために、Amazon CloudWatch は11月26日、Logs および Metrics Insights 用の自然言語クエリ生成を導入します。生成系人工知能 (AI) を活用したこの機能を使用すると、求めているインサイトの説明を英語で記述でき、Logs または Metrics Insights のクエリが自動的に生成されます。
この機能は、CloudWatch Logs と Metrics Insights 用に 3 つの主要な機能を提供します。
- 簡単に開始するのに役立つよう、説明または質問から新しいクエリを生成します。
- より高度な機能を含む言語の学習に役立つクエリの説明。
- ガイド付きのイテレーションを使用して既存のクエリを改良します。
いくつかの例を使用して、これらが実際にどのように機能するかを見てみましょう。最初にログについて説明し、その後にメトリクスについて説明します。
自然言語を使用して CloudWatch Logs Insights クエリを生成する
CloudWatch コンソールの [ログ] セクションで、[Log Insights] を選択します。その後、調査する AWS Lambda 関数のロググループを選択します。
[クエリジェネレーター] ボタンを選択して、新しい [プロンプト] フィールドを開き、自然言語を使用して必要な情報を入力します。
Tell me the duration of the 10 slowest invocations
その後、[新しいクエリを生成] を選択します。次の Log Insights クエリが自動的に生成されます。
[クエリを実行] を選択して結果を確認します。
出力に含まれる情報が多すぎることがわかりました。必要なデータのみを表示したいので、[プロンプト] に次の文を入力し、[クエリを更新] を選択します。
Show only timestamps and latency
クエリは入力に基づいて更新され、タイムスタンプと期間のみが返されます。
更新されたクエリを実行すると、読みやすい結果を得ることができました。
次に、ログにエラーが含まれているかどうかを確認したいと思います。次の文を [プロンプト] に入力し、新しいクエリを生成します。
Count the number of ERROR messages
リクエストに応じて、生成されたクエリは、ERROR
文字列を含むメッセージをカウントします。
クエリを実行すると、想定よりも多くのエラーがあることがわかりました。さらに詳しい情報が必要です。
このプロンプトを使用してクエリを更新し、エラーをより適切に分散させます。
Show the errors per hour
更新されたクエリは、bin() 関数を使用して、結果を 1 時間ごとの間隔でグループ化します。
メモリの使用状況に関するより高度なクエリを見てみましょう。いくつかの Lambda 関数のロググループを選択し、次のように入力します。
Show invocations with the most over-provisioned memory grouped by log stream
クエリを生成する前に、歯車アイコンを選択して、プロンプトと説明をコメントとして含めるオプションを切り替えてオンにします。結果は次のとおりです (読みやすくするために説明を複数行に分割しています)。
これで、これらのエラーを理解するために必要な情報が得られました。一方で、EC2 ワークロードもあります。それらのインスタンスはどのように実行されているのでしょうか? いくつかのメトリクスを見てみましょう。
自然言語を使用して CloudWatch Metrics Insights クエリを生成する
CloudWatch コンソール の [メトリクス] セクションで、[すべてのメトリクス] を選択します。その後、[クエリ] タブで、[エディタ] を使用します。必要に応じて、[クエリジェネレーター] を [ビルダー] でも使用できます。
先ほどと同様に、[クエリジェネレーター] を選択します。その後、平易な英語を使用して必要な情報を入力します。
Which 10 EC2 instances have the highest CPU utilization?
[新しいクエリを生成] を選択し、Metrics Insights 構文を使用して結果を取得します。
グラフを表示するには、[実行] を選択します。
私の EC2 インスタンスはあまり稼働していないようですね。この結果は、それらのインスタンスが CPU をどのように使用しているかを示していますが、ストレージはどうでしょうか? プロンプトに次の文を入力し、[クエリを更新] を選択します。
How about the most EBS writes?
更新されたクエリは、平均 CPU 使用率を、インスタンスにアタッチされているすべての EBS ボリュームに書き込まれたバイトの合計に置き換えます。上位 10 件の結果のみを表示するという制限は維持されます。
クエリを実行し、その結果を確認することで、EC2 インスタンスによってストレージがどのように使用されているかをより良く理解できます。
いくつかのリクエストを入力し、生成されたクエリをログとメトリクスに対して実行して、これがお客様のデータでどのように機能するかをぜひご確認ください。
留意点
Amazon CloudWatch のログとメトリクス用の自然言語クエリ生成は、米国東部 (バージニア北部) と米国西部 (オレゴン) AWS リージョンでプレビューでご利用いただけます。
プレビュー中における自然言語クエリ生成の利用に追加料金はかかりません。お支払いいただくのは、CloudWatch の料金に従って、クエリの実行コストのみです。
生成されるクエリは生成系 AI によって生成され、アカウントで選択される利用可能なデータなどの要因に依拠します。これらの理由により、結果は異なる場合があります。
クエリを生成する際、元のリクエストとクエリの説明をコメントとして含めることができます。これを実行するには、クエリ編集ウィンドウの右下にある歯車アイコンを選択し、それらのオプションを切り替えてオンにします。
この新しい機能は、ログとメトリクス用のクエリの生成と更新に役立ち、時間と労力を節約できます。このアプローチにより、エンジニアリングチームは、特定のデータに関する知識やクエリに関する専門知識について心配することなく、業務を拡張できます。
自然言語を使用して、Amazon CloudWatch でログとメトリクスを分析しましょう。
– Danilo
原文はこちらです。