自然言語を使用した CloudWatch Logs Insights クエリの生成と更新 - Amazon CloudWatch Logs

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

自然言語を使用した CloudWatch Logs Insights クエリの生成と更新

CloudWatch Logs は、CloudWatch Logs InsightsOpenSearch Service PPLOpenSearch Service SQLおよび CloudWatch Metrics Insightsのクエリの生成と更新に役立つ自然言語クエリ機能をサポートしています。

この機能を使用すると、どのような CloudWatch Logs データを探しているのかを平易な英語で質問したり、具体的に説明したりすることができます。自然言語機能が働いて、入力したプロンプトに基づいてクエリが生成され、クエリの仕組みを説明した文が 1 行ずつ表示されます。また、さらにデータを詳しく調査できるように、生成されたクエリを更新することもできます。

環境に応じて、「転送されたバイト数で上位 100 のソース IP アドレスは何ですか?」 や「Lambda 関数の最も遅いリクエストを 10 個見つけてください。」などのプロンプトを入力できます。

注記

自然言語クエリ機能はリージョン別サービスです。一部のリージョンでは、この機能は、クエリ プロンプトを処理するために、米国のリージョンに対してクロスリージョン呼び出しを行います。詳細については、Amazon CloudWatch が自然言語クエリ結果の要約とクエリ生成のリージョンサポートを拡張する」を参照してください。

この機能を使用して CloudWatch Logs Insights クエリを生成するには、CloudWatch Logs Insights クエリエディタを開き、クエリするロググループを選択し、[Generate query] を選択します。

重要

自然言語クエリ機能を使用するには、CloudWatchLogsFullAccessCloudWatchLogsReadOnlyAccessAdministratorAccess、または ReadOnlyAccess IAM ポリシーでサインインするか、cloudwatch:GenerateQuery のアクセス許可が必要です。

クエリの例

このセクションの例では、自然言語機能を使用して、クエリを生成し更新する方法について説明します。

注記

CloudWatch Logs Insights クエリエディタと構文の詳細については、「CloudWatch Logs Insights query syntax」を参照してください。

例: 自然言語クエリを生成する

自然言語を使用してクエリを生成するには、プロンプトを入力し、[新しいクエリを生成] を選択します。これらの例は、基本検索を実行するクエリを示しています。

Prompt

以下は、最も遅い 10 個の Lambda 関数の呼び出しを検索する機能を指示するプロンプトの例です。

Find the 10 slowest requests
クエリ

以下は、自然言語機能がプロンプトに基づいて生成した CloudWatch Logs Insights クエリ言語を使用したクエリです。プロンプトがクエリの前にあるコメントにどのように表示されるかに注意してください。クエリの後に、クエリの仕組みを説明した文があります。

# Find the 10 slowest requests fields @timestamp, @message, @duration | sort @duration desc | limit 10 # This query retrieves the timestamp, message and duration fields from the logs and sorts them in descending order by duration to find the 10 slowest requests.
注記

プロンプトとクエリの仕組みを説明した文が表示されないようにするには、エディタの歯車アイコンを使用します。

Prompt

OpenSearch SQL クエリを生成するには、OpenSearch SQL タブを選択し、クエリジェネレータープロンプトボックスを開いて自然言語プロンプトを入力します。以下は、自然言語機能を使用して OpenSearch SQL クエリを生成するプロンプトの例です。

Give me the number of errors and exceptions per hour
クエリ

以下は、1 時間あたりに集計されたエラーと例外の数を見つけるために使用できる、そのプロンプトによって生成された SQL クエリです。

SELECT DATE_FORMAT(`@timestamp`, 'yyyy-MM-dd HH') AS hour, COUNT(*) AS error_count FROM `/aws/lambda/CloudWatchOdysseyQueryGen` WHERE `@message` LIKE '%error%' OR `@message` LIKE '%exception%' GROUP BY DATE_FORMAT(`@timestamp`, 'yyyy-MM-dd HH') ORDER BY hour
Prompt

OpenSearch PPL クエリを生成するには、OpenSearch PPL タブを選択し、クエリジェネレータープロンプトボックスを開いて自然言語プロンプトを入力します。以下は、自然言語機能を使用して OpenSearch PPL クエリを生成するプロンプトの例です。

Give me all unique exception messages
クエリ

以下は、ログ内の一意の例外メッセージを検索するために使用できる、そのプロンプトによって生成された PPL クエリです。

dedup @message | fields @message

例: 自然言語クエリを更新する

生成済みのプロンプトを編集し、[クエリを更新] を選択することで、クエリを更新できます。

プロンプトの更新

次の例は、先ほどのプロンプトを更新したものを示しています。最も遅い 10 個の Lambda 関数の呼び出しを検索するプロンプトの代わりに、このプロンプトは 最も遅い 20 個の Lambda 関数の呼び出しを検索し、追加のログイベントのために別の列を含めています。

Show top 20 slowest requests instead and display requestId as a column
クエリの更新

以下は、CloudWatch Logs Insights クエリ言語を使用した更新されたクエリの例です。更新したプロンプトが更新したクエリの前にあるコメントにどのように表示されるかに注意してください。クエリの後に、元のクエリがどのように更新されたかを説明した文があります。

# Show top 20 slowest requests instead and display requestId as a column fields @timestamp, @message, @requestId, @duration | sort @duration desc | limit 20 # This query modifies the original query by replacing the @message field with the @requestId field and changing the limit from 10 to 20 to return the top 20 log events by duration instead of the top 10.

サービス改善のためのデータ使用をオプトアウトする

AI モデルをトレーニングし、該当するクエリを生成するために提供した自然言語プロンプトデータは、サービスを提供して維持するためにのみ使用されます。このデータは、CloudWatch Logs Insights の品質を高めるために使用される可能性があります。お客様の信頼、プライバシー、コンテンツのセキュリティが当社の最優先事項です。詳細については、「AWS サービス規約」と「AWS responsible AI policy」を参照してください。

自然言語クエリの開発や品質改善に自分のコンテンツが使用されないようにオプトアウトするには、AI サービスオプトアウトポリシーを作成します。クエリ生成機能などのすべての CloudWatch Logs AI 機能データ収集をオプトアウトするには、CloudWatch Logs のオプトアウトポリシーを作成する必要があります。詳細については、「AWS Organizations ユーザーガイド」の「AI サービスオプトアウトポリシー」を参照してください。