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
dd-trace-goのtrace context propagation実装
Search
takato fukui
November 20, 2024
560
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
dd-trace-goのtrace context propagation実装
GoのDatadog クライアントライブラリ DataDog/dd-trace-go のAPM機能が、どのように分散アプリケーション間でのspan紐付けを実装してるかについて
takato fukui
November 20, 2024
More Decks by takato fukui
See All by takato fukui
関数の挙動書き換える
takatofukui
4
870
機関室の灯りは消えない
takatofukui
0
47
エンジニアリングの良い塩梅🧂🌸
takatofukui
0
74
ソフトウェアテスト
takatofukui
0
88
なぜコードを書いてはいけないか
takatofukui
0
150
リファクタリング
takatofukui
0
150
本番分析データベースを丸ごと削除した人の顔
takatofukui
0
130
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
4
320
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
400
Thoughts on Productivity
jonyablonski
76
5.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
290
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
200
4 Signs Your Business is Dying
shpigford
187
22k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
240
Ethics towards AI in product and experience design
skipperchong
2
310
Transcript
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. dd-trace-goの trace context propagation実装 Japan Datadog User Group Meetup#6 2024/11/20 Retty株式会社 福井 崇人/ソフトウェアエンジニア
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. サービス紹介 2
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. DataDog/dd-trace-go APM含むGoのDatadog クライアントライブラリ https://github.com/DataDog/dd-trace-go 以降ではv1.69.1, デフォルト設定を前提とする 3
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. trace context propagationとは トレース情報を分散アプリケーションのある部分から別の部分 に渡すメカニズム 4
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. trace context propagationをどう実現してるか 子spanを作るために必要な情報であるSpanContextを HTTPの場合はヘッダーに載せる gRPCの場合はMetadataに載せる (dd-trace-go.v1/contrib/google.golang.org/grpcの場 合) 5
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. 概念図/HTTP 6 Propagator HTTPHeadersCarrier Set ForeachKey http.Header spanContext traceId: XXX … x-datadog-trace-id: XXX … http.Header x-datadog-trace-id: YYY … spanContext traceId: YYY … Inject Extract
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. 概念図/gRPC 7 Propagator MDCarrier Set ForeachKey metadata.MD spanContext traceId: XXX … x-datadog-trace-id: XXX … metadata.MD x-datadog-trace-id: YYY … spanContext traceId: YYY … Inject Extract
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. Carrierとは SpanContextを保持する HTTPの場合のheader, gRPCの場合のMetadata 8
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. Carrierとは 9 https://github.com/DataDog/dd-trace-go/blob/v1.69.1/d dtrace/tracer/textmap.go
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. Propagatorとは SpanContextをCarrierにInjectしたり、Carrierから SpanContextにExtractするInterface 10 https://github.com/DataDog/dd-trace-go/blob/v1.69.1/ddtrace/tracer/propagator.go
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. 実際にHTTPヘッダーに載せてるコード 11 https://github.com/DataDog/dd-trace-go/blob/v1.69.1/ddtrace/tracer/textmap.go “x-datadog-trace-id” “x-datadog-parent-id” HTTPHeadersCarrier
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. 実際にHTTPヘッダーから抽出してるコード 12 https://github.com/DataDogdd/-trace-go/blob/v1.69.1/ddtrace/tracer/textmap.go “x-datadog-parent-id” HTTPHeadersCarrier
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. trace context propagationの流れ 13 server1 HTTP client(dd-trace-go.v1/contrib/net/http) span SpanContext HTTPHeadersCarrier Propagator.Inject http.Header server2 HTTP server(dd-trace-go.v1/contrib/net/http) http.Header HTTPHeadersCarrier Propagator.Extract SpanContext span HTTP request
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Copyright ©2024 Retty, Inc. 14 Amazon SQSでもtrace context propagationは可能 (やる意義は別として)
2022.10 2022.10〜 Retty登壇用テンプレート Retty株式会社 名前なまえ Copyright ©2024 Retty,
Inc. Thank you! Copyright ©2024 Retty, Inc. ありがとうございました!