

# CloudWatch Logs Insights にアクセスする
<a name="access-cloudwatch-logs-insights"></a>

このソリューションは、Lambda 関数のエラー、警告、情報、デバッグの各メッセージをログに記録します。ログ記録するメッセージのタイプを選択するには:

1. AWS Lambda コンソールで該当する関数を探します。

1. **POWERTOOLS\_LOG\_LEVEL** 環境変数を追加します。

1. この変数を該当するメッセージタイプに設定します。

詳細な手順については、「*AWS Lambda デベロッパーガイド*」の「[Lambda 環境変数の作成](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html)」を参照してください。

選択できるログレベルのタイプは、次の表のとおりです。


| レベル | 説明 | 
| --- | --- | 
|  **エラー**  | ログには、オペレーションの失敗の原因となるすべての情報が含まれます。 | 
|  **警告**  | ログには、関数の不整合を引き起こす可能性はあるが、必ずしもオペレーションの失敗の原因となるとは限らないすべての情報が含まれます。ログには、ERROR メッセージも含まれます。 | 
|  **情報**  | ログには、関数の動作に関するハイレベル情報が含まれます。ログには、ERROR および WARNING メッセージも含まれます。 | 
|  **DEBUG**  | ログには、関数の問題をデバッグする際に役立つ可能性のある情報が含まれます。ログには、ERROR、WARNING、INFO メッセージも含まれます。 | 

次の手順に従って、このソリューションに CloudWatch Logs Insights を追加します。

1. 以下のとおり、関連するロググループを特定します。

   1. [AWS CloudFormation コンソール](https://console.aws.amazon.com/cloudformation)にサインインします。

   1. ターゲットスタックを選択します。

   1. **[Resources]** タブを選択して、ターゲットの Lambda 関数を検索します。

   1. [AWS Lambda コンソール](https://console.aws.amazon.com/lambda)にサインインして、各ターゲットの Lambda 関数を選択します。

   1. ターゲット Lambda 関数ごとに、**[Monitor]** タブを選択して、**[View CloudWatch Logs]** をクリックします。

   1. インサイトを抽出するロググループの名前をコピーします。

1. [Amazon CloudWatch](https://console.aws.amazon.com/cloudwatch) コンソールに移動します。

1. ナビゲーションメニューの **[ログ]** で、**[ログのインサイト]** を選択します。

1. **[ログのインサイト]** ページで、**[ログ]** タブを選択します。

1. 手順 1 のロググループ名を検索します。

1. 次のサンプルクエリのいずれかをコピーし、クエリフィールドに貼り付けます。

   1. すべてのクライアント例外を識別するには:

      ```
      fields @message
      |filter @message like /(?i)Exception/|stats count(*) as exceptionCount by @message
      ```

   1. 関数名別に呼び出し回数を取得するには:

      ```
      stats count(*) by function_name
      ```

   1. 5 分間隔で呼び出された回数を取得するには:

      ```
      stats count(*) as invocations by bin(5m)
      ```

   1. すべての [AWS X-Ray](https://aws.amazon.com/xray/) のトレース ID を取得するには:

      ```
      filter @message like "XRAY TraceId"
      |parse @message "XRAY TraceId: * " as traceId|stats count(*) by traceId
      ```

   1. 特定の X-Ray のトレース ID に関するログを取得するには:

      ```
      filter @message like "your-traceid-here"
      ```

   1. 不正な WebSocket エラーを取得するには:

      ```
      fields
      @ingestionTime,
      @log,
      @logStream,
      @message,
      @requestId,
      @timestamp,
      errorMessage,
      errorType
      |filter @message like /Unauthorized/ and @message like /websocket/|sort @timestamp desc
      ```

   1. 公開されるメトリクスの数を取得するには:

      ```
      filter @message like "CloudWatchMetrics"
      |parse @message /"Metrics":\s*\[(?<metrics>.*?)\]/|stats count(*) as metric_count by metrics
      ```