ゼファーネットのロゴ

新しいジョブ可観測性メトリクスを使用した AWS Glue ジョブのモニタリングとデバッグの強化、パート 3: Amazon QuickSight を使用した視覚化と傾向分析 |アマゾン ウェブ サービス

日付:

In 第2部 このシリーズでは、これを有効にする方法について説明しました。 AWSグルー ジョブの可観測性メトリクスを作成し、それを Grafana と統合してリアルタイム監視します。 Grafana は、パイプラインの状態を表示するための強力なカスタマイズ可能なダッシュボードを提供します。ただし、時間の経過に伴う傾向を分析し、さまざまな次元から集計し、組織全体で洞察を共有するには、次のような専用のビジネス インテリジェンス (BI) ツールが必要です。 アマゾンクイックサイト あなたのビジネスにとってより効果的になる可能性があります。 QuickSight を使用すると、ビジネス ユーザーは対話型のダッシュボードやレポートでデータを簡単に視覚化できます。

この投稿では、QuickSight を アマゾンクラウドウォッチ メトリクスを作成し、グラフを作成して、AWS Glue ジョブの可観測性メトリクスの傾向を明らかにします。履歴パターンを分析することで、パフォーマンスを最適化し、問題を積極的に特定し、計画を改善することができます。 CloudWatch メトリクス ストリームと QuickSight SPICE を使用して、CloudWatch メトリクスを QuickSight に取り込む手順を説明します。この統合により、折れ線グラフ、棒グラフ、その他の種類のグラフを使用して、日次、週次、月次のパターンを明らかにすることができます。 QuickSight を使用すると、メトリクスに対して集計計算を実行して、より詳細な分析を行うことができます。ジョブ名などのさまざまな次元でデータをスライスし、異常を確認し、組織全体でレポートを安全に共有できます。これらの洞察により、チームはデータ統合パイプラインをより効率的にするための可視性を得ることができます。

ソリューションの概要

次のアーキテクチャ図は、ソリューションを実装するためのワークフローを示しています。

ワークフローには次の手順が含まれます。

  1. AWS Glue ジョブは可観測性メトリクスを CloudWatch メトリクスに出力します。
  2. CloudWatch はメトリクス ストリームを通じてメトリクス データをストリーミングします。 Amazon データ ファイアホース.
  3. Data Firehose は AWSラムダ データを変換し、変換されたレコードを Amazon シンプル ストレージ サービス (Amazon S3)バケット。
  4. AWS Glue クローラーは、S3 バケット上のデータをスキャンし、AWS Glue データ カタログにテーブルのメタデータを入力します。
  5. QuickSight は定期的に実行されます アマゾンアテナ クエリを実行してクエリ結果を SPICE にロードし、最新のメトリクス データを視覚化します。

すべてのリソースはサンプルで定義されています AWSクラウド開発キット (AWS CDK) テンプレート。エンドツーエンドのソリューションを展開して、可観測性メトリクスの傾向を視覚化および分析できます。

サンプル AWS CDK テンプレート

この投稿では、AWS Glue 可観測性メトリクスを使用したダッシュボード用のサンプル AWS CDK テンプレートを提供します。

通常、データ パイプラインのリソースを管理および実行するために複数のアカウントがあります。

このテンプレートでは、次のアカウントを想定しています。

  • モニタリングアカウント – これは、中央の S3 バケット、中央のデータ カタログ、および QuickSight 関連のリソースをホストします。
  • ソースアカウント – これは、AWS Glue 上の個々のデータ パイプライン リソースと、モニタリング アカウントにメトリクスを送信するためのリソースをホストします。

このテンプレートは、モニタリング アカウントとソース アカウントが同じ場合でも機能します。

このサンプル テンプレートは 4 つのスタックで構成されています。

  • Amazon S3 スタック – これにより、S3 バケットがプロビジョニングされます
  • データカタログスタック – これにより、AWS Glue データベース、テーブル、およびクローラーがプロビジョニングされます
  • クイックサイトスタック – これにより、QuickSight データ ソース、データセット、分析がプロビジョニングされます。
  • メトリクス送信者スタック – これにより、CloudWatch メトリクス ストリーム、Firehose 配信ストリーム、および変換用の Lambda 関数がプロビジョニングされます

前提条件

次の前提条件が必要です。

CDK プロジェクトを初期化する

プロジェクトを初期化するには、次の手順を実行します。

  1. クローン CDK テンプレート あなたの職場へ:
    $ git clone git@github.com:aws-samples/aws-glue-cdk-baseline.git 
    
    $ cd aws-glue-cdk-baseline.git

  2. Python を作成する 仮想環境 クライアント マシン上のプロジェクトに固有:
    $ python3 -m venv .venv

このプロジェクトの Python 環境を分離し、ソフトウェアをグローバルにインストールしないために、仮想環境を使用します。

  1. OS に応じて仮想環境をアクティブ化します。
    • MacOS および Linux では、次のコードを使用します。
      $ source .venv/bin/activate

    • Windows プラットフォームでは、次のコードを使用します。
      % .venvScriptsactivate.bat

このステップの後、以降のステップはクライアント マシンの仮想環境の境界内で実行され、必要に応じて AWS アカウントとやり取りします。

  1. で説明されている必要な依存関係をインストールします。 Requirements.txt 仮想環境へ:
    $ pip install -r requirements.txt

  2. 構成ファイルを編集します default-config.yaml 環境に応じて異なります (各アカウント ID を自分のものに置き換えてください)。
    create_s3_stack: false
    create_metrics_sender_stack: false
    create_catalog_stack: false
    create_quicksight_stack: true
    
    s3_bucket_name: glue-observability-demo-dashboard
    
    firehose_log_group_name: /aws/kinesisfirehose/observability-demo-metric-stream
    firehose_lambda_buffer_size_mb: 2
    firehose_lambda_buffer_interval_seconds: 60
    firehose_s3_buffer_size_mb: 128
    firehose_s3_buffer_interval_seconds: 300
    
    glue_database_name: observability_demo_db
    glue_table_name: metric_data
    glue_crawler_name: observability_demo_crawler
    glue_crawler_cron_schedule: "cron(42 * * * ? *)"
    
    athena_workgroup_name: primary

AWS 環境をブートストラップする

次のコマンドを実行して、AWS 環境をブートストラップします。

  1. モニタリング アカウントで、モニタリング アカウント番号、AWS リージョン、モニタリング プロファイルを指定します。
    $ cdk bootstrap aws://<MONITORING-ACCOUNT-NUMBER>/<REGION> --profile <MONITORING-PROFILE> 
    --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess

  2. ソース アカウントで、ソース アカウント番号、リージョン、ソース プロファイルを指定します:x
    $ cdk bootstrap aws://<SOURCE-ACCOUNT-NUMBER>/<REGION> --profile <SOURCE-PROFILE> 
    --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess

すべての環境で XNUMX つのアカウントのみを使用する場合は、cdk bootstrapコマンドを XNUMX 回実行します。

AWS リソースをデプロイする

次のコマンドを実行して、AWS リソースをデプロイします。

  1. モニタリング アカウントを使用して次のコマンドを実行し、AWS CDK テンプレートで定義されたリソースをデプロイします。
    $ cdk deploy '*' --profile <MONITORING-PROFILE>

  2. ソース アカウントを使用して次のコマンドを実行し、AWS CDK テンプレートで定義されたリソースをデプロイします。
    $ cdk deploy MetricSenderStack --profile <SOURCE-PROFILE>

QuickSight 権限の構成

最初は、QuickSight 権限がまだ設定されていないため、AWS CDK テンプレートによって作成されたデータセットや分析を含む新しい QuickSight リソースは表示されません。

データセットと分析を表示するには、次の手順を実行します。

  1. QuickSight コンソールで、ユーザー メニューに移動し、 QuickSightを管理する.
  2. ナビゲーションペインで、 資産を管理する.
  3. アセットを参照する、選択する 分析.
  4. 「GlueObservabilityAnalysis」を検索して選択します。
  5. 選択する シェア.
  6. ユーザーまたはグループ、ユーザーを選択してから、 シェアする(1).
  7. 共有が完了するまで待ってから、 DONE.
  8. ソフトウェア設定ページで、下図のように 資産を管理する ページ、選択 データセット.
  9. observability_demo.metrics_data を検索して選択します。
  10. 選択する シェア.
  11. ユーザーまたはグループ、ユーザーを選択してから、 シェアする(1).
  12. 共有が完了するまで待ってから、 DONE.

デフォルトの QuickSight 分析を調べる

これで、QuickSight 分析とデータセットが表示されるようになりました。 QuickSight コンソールに戻り、以下の GlueObservabilityAnalysis を選択します。 分析。次のスクリーンショットは、ダッシュボードを示しています。

サンプル分析には 2 つのタブがあります。 監視 & 分析。 デフォルトでは、 監視 タブには次のグラフがあります。

  • [信頼性] ジョブ実行エラーの内訳
  • [信頼性] ジョブ実行エラー数 (合計)
  • [パフォーマンス] 歪度ジョブ
  • [パフォーマンス] ジョブごとの歪度ジョブ

  • 【リソース利用率】ワーカー利用率
  • [リソース使用率] ジョブごとのワーカー使用率
  • [スループット] BytesRead、RecordsRead、FilesRead、PartitionRead (平均)
  • [スループット] 書き込みバイト数、書き込みレコード数、書き込みファイル数 (平均)

  • [リソース使用率 ディスク利用可能 GB (分)
  • [リソース使用率の最大ディスク使用率 % (最大)

  • [ドライバー OOM] OOM エラー数
  • [ドライバー OOM] 使用された最大ヒープ メモリ % (最大)
  • [実行者 OOM] OOM エラー数
  • [Executor OOM] 使用された最大ヒープ メモリ % (最大)

デフォルトでは、 分析 タブには次のような洞察があります。

  • 最下位の従業員の活用率
  • 上位ランクの歪度ジョブ

  • 従業員の稼働率の予測
  • トップムーバー readBytes

要件に基づいて可観測性メトリクスを使用して、新しいグラフ チャートや分析情報を追加できます。

QuickSight ダッシュボードを公開する

分析の準備ができたら、次の手順を実行してダッシュボードを公開します。

  1. 選択する 出版.
  2. 選択 新しいダッシュボードを、入力して GlueObservabilityDashboard.
  3. 選択する ダッシュボードを公開する.

その後、ダッシュボードを表示および共有できます。

AWS Glue ジョブの可観測性メトリクスを視覚化して分析する

ダッシュボードを使用して、AWS Glue の使用のパフォーマンスを向上させましょう。

こちらを見てみましょう ジョブごとの歪度ジョブ ビジュアライゼーションでは、1 年 2023 月 9.53 日にスパイクがありました。ジョブのマルチステージ デモの歪度メトリクスは XNUMX を示し、これは他のメトリクスよりも大幅に高かったです。

詳細を掘り下げてみましょう。選んでいいですよ コントロール、日時、リージョン、AWS アカウント ID、AWS Glue ジョブ名、ジョブ実行 ID、データ ストアのソースとシンクに基づいてフィルター条件を変更します。ここでは、ジョブ名 multistage-demo でフィルタリングしてみましょう。

濾過されたもの ジョブごとの労働者の稼働率 視覚化では 0.5 が示され、その最小値は 0.16 でした。リソースの利用には改善の余地があるようです。この観察結果から、このジョブの自動スケーリングを有効にしてワーカーの使用率を高めることができます。

クリーンアップ

次のコマンドを実行して、AWS リソースをクリーンアップします。

  1. 監視アカウントを使用して次のコマンドを実行し、リソースをクリーンアップします。
    $ cdk destroy '*' --profile <MONITORING-PROFILE>

    ソース アカウントを使用して次のコマンドを実行し、リソースをクリーンアップします。

    $ cdk destroy MetricSenderStack --profile <SOURCE-PROFILE>

考慮事項

QuickSight 統合は、分析と柔軟性の向上を目的として設計されています。任意のフィールドに基づいてメトリクスを集計できます。一度に多くのジョブを処理する場合、QuickSight の分析情報は問題のあるジョブを特定するのに役立ちます。

QuickSight の統合は、環境内でより多くのリソースを使用して実現されます。モニタリング アカウントには、AWS Glue データベース、テーブル、クローラー、S3 バケット、および QuickSight でメトリクスを視覚化するための Athena クエリを実行する機能が必要です。各ソース アカウントには、XNUMX つのメトリック ストリームと XNUMX つの Firehose 配信ストリームが必要です。これには追加コストが発生する可能性があります。

必要なリソースはすべて AWS CDK でテンプレート化されています。

まとめ

この投稿では、CloudWatch メトリクス ストリームと SPICE を使用して、QuickSight で AWS Glue ジョブの可観測性メトリクスを視覚化および分析する方法を検討しました。新しい可観測性メトリクスをインタラクティブな QuickSight ダッシュボードに接続することで、日次、週次、月次のパターンを明らかにして、AWS Glue ジョブの使用を最適化できます。 QuickSight の豊富な視覚化機能を使用すると、ワーカーの使用率、エラー カテゴリ、スループットなどのメトリクスの傾向を分析できます。メトリクスを集計し、ジョブ名などのさまざまな次元でデータをスライスすると、より深い洞察が得られます。

サンプル ダッシュボードには、時間の経過に伴うメトリクス、上位のエラー、および比較ジョブ分析が表示されました。これらの視覚化とレポートは、組織全体のチームと安全に共有できます。 AWS Glue 可観測性メトリクスに関するデータ主導の洞察を使用すると、パフォーマンスのボトルネックや一般的なエラーなどについてより深い洞察を得ることができます。


著者について

関山典隆 AWS Glue チームのプリンシパル ビッグ データ アーキテクトです。 彼は、顧客を支援するソフトウェア アーティファクトの構築を担当しています。 余暇には、新しいロードバイクでサイクリングを楽​​しんでいます。

リュウ・チューハンリュウ・チューハン は、AW​​S Glue チームのソフトウェア開発エンジニアです。 彼は、ビッグ データの処理、分析、管理のためのスケーラブルな分散システムの構築に情熱を注いでいます。 余暇には、彼はテニスを楽しんでいます。

シャオラン・ユー は、AW​​S Glue チームのソフトウェア開発エンジニアです。彼は、顧客を支援するための AWS Glue の新機能の構築に取り組んでいます。仕事以外では、Xiaorun はベイエリアの新しい場所を探索することを楽しんでいます。

ショーン・マー は、AW​​S Glue チームのプリンシパルプロダクトマネージャーです。彼には、ユーザーにデータの力を解き放つエンタープライズ製品を革新し、提供してきた 18 年以上の実績があります。仕事以外では、ショーンはスキューバ ダイビングと大学フットボールを楽しんでいます。

モヒトサクセナ は、AW​​S Glue チームのシニア ソフトウェア開発マネージャーです。 彼のチームは、インタラクティブで使いやすいインターフェイスを備えた顧客が、Amazon S3 上のデータレイク、クラウド上のデータベース、データ ウェアハウス全体でペタバイト規模のデータを効率的に管理し、シームレスに変換できるようにする分散システムの構築に重点を置いています。

スポット画像

最新のインテリジェンス

スポット画像