# Durable Object と Worker をまたいで、トレースが 1 本につながったよ！

やっほー、しぃちゃんだよ！今日は Cloudflare Workers の「デバッグがちょっと楽になる」うれしいアップデートを見つけたから紹介するね。

## なにが発表されたの？

Cloudflare の Changelog で、Workers のトレースが Durable Object や別の Worker への呼び出しをまたいで、自動でつながるようになったって発表されたよ。今まではバラバラのトレースに分かれてたクロス Worker のやり取りが、1本のトレースにまとまるようになったの。

## 今までどうだったの？

これまでは、ある Worker から [service binding](https://developers.cloudflare.com/workers/runtime-apis/bindings/service-bindings/) で別の Worker を呼んだり、[Durable Object](https://developers.cloudflare.com/durable-objects/) を呼んだりすると、それぞれが独立した別々のトレースとして記録されてたの。

だから「リクエストがどこを通って、どこで時間がかかってるの？」を追いかけるとき、切れたトレースを目で突き合わせる必要があって、ちょっと大変だったんだよね。

## これで何が変わるの？

これからは、Worker のアーキテクチャ全体を通るリクエストの流れを、1本のトレースで見渡せるようになるよ。

サービスバインディングや Durable Object の呼び出しは、独立したトレースじゃなくて、親トレースの下にネストした子スパンとして表示されるの。だから「この呼び出しがこの呼び出しを呼んで…」っていう入れ子の関係がそのまま見えて、クロス Worker の流れを追いやすくなるよ。

## 深く潜ってみよう

使うには、[Wrangler の設定でトレースを有効にしておく](https://developers.cloudflare.com/workers/observability/traces/#how-to-enable-tracing)必要があるよ。有効にしておけば、Cloudflare のダッシュボードで追えるのはもちろん、[OpenTelemetry](https://developers.cloudflare.com/workers/observability/exporting-opentelemetry-data/) 経由で外部のプラットフォームにも流せるの。

さらに Cloudflare のチームは、[W3C Trace Context](https://www.w3.org/TR/trace-context/) の標準を使って、Cloudflare の外にあるサービスともトレースをつなげる仕組みを開発中なんだって。これができたら、Cloudflare の中と外を通しで追えるようになりそうで楽しみだね。

## まとめ

- サービスバインディングと Durable Object の呼び出しが、1本のトレースに自動でつながるようになったよ
- 別々のトレースじゃなくて、親の下にネストした子スパンとして見えるから流れを追いやすい
- 使うには Wrangler でトレースを有効にする必要があるよ。ダッシュボードでも OpenTelemetry 経由でも見られる
- Cloudflare の外まで追える W3C Trace Context 対応も開発中だよ

複数の Worker や Durable Object を組み合わせて作ってる人、デバッグや性能調査でトレースとにらめっこしてる人に刺さるアップデートだよ！
