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
360
ErrorTrackingとOrchestrion
sugar-cat
February 26, 2025
Tweet
Share
More Decks by sugar-cat
See All by sugar-cat
HonoとOpenTelemetryで実現するオブザーバービリティ構築
sugarcat7
0
350
DiscordとCloudflare
sugarcat7
2
740
Cloudflare Workflowsを使いたい倒したい
sugarcat7
8
2.2k
tslogで実現するセキュアなメタデータ管理とロギング
sugarcat7
4
1.5k
最近個人開発が熱い ~モニタリング強化編v0.1.0~
sugarcat7
3
490
Honoで実現するバックエンド開発のイマ
sugarcat7
23
6.2k
GoとWASI~超入門~
sugarcat7
2
290
最近個人開発が熱い ~多言語対応編~
sugarcat7
2
390
ボイラープレート自動生成ツールを使わなくなった話.pdf
sugarcat7
4
730
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
96
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
93
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
110
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
ラッコキーワード サービス紹介資料
rakko
1
2.5M
Into the Great Unknown - MozCon
thekraken
40
2.3k
Prompt Engineering for Job Search
mfonobong
0
180
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
We Have a Design System, Now What?
morganepeng
55
8k
Are puppies a ranking factor?
jonoalderson
1
3.1k
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でエラートラッキングも実装できる! まとめ