Databricks モニタリング
概要
Databricks は、データ分析および AI/ML ワークロードを管理するためのプラットフォームです。Databricks on AWS を実行している場合、運用チームは AWS ネイティブのオブザーバビリティサービスを使用して、クラスターのパフォーマンス、ワークロードのエラー、およびリソース使用率を追跡する統合モニタリングソリューションの恩恵を受けることができます。
このエントリでは、Databricks クラスターを Amazon CloudWatch と統合して、集中型のログ収集とメトリクス収集を行う方法を説明します。Databricks の init スクリプトはクラスターの起動時にコレクターをインストールし、各ノードで手動介入なしに構造化ログとカスタムメトリクスの出力を可能にします。
詳細な手順については、How to Monitor Databricks with Amazon CloudWatch を参照してください。
前提条件
- CloudWatch 権限を持つ AWS アカウント
- AWS にデプロイされた Databricks ワークスペース
cloudwatch:PutMetricDataおよびlogs:PutLogEvents権限を持つ IAM インスタンスプロファイル- init スクリプトが有効な Databricks クラスター
- クラスターの Spark 設定で設定されたメトリクス名前空間(
testAppをクラスター参照に置き換えてください)
アーキテクチャ
Databricks クラスターは init スクリプトでインストールされたコレクターを介して CloudWatch にメトリクスとログを出力します
このアーキテクチャでは、Databricks の init スクリプトを使用して、起動時に各クラスターノードに CloudWatch エージェントをインストールします。Spark はドライバーとワーカーからネイティブの Prometheus 形式メトリクスを公開します。CloudWatch エージェントは、これらをシステムレベルのメトリクス(CPU、メモリ、ディスク、ネットワーク)とともに収集し、CloudWatch メトリクスと CloudWatch Logs に転送します。
メトリクス名前空間の Spark 設定
デプロイ
- 以下の権限を持つ IAM インスタンスプロファイルを作成します:
{
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData",
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}
-
インスタンスプロファイルを Databricks クラスター設定にアタッチします。
-
Databricks クラスターの Spark 設定でメトリクス名前空間を設定します:
spark.metrics.namespace <your-cluster-name>