Skip to main content
Weave は、アプリケーションのパフォーマンスへの影響を最小限に抑えるため、バックグラウンドスレッドでトレースデータをアップロードします。ただし、マルチプロセッシングやタスクキューシステム、または Celery などのワーカープロセスを使用している場合、トレースデータが失われることがあります。これは、バックグラウンドスレッドによるトレースのアップロードが完了する前にワーカープロセスが終了すると発生します。 ワーカープロセスでのデータ損失を防ぐには、ワーカータスクが完了する前に client.flush() または client.finish() を呼び出し、バックグラウンドのアップロードを確実に完了させてください。これは、AWS Lambda、Google Cloud Run、実行直後に終了するノートブックなど、短時間で終了する環境で特に有効です。 これらのメソッドは用途が異なるため、環境に合ったものを選択してください。
  • weave.flush(): 出力なしでフラッシュを実行します。Weave をワーカープロセスや継続的インテグレーション (CI) 環境に統合している場合に推奨されます。
  • weave.finish(): プログレスバーまたはステータスコールバックで進捗をフィードバックします。インタラクティブなスクリプトやノートブックに推奨されます。
どちらのメソッドも、すべてのバックグラウンドアップロードが完了するまで処理をブロックします。そのため、ワーカープロセスの終了時にトレースデータが失われることはありません。 次の例では、Celery タスクから client.finish() を呼び出し、ワーカーが処理を返す前にトレースをフラッシュします。[TEAM-NAME] を W&B のチーム名に、[PROJECT-NAME] を W&B のプロジェクト名に置き換えてください。
別の方法として、with コンテキストマネージャーを使用すると、終了時に weave.finish() が自動的に呼び出されます。
weave.flush() を使用して、アプリケーションのパフォーマンスを向上させることもできます。詳細については、フラッシュを参照してください。 データ損失への耐性をさらに高めるには、ライトアヘッドログの有効化を検討してください。ライトアヘッドログを有効にすると、トレースデータはサーバーに送信される前にディスクへ書き込まれます。
トレースデータ パフォーマンス
Last modified on September 30, 2026