Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
dd-trace-goのtrace context propagation実装
Search
takato fukui
November 20, 2024
600
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
900
機関室の灯りは消えない
takatofukui
0
59
エンジニアリングの良い塩梅🧂🌸
takatofukui
0
85
ソフトウェアテスト
takatofukui
0
97
なぜコードを書いてはいけないか
takatofukui
0
160
リファクタリング
takatofukui
0
150
本番分析データベースを丸ごと削除した人の顔
takatofukui
0
130
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Spectacular Lies of Maps
axbom
PRO
1
1k
Google's AI Overviews - The New Search
badams
0
1.6k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
830
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
600
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
The Language of Interfaces
destraynor
162
27k
Unsuck your backbone
ammeep
672
58k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
940
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. ありがとうございました!