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
0
500
dd-trace-goのtrace context propagation実装
GoのDatadog クライアントライブラリ DataDog/dd-trace-go のAPM機能が、どのように分散アプリケーション間でのspan紐付けを実装してるかについて
takato fukui
November 20, 2024
Tweet
Share
More Decks by takato fukui
See All by takato fukui
関数の挙動書き換える
takatofukui
4
810
機関室の灯りは消えない
takatofukui
0
37
エンジニアリングの良い塩梅🧂🌸
takatofukui
0
52
ソフトウェアテスト
takatofukui
0
81
なぜコードを書いてはいけないか
takatofukui
0
130
リファクタリング
takatofukui
0
130
本番分析データベースを丸ごと削除した人の顔
takatofukui
0
120
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
1
1.6k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
The Cult of Friendly URLs
andyhume
79
6.8k
Why Our Code Smells
bkeepers
PRO
340
58k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Speed Design
sergeychernyshev
33
1.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
200
Tell your own story through comics
letsgokoyo
1
810
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
340
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
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. ありがとうございました!