Spark メトリクス
Spark メトリクスは、 Grafana で利用できるデフォルトのホームで、以下に説明する標準的なメトリクスを示します。 カスタムメトリクスは、 Spark アキュムレーターを使用して有効化できます。
Spark アキュムレータ
Spark では、アキュムレーターを使用してカスタム数値メトリクスを作成できます。 Apache Spark を使用したバッチパイプラインでは、数値アキュムレーターのタイプがサポートされています。 これらのアキュムレータが作成されると、 Grafana がクエリーを実行してダッシュボードに追加できる名前付きメトリクスとして利用できるようになります。 一般的 spark_accumulators_
に、メトリック名の先頭には語句が付きます。
アキュムレーターの使用について詳しく は、カスタムメトリクスおよび Spark アキュムレーターのドキュメントを参照してください。
パイプラインの Spark メトリクス
メートル法 | 説明 |
driver_DAGScheduler_job_allJobs | パイプラインジョブの数 |
driver_DAGScheduler_job_activeJobs | 実行中のパイプラインジョブの数 |
executor_threadpool_activeTasks | 実行中のジョブあたりの作業者数 |
executor_threadpool_completeTasks | 実行中のジョブごとに完了した Spark タスクの数 |
driver_DAGScheduler_job_allJobs | パイプラインジョブあたりの Spark ジョブ数 |
driver_DAGScheduler_stage_failedStages | パイプラインジョブごとの失敗したステージの数 |
driver_accumulators_.* | アキュムレーターの値 |
パイプラインの追加の Spark メトリクス
次のメトリクスは、既定のホームには表示されませんが、カスタムダッシュボードで使用できます。
コンテナメトリクス
メートル法 | 単位 | 説明 |
container_cpu_usage_seconds_total | 秒 | コンテナ使用済み合計 CPU |
container_memory_working_set_bytes | バイト数 | 使用されているコンテナメモリ |
Spark ドライバーメトリクス
メートル法 | 単位 | 説明 |
driver_jvm_total_committed | バイト数 | ドライバの JVM で使用できるメモリ。 |
driver_jvm_total_init | バイト数 | ドライバの初期化時に JVM が使用できるメモリ量。 |
driver_jvm_total_max | バイト数 | ドライバの JVM で使用できるメモリの最大量。 |
driver_jvm_total_used | バイト数 | ドライバが現在使用しているメモリの量。 |
driver_jvm_heap_used | バイト数 | ドライバが現在使用しているメモリの量。 |
driver_jvm_non_heap_used | バイト数 | 現在ドライバーが使用している非ヒープメモリの量。 |
Spark 実行者メトリクス
メートル法 | 単位 | 説明 |
executor_threadpool_activeTasks | カウント | アクティブな実行タスクの数 |
executor_threadpool_completeTasks | カウント | 完了した実行タスクの数 |
jvm_G1_Young_Generation_time | 秒 | G1 世代のガーベッジコレクション時間 |
jvm_G1_Old_Generation_time | 秒 | G1 古い世代のガーベッジコレクション時間 |
jvm_G1_Young_Generation_count | カウント | G1 世代のガベージコレクションのカウント |
jvm_G1_Old_Generation_count | カウント | G1 古い世代のガベージコレクションの数 |
jvm_heap_usage | バイト数 | 実行者が現在使用しているメモリ量。 |
jvm_non_heap_usage | バイト数 | 実行者が現在使用している非ヒープメモリの量。 |
パイプラインメトリクスのフィルタリング
次の Prometheus フィルタを使用して、パイプラインのメトリクスをフィルタリングできます。
フィルタ条件 | キーを押します | 例 |
パイプライン ID | PieLineId | PipeLineId="00112233-4455-667-8899-aabbccddeeff" |
ジョブ ID | 配布 ID | DeploymentId="00112233-4455-667-8899-aabbccddeeff" |
ポッド名 | pod_name="job--worker-" | pod_name="job-00112233-4455-667-8899-aabbccddeeeff-worker-0" |
実行者 ID | 実行者 ID | executorId="0" |
たとえば、特定のパイプライン ID およびジョブ ID のすべての実行者の G1 若い世代のガベージコレクションを取得するには、次のフィルタを使用します。
jvm_G1_Young_Generation_time{DeploymentId="ffeeddcc-bbaa-9988-7766-554433221100",PipeLineId="00112233-4455-6677-8899-aabbccddeeff"}
ノートブックの Spark メトリクス
メートル法 | 説明 |
実行者あたりの平均メモリ | エグゼキューターおよび Spark ドライバーごとの平均メモリー |
すべてのユニットの Spark メモリ使用量の平均値と合計 | エグゼキューターおよびドライバーごとの平均メモリの合計。 クラスタのすべてのメモリも集約します |
アクティブなコア | アクティブなコアの数 |
ステージ | 実行中、保留中、失敗などのステージ |
すべての実行者によるタスク | 実行者、アクティブ、プール別のタスク。 これは、アクティブで利用可能なコアを監視するもう 1 つの方法です |
メッセージ処理時間 | 平均メッセージ処理時間 |
各実行者が完了したタスク | 実行者およびカウンタによって完了したタスク |
ファイルシステムは、実行者によって読み取り / 書き込みを行います | ファイルシステムの読み取りおよび書き込みがバイト単位で行われます ( ファイルシステムがジョブ内でのみ使用されている場合 ) |