注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
パイプラインの問題を素早くデバッグし、解決する能力は、パイプライン保守作業の中核をなすものです。これにより、重要な組織のワークフローを供給する本番パイプラインが信頼性があり、意味のあるものであり続けることが保証されます。
このページでは、パイプライン保守担当者として、オンコールローテーション中にヘルスチェックの失敗に関する通知を受け取った際に、標準オペレーティングプロシージャ(SOP)の基本として使用できるフレームワークを提供します。
このページでは、Foundry のさまざまなツールやワークフローに精通していることが前提となっています。関連するセクションでリンクが提供されます。
また、パイプライン保守チームがインシデントログやパイプラインの繰り返し発生する問題に関するその他の文書を記録していることを前提としています。これはベストプラクティスであり、現在そのような文書がない場合は実装する必要があります。
常に以下の 3 つの質問を順番に尋ねてください。
パイプラインのドキュメントを読んでください!おそらく、この問題はすでに解決されているかもしれません。または、緩和中に行ってはいけないことについての警告があるかもしれません。例えば、一部のビルドは非常に費用がかかり、ピーク使用時に環境のパフォーマンスに影響を与える可能性があります。このような詳細は、チーム全体で十分に文書化されるべきです。
問題を緩和しようとした後、パイプライン保守担当者として、根本原因を理解し対処するためにさらに深く理解する必要があります。デバッグ中に問題を分類する理由は、根本原因を特定するのに役立つためであり、最も重要なことは、問題を修正できるかどうか、または別のチームに連絡する必要があるかどうかを素早く判断するのに役立つからです。
問題のカテゴリーは 3 つあります。
上記で強調されている手順の詳細は次のとおりです。
識別: 上記の手順を実行する際に、何が壊れているかを非常に正確に識別することが重要です。次のような質問に答えます。
これにより、上流の問題やプラットフォームの問題に関して必要に応じて他のチームと効果的にコミュニケーションを取り、解決時間を短縮できます。また、プラットフォームでのデバッグスキルも向上します。
アクション:
[オプション] 下流ユーザーへの通信: 問題が分類され、さらに根本原因が特定された後、パイプラインの下流の消費者に通知することが適切な場合があります。これは、問題の影響範囲、対象範囲、期間、およびパイプラインの使用事例によって異なります。
回避策: 別のチームやユーザーからの修正が時間がかかる場合は、健康なパイプラインの部分が下流の消費者に対して引き続き実行されるように、中期的な回避策を実装することが有益です。具体的な一時的な修正は、問題とユーザーのニーズによって異なります。例としては、以下のようなものがあります。
パイプライン保守担当者が直面する最も一般的な問題は、監視対象のパイプライン内で何かが変更されることによる意図しない結果です。また、パイプライン保守担当者として、最も制御が効くカテゴリーであり、他のチームに頼ることなく問題を直接解決できます。
詳しくは、以下の手順を実行します。
パイプライン内で問題が発生している箇所をできるだけ正確に特定します。例えば、スケジュール、データセット、トランザクション、コードの変更などを特定しようとします。
健康な以前の実行と現在の壊れた状態を比較して、何が変更されたかを特定します。 質問のメンタルチェックリストを持っておくと便利です。以下は、質問の例と、答えを見つけるのに役立つツールの例です。
上記の質問に答えるために使用される Foundry のツールに精通していない場合、以下のリストは調査中に使用する最も一般的なパターンの例を提供します。このリストはすべての可能性を網羅しているわけではなく、ガイドとしての役割を果たします。
私のジョブ/ビルドはいつもより遅いですか?
Builds アプリケーション は、特定のデータセットに対するジョブを比較します。ビルドの概要の右上にあるプログレス詳細の切り替えを使用すると、キューイング時間と計算時間によるビルドの進行状況を確認できます。
スケジュールメトリクス では、スケジュールの履歴の実行を表示し、実行を比較するためのメトリクスとグラフを表示できます。
データセットのサイズに変更がありますか? トランスフォームはより多くのデータで実行されていますか?
データセットプレビュー: Foundry のデータセットの履歴と比較タブは、データセットの履歴の概要を提供し、以前のトランザクションと比較してデータセットの変更内容の概要を取得できます。
Contour は、サマリーボード を使用して行番号を比較する歴史的ビューへのアクセスを提供します。また、データが追加/作成された日付を示す列がある場合、行数を日付に対して比較するチャートを作成できます。
Spark の詳細: 任意のジョブで Spark の詳細ボタンをクリックすると(下記参照)、パイプライン内により多くのデータがあるかどうかを示す情報が表示されます。タスクのカウント
メトリックなどです。
パイプライン内のコードが変更されましたか?
コードの変更は、Python や Java など、これをサポートする言語を使用している場合、トランスフォームにインポートされたライブラリで発生することがあります。トランスフォームで変更がない場合は、ライブラリ関数のロジックが変更されたかどうかを確認してみてください。
スケジュールが変更されましたか?
他のジョブ、ビルド、または関連するプラットフォームコンポーネントで同様の症状が見られるかどうかを確認することは、症状に基づいて問題が何であるかわからない場合に有益な調査方法です。
特に、次の質問に答えることを探してください。
Builds アプリケーション を使用して、プラットフォーム全体のジョブ履歴をフィルタリングすることで、上記の質問に答えることができます。
パイプライン保守担当者の仕事の中核をなすのは、パイプラインの問題を素早くデバッグし、解決する能力です。重要な組織のワークフローを供給する本番パイプラインが信頼性があり、意味のあるものであり続けることを確実にするために、このページで説明されているガイドラインに従っても問題が特定できない場合は、Palantir の担当者に連絡してください。