CloudWatch による Athena クエリメトリクスのモニタリング - Amazon Athena

CloudWatch による Athena クエリメトリクスのモニタリング

Athena は、[publish query metrics to CloudWatch] (CloudWatch にクエリメトリクスを投稿する) オプションが選択されている場合に、クエリ関連のメトリクスを Amazon CloudWatch に発行します。CloudWatch でカスタムダッシュボードを作成し、メトリクスのアラームとトリガーを設定する、または Athena コンソールから事前入力されているダッシュボードを直接使用することができます。

ワークグループでのクエリにクエリメトリクスを有効にすると、そのメトリクスが各ワークグループごとに、Athena コンソールにある [Workgroups] (ワークグループ) パネルの [Metrics] (メトリクス) タブに表示されます。

Athena は、以下のメトリクスを CloudWatch コンソールに発行します。

  • DPUAllocated — クエリを実行するためにキャパシティ予約にプロビジョニングされた DPU (データ処理ユニット) の総数。

  • DPUConsumed — 予約の特定の時間に、RUNNING 状態のクエリによってアクティブに消費される DPU 数。ワークグループがキャパシティ予約に関連付けられている場合にのみ発行される指標であり、予約に関連付けられているすべてのワークグループが含まれます。

  • DPUCount — クエリによって消費される DPU の最大数は、クエリの完了時に 1 回だけ発行されます。

  • EngineExecutionTime — クエリの実行にかかったミリ秒数。

  • ProcessedBytes — Athena が DML クエリごとにスキャンしたバイト数。

  • QueryPlanningTime — Athena がクエリ処理フローの計画にかかったミリ秒数。

  • QueryQueueTime — クエリがリソースを待ちながらクエリキューにいたミリ秒数。

  • ServicePreProcessingTime — クエリエンジンにクエリを送信する前に Athena がクエリを前処理するためにかかったミリ秒数。

  • ServiceProcessingTime — クエリエンジンがクエリの実行を終了した後に Athena がクエリ結果を処理するためにかかったミリ秒数。

  • TotalExecutionTime — Athena が DDL または DML クエリの実行にかかったミリ秒数。

詳細については、このドキュメントで後述される「Athena 向けの CloudWatch メトリクスとディメンションのリスト」を参照してください。

これらのメトリクスには、以下のディメンションがあります。

  • CapacityReservation — クエリの実行に使用されたキャパシティ予約の名前 (該当する場合)。

  • QueryState - SUCCEEDEDFAILEDCANCELED

  • QueryType - DMLDDLUTILITY

  • WorkGroup – ワークグループの名前

Athena は、次のメトリクスを AmazonAthenaForApacheSpark 名前空間で CloudWatch コンソールに発行します。

  • DPUCount - 計算を実行するために、セッション中に消費された DPU の数。

このメトリクスには、次のディメンションがあります。

  • SessionId - 計算が送信されるセッションの ID。

  • WorkGroup - ワークグループの名前。

詳細については、このトピックで後述する「Athena 向けの CloudWatch メトリクスとディメンションのリスト」を参照してください。Athena の使用状況のメトリクスについては、「CloudWatch による Athena 使用状況メトリクスのモニタリング」を参照してください。

クエリメトリクスは、Athena コンソールまたは CloudWatch コンソールで表示できます。

ワークグループのクエリメトリクスを Athena コンソールに表示するには
  1. https://console.aws.amazon.com/athena/ で Athena コンソールを開きます。

  2. コンソールのナビゲーションペインが表示されない場合は、左側の展開メニューをクリックします。

    展開メニューを選択します。
  3. ナビゲーションペインで、[Global networks (グローバルネットワーク)] を選択します。

  4. リストから目的のワークグループを選択し、[Metrics] (メトリクス) タブを選択します。

    メトリクスダッシュボードが表示されます。

    注記

    ワークグループのメトリクスを最近有効にした場合や、最近のクエリアクティビティがない場合は、ダッシュボードのグラフが空になる可能性があります。クエリアクティビティは、次のステップで指定する間隔に応じて CloudWatch から取得されます。

  5. [Metrics] (メトリクス) セクションで、CloudWatch からクエリメトリクスをフェッチするために Athena が使用するメトリクス間隔を選択するか、カスタム間隔を指定します。

    Athena コンソールでワークグループのメトリクス取得間隔を指定します。
  6. 表示されたメトリクスを更新するには、更新アイコンをクリックします。

    更新アイコンを選択します。
  7. 更新アイコンの横にある矢印をクリックして、メトリクス表示の更新頻度を選択します。

    Athena コンソールのワークグループメトリクス表示に対する更新間隔を選択します。
Amazon CloudWatch コンソールでメトリクスを表示する
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[Metrics]、[All metrics] を選択します。

  3. AWS/Athena 名前空間を選択します。

AWS CLI を使用してメトリクスを表示するには
  • 次のいずれかを行います。

    • Athena のメトリクスを一覧表示するには、コマンドプロンプトを開き、次のコマンドを使用します。

      aws cloudwatch list-metrics --namespace "AWS/Athena"
    • すべての使用可能なメトリクスのリストを表示するには、次のコマンドを使用します。

      aws cloudwatch list-metrics"

Athena で CloudWatch メトリクスを有効にしている場合、Athena がワークグループごとに以下のメトリクスを CloudWatch に送信します。次のメトリクスは AWS/Athena 名前空間を使用します。

メトリクス名 説明
DPUAllocated

クエリを実行するためにキャパシティ予約にプロビジョニングされた DPU (データ処理ユニット) の総数。

DPUConsumed 予約の特定の時間に、RUNNING 状態のクエリによってアクティブに消費される DPU の数。このメトリックはワークグループがキャパシティ予約に関連付けられている場合にのみ発行され、予約に関連付けられているすべてのワークグループが含まれます。ワークグループをある予約から別の予約に移動した場合、指標にはそのワークグループが最初の予約に属していた時点のデータが含まれます。キャパシティ予約の詳細については、「クエリ処理キャパシティを管理する」を参照してください。
DPUCount クエリによって消費される DPU の最大数は、クエリの完了時に 1 回だけ発行されます。この指標は、キャパシティ予約に関連付けられているワークグループにのみ発行されます。
EngineExecutionTime

クエリの実行にかかった時間のミリ秒数。

ProcessedBytes

Athena が DML クエリごとにスキャンしたバイト数。(ユーザーによって、または制限に達した場合は自動的に) キャンセルされたクエリの場合、キャンセル前にスキャンされたデータの量も含まれます。このメトリクスは、DDL クエリではレポートされません。

QueryPlanningTime Athena でクエリ処理フローの計画にかかったミリ秒数。これには、データソースからテーブルパーティションを取得するためにかかった時間も含まれます。クエリエンジンがクエリの計画を実行するため、クエリの計画時間は EngineExecutionTime のサブセットであることに注意してください。
QueryQueueTime クエリがリソースを待ってキューに並んでいたミリ秒数。一時的なエラーが発生した場合は、クエリを自動的にキューに追加し直すことができます。
ServicePreProcessingTime クエリエンジンにクエリを送信する前に Athena がクエリを前処理するためにかかったミリ秒数。
ServiceProcessingTime クエリエンジンがクエリの実行を終了した後に Athena がクエリ結果を処理するためにかかったミリ秒数。
TotalExecutionTime Athena が DDL クエリまたは DML クエリの実行にかかったミリ秒数。TotalExecutionTime には、QueryQueueTime、QueryPlanningTime、EngineExecutionTime、ServiceProcessingTime が含まれます。

これらの Athena 用メトリクスには、以下のディメンションがあります。

ディメンション 説明
CapacityReservation

クエリの実行に使用されたキャパシティ予約の名前 (該当する場合)。キャパシティ予約が使用されていないとき、このディメンションはデータを返しません。

QueryState

クエリの状態。

有効な統計: SUCCEEDED、FAILED、CANCELED。

QueryType

クエリタイプ。

有効な統計: DDLDML または UTILITY。実行されたクエリステートメントのタイプ。DDL は DDL (データ定義言語) クエリステートメントを示します。DML は、CREATE TABLE AS SELECT などの DML (データ操作言語) クエリステートメントを示します。UTILITYは、SHOW CREATE TABLE、または DESCRIBE TABLE などの DDL と DML 以外のクエリステートメントを示します。

WorkGroup

ワークグループの名前。