Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ErrorTrackingとOrchestrion
Search
sugar-cat
February 26, 2025
380
0
Share
ErrorTrackingとOrchestrion
sugar-cat
February 26, 2025
More Decks by sugar-cat
See All by sugar-cat
HonoとOpenTelemetryで実現するオブザーバービリティ構築
sugarcat7
0
410
DiscordとCloudflare
sugarcat7
2
940
Cloudflare Workflowsを使いたい倒したい
sugarcat7
8
2.3k
tslogで実現するセキュアなメタデータ管理とロギング
sugarcat7
4
1.6k
最近個人開発が熱い ~モニタリング強化編v0.1.0~
sugarcat7
3
490
Honoで実現するバックエンド開発のイマ
sugarcat7
23
6.3k
GoとWASI~超入門~
sugarcat7
2
300
最近個人開発が熱い ~多言語対応編~
sugarcat7
2
400
ボイラープレート自動生成ツールを使わなくなった話.pdf
sugarcat7
4
750
Featured
See All Featured
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
170
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Google's AI Overviews - The New Search
badams
0
980
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
280
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
270
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
140
A Soul's Torment
seathinner
6
2.7k
Music & Morning Musume
bryan
47
7.2k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
340
Typedesign – Prime Four
hannesfritz
42
3k
Transcript
OrchestrionとErrorTracking Japan Datadog User Group Meetup#7 LT 2025/2/26 @sugar235711
2 sugar cat(@sugar235711) 仕事: SRE(オブザーバビリティ、インフラ構築) 興味: セキュリティ、パフォーマンスチューニング @sugar235711 @sugar-cat7
3 Datadogが提供するGoのコンパイル時計装ツール 2024年末にGA Orchestrionとは
4 Datadogが提供するGoのコンパイル時計装ツール 2024年末にGA Orchestrionとは
5 Datadogが提供するGoのコンパイル時計装ツール 2024年末にGA Orchestrionとは コンパイル時に dd-trace-goで提供されているライブラリによって計装される orchestrion.ymlを見るとtemplateが書いてある
6
7 現状はdd-trace/contrib配下のライブラリ群が大部分対応している Orchestrionとは
8 • //dd:span等のアノテーションによって Tag付け/Custom Spanの生成を行う • 内部はdd-traceによる実装なので USTを使用可能 ◦ DD_SERVICEを指定しない場合は実行バイナリ名がサービス名となる
◦ 基本は自前の手動計装の実装とマージされないので重複してスパンが生成さ れないように注意 (詳しくはOrchestrion.yml) Orchestrion基本的な使い方
9 • DatadogにはAPMを使用したエラートラッキングの機能がある ◦ Spanに対してerror.type/error.message/(error.stack)のAttributeがあると自動 的に利用可能になる (最近RootSpan以外もトラッキングされるようになった ?) ErrorTrackingについて
10 • dd-trace-goのミドルウェア実装で ErrorTrackingに必要なAttributeが付与されな いものがあるので、明示的に RootSpanに対してErrorのAttributeを含める必要が ある(Panicも同様) Goの実装でErrorTracking利用する際の問題点
11 • Orchestionではコールグラフをたどって `net/http`パッケージも自動的に計装され る(そのため、 RootSpanがnet/httpのSpanになってしまう ) ◦ net/http.Server ->
chi.Router -> handler(chiの場合) OrchestrionでErrorTracking利用する際の問題点
12 • Orchestionではコールグラフをたどって `net/http`パッケージも自動的に計装され る(そのため、 RootSpanがnet/httpのSpanになってしまう ) ◦ net/http.Server ->
chi.Router -> handler(chiの場合) OrchestrionでErrorTracking利用する際の問題点 この状態であれば、 net/http.Server, chi.Routerそれぞれのサービスで ErrorTrackingを利用可能
13 • DD_SERVICEを指定すると net/http<->Routerライブラリ間のサービスオーバーラ イドが解除されてしまい、 RootSpanしかErrorTrackingに現れなくなる OrchestrionでErrorTracking利用する際の問題点
14 • DD_SERVICEを指定すると net/http<->Routerライブラリ間のサービスオーバーラ イドが解除されてしまい、 RootSpanしかErrorTrackingに現れなくなる OrchestrionでErrorTracking利用する際の問題点 この状態だと、 net/http.Server, chi.Routerが同一サービスと認識され、
同一サービス内の RootSpan(net/http)のみErrorTrackingで利用可能
15 • 現状の回避策 OrchestrionでErrorTracking利用する際の問題点 サービス名をバイナリ名を動的で指定、 Routerのデフォルトのサービス名 +Base Serviceでエラートラッキング Orchestrion側の対応を待つ ・二重トレースを防ぐために、既にトレースされている
ハンドラータイプを登録する機能を検討してくれている
16 Orchestrionでエラートラッキングも実装できる! まとめ