ETL パイプラインとレポートジョブを監視する

データ同期や夜間レポートが失敗したとき、古いダッシュボードがビジネスを誤誘導する前に数分以内に把握する。

問題点

データジョブは静かに、そして高コストで失敗します。ETL 同期がサイレントに停止し、夜間レポートが半分しかロードされていないテーブルに対して実行され、何日間も全員が古いデータで構築されたダッシュボードを信頼し続けます。コストはダウンタイムではありません — 間違った数字に基づいて下された意思決定がコストです。

SteadyCron による解決方法

  1. 1 各パイプラインステージにハートビートチェックを追加し、期待されるリズムに合わせます。
  2. 2 ジョブ開始時に /start を、完了時に /success を ping することで、部分的な実行やハング中の実行が見えるようになります。
  3. 3 オプションで短いペイロード — 行数、ログの末尾 — をアクティビティフィードのコンテキストとして含めます。
  4. 4 見逃しまたは失敗した実行時にデータチームへアラートを送り、連続失敗のしきい値でノイズを削減します。
TOKEN=<your-ping-token>
curl -fsS https://ping.steadycron.com/$TOKEN/start
rows=$(python run_etl.py) \
  && curl -fsS --data "loaded=$rows" https://ping.steadycron.com/$TOKEN \
  || curl -fsS https://ping.steadycron.com/$TOKEN/fail
app.steadycron.com/jobs

Jobs

New job
Search jobs…
All HTTP Heartbeat
Status Group: env
env:prod 5 jobs 1 failing
weekly-digest-email HTTP 0 9 * * 1 in 2 days 3 days ago
nightly-db-backup Heartbeat 0 2 * * * in 19 h 5 h ago
stripe-reconciliation HTTP 0 */4 * * * in 38 min 3 h ago
cache-warmup HTTP */15 * * * * in 11 min now
search-index-sync Heartbeat */30 * * * * in 6 min 24 min ago
env:dev 3 jobs
seed-test-data HTTP 0 4 * * * in 14 h 10 h ago
preview-env-cleanup Heartbeat 0 */6 * * * in 2 h 4 h ago
trial-expiry-sweep HTTP 0 6 * * * yesterday

すべてのジョブのステータス、スケジュール、最終実行 — ひと目でわかる。

ステージごとの可視性

抽出、変換、ロードの各ステージを個別に監視することで、何かが壊れたとき、パイプラインが不健全であるという事実だけでなく、どこで 問題が起きたかがわかります。

日中は静かに、午前3時は大きく

クワイエット時間と連続失敗のしきい値を使い、単発の一時的なエラーで誰もページされないようにしながら、本当にスタックした夜間ロードはきちんと検知されるようにします。

関連ドキュメント

気づいたときには手遅れにならないために

無料プランで始めましょう — クレジットカード不要。

無料で始める