システムの疎結合化や重い処理の負荷分散などの目的で、ジョブキューが用いられます。ここで、素朴にキューサービスの前後のアプリケーションにトレースを計装するだけでは、トレースがキューサービスを跨げず途切れてしまうことがあります。
SLI/SLOの設計では、ユーザ体験に即したものであることが重要視されます。ユーザー目線で期待するレイテンシーで操作が行われているかを知るには、キュー内に滞留している時間も含めEnd-to-endで計測できる状態になっている必要があります。
今回は題材としてAmazon SQSを介した非同期処理・バッチ処理を取り挙げ、一連の処理を観測しやすくするOpenTelemetryトレースの計装方法をご紹介します。
- コンテキスト伝播の仕組み
- カスタムプロパゲーターの実装
- トレースのスパンリンクの活用
またこれを発展させ、End-to-endのレイテンシーをメトリックとして計測できるようにする手法も解説します。
ジョブキューやマイクロサービスを含むアーキテクチャにおいて、サービスを跨いだトレーシングやSLI計測に課題があると考える人向けのセッションです。
株式会社はてな
Mackerel開発チーム サブディレクター・テックリード
東京工業大学情報工学科卒業後、2022年4月に株式会社はてなに新卒入社。プロダクトオーナー兼テックリードとして、監視・オブザーバビリティプラットフォームであるMackerelの企画・開発をリードしている。OpenTelemetryの仕様やセマンティック規約の更新、コレクターのアップデートを日々追い続けている。