Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Flight recorder at the application layer (NOT t...

Flight recorder at the application layer (NOT the FlightRecoder newly added at Go 1.25) / Fukuoka.go #22

Avatar for Ken’ichiro Oyama

Ken’ichiro Oyama

August 25, 2025
Tweet

More Decks by Ken’ichiro Oyama

Other Decks in Technology

Transcript

  1. Flight recorder at the application layer (NOT the FlightRecoder newly

    added at Go 1.25) ⼩⼭健⼀郎 / Tailor Inc. 2025.8.25 Fukuoka.go #22
  2. • Go 1.25で runtime/trace 追加された機能 ◦ https://pkg.go.dev/runtime/trace#FlightRecorder • トレースデータのサイズや継続的な書き込みコストから従来の実⾏トレースキャプチャでは実⽤的でな かった稀なイベントのデバッグに役にたつ軽量な実⾏トレースキャプチャ。

    • 仕組みとしては実⾏トレースをインメモリのリングバッファに継続的に記録し、重要なイベントが発⽣し た際に、FlightRecorder.WriteTo を呼び出すことで、直近のトレースをファイルに書き出す。 • 直前の、必要なトレースのみをキャプチャできるため、⽣成されるトレースが⼤幅に⼩さくなる。 ◦ 従来の実⾏トレースのように⾼コストではないため、常に有効にしやすい。 • FlightRecorderConfig 内で、キャプチャする期間やデータ量を設定できる runtime/trace.FlightRecorder 2
  3. • goroutine creation/blocking/unblocking (Goroutineの作成/ブロック/ブロック解除) • syscall enter/exit/block (System callの⼊⼒/終了/ブロック) •

    GC-related events (GC 関連イベント) • changes of heap size (ヒープサイズの変更) • processor start/stop (プロセッサの開始/停⽌) • etc. runtime/trace で取得できるトレースデータ 3
  4. • https://github.com/k1LoW/errors • errors + stack staces. • 実装コンセプトは ◦

    Retain the stack traces once stacked as far as possible. ▪ Support for errors.Join. ◦ It is possible to output stack traces in structured data. ◦ Zero dependency k1LoW/errors 7
  5. 12

  6. 14 わたしたちは、"Empower every company to deploy any ideas (誰もがデプロイできる社会を創る)" というミッ

    ションのもと、誰しもがプロダクト開発の担い⼿になることができる社会の実現を⽬指しています。ミッション の実現に向けて、共に挑戦する仲間を募集しています。   https://careers.tailor.tech/ 共に働く仲間を募集しています