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
0
260
ErrorTrackingとOrchestrion
sugar-cat
February 26, 2025
Tweet
Share
More Decks by sugar-cat
See All by sugar-cat
DiscordとCloudflare
sugarcat7
1
280
Cloudflare Workflowsを使いたい倒したい
sugarcat7
6
1.5k
tslogで実現するセキュアなメタデータ管理とロギング
sugarcat7
4
1.3k
最近個人開発が熱い ~モニタリング強化編v0.1.0~
sugarcat7
3
410
Honoで実現するバックエンド開発のイマ
sugarcat7
23
5.4k
GoとWASI~超入門~
sugarcat7
2
240
最近個人開発が熱い ~多言語対応編~
sugarcat7
2
320
ボイラープレート自動生成ツールを使わなくなった話.pdf
sugarcat7
4
640
Using_Hono_in__B2B_SaaS_Application.pdf
sugarcat7
7
500
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
Designing for humans not robots
tammielis
253
25k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Become a Pro
speakerdeck
PRO
28
5.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.4k
Gamification - CAS2011
davidbonilla
81
5.3k
The Cost Of JavaScript in 2023
addyosmani
51
8.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
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でエラートラッキングも実装できる! まとめ