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
OpenCensus with Datadog APM
Search
Atsushi Tanaka
June 27, 2019
Technology
2.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
OpenCensus with Datadog APM
Atsushi Tanaka
June 27, 2019
More Decks by Atsushi Tanaka
See All by Atsushi Tanaka
OpenCensusと歩んだ7年間
bgpat
0
680
SREだけど社内営業組織の業務改善をしてみた
bgpat
0
880
ウォンテッドリーにおける Platform Engineering
bgpat
0
810
Wantedly での Datadog 活用事例
bgpat
2
6.3k
KubernetesでDatadogを飼うならオートディスカバリーを使わないと損
bgpat
2
1.1k
マイクロサービス基盤にフルマネージドサービスではなくKubernetesを選択する理由
bgpat
12
4.6k
400万ユーザーに価値を届けるエンジニアを を支えるインフラ基盤
bgpat
3
550
Ruby製社内ツールのGo移行
bgpat
2
870
導入から5年が経って見えた Datadog APM 運用の課題
bgpat
4
1.5k
Other Decks in Technology
See All in Technology
現場との対話から始める “作る前に問い直す”業務改善
mochico50
2
240
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
380
GoでCコンパイラを作った話
repunit
0
150
Amplify Gen2でbackend.tsにCDKを定義する/しない事によるCDKの挙動の違いとユースケース
smt7174
1
500
[Droidcon Orlando '26] The Android Lens: Applying Mobile Forensics to AI Performance
amanda_hinchman
1
110
AI時代の開発生産性を捉え直す — 経営と現場をつなぐ「開発組織のオブザーバビリティ」— / AI Dev Ex Conference 2026
tkyowa
1
1.4k
変更し続けられるシステムをどう保つか — AI時代のSSoTという設計原則
kawauso
1
1.1k
AI工学特論: MLOps・継続的評価
asei
7
1.4k
Vポイント分析基盤におけるデータモデリング20年史
taromatsui_cccmkhd
4
740
Power Automateアップデート情報
miyakemito
0
120
PHPで作って学ぶリアルタイム音声対話AIとWebSocket入門 by ムナカタ
munakata
0
140
そのドキュメント、自動化しませんか?
yuksew
1
420
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
380
Testing 201, or: Great Expectations
jmmastey
46
8.2k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
420
Typedesign – Prime Four
hannesfritz
42
3.1k
Designing for Timeless Needs
cassininazir
1
400
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Scaling GitHub
holman
464
140k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
WENDY [Excerpt]
tessaabrams
11
38k
Transcript
OpenCensus with Datadog APM OpenCensus/OpenTelemetry meetup vol.2 LT 27.Jul.2019 -
Atsushi Tanaka @bgpat ©2019 Wantedly, Inc.
©2018 Wantedly, Inc. @bgpat / Atsushi Tanaka Infrastructure Engineer at
Wantedly, Inc.
©2018 Wantedly, Inc. %BUBEPH"1. αʔϏε͝ͱʹ৭͚͞Εͯ៉ྷ ݸʑͷεύϯΛݟͳͯ͘ ͳΜͱͳ͘શମΛѲͰ͖Δ
©2018 Wantedly, Inc. %BUBEPH"1. Τϥʔ͕৭͚͞ΕΔͷͰ Ͳ͕͜ѱ͍ͷ͔Θ͔Γ͍͢
©2018 Wantedly, Inc. 0QFO$FOTVT͔ΒૹΓ͍ͨ w(PIUUQTHJUIVCDPN%BUB%PHPQFODFOTVTHPFYQPSUFSEBUBEPH w3VCZIUUQTHJUIVCDPNNVOJTZTUFNPQFODFOTVTEBUBEPH w&SMBOHIUUQTHJUIVCDPNPQFODFOTVTCFBNPQFODFOTVT@EBUBEPH
0QFO$FOTVT %BUBEPH"1.
©2018 Wantedly, Inc. func main() { exporter, err := datadog.NewExporter(datadog.Options{Service:
"my-app"}) if err != nil { log.Fatal(err) } defer exporter.Stop() trace.RegisterExporter(exporter) // For demoing purposes, always sample. trace.ApplyConfig(trace.Config{ DefaultSampler: trace.AlwaysSample(), }) ctx, span := trace.StartSpan(context.Background(), "/foo") bar(ctx) span.End() } https://github.com/DataDog/opencensus-go-exporter-datadog/blob/master/examples/trace/main.go 0QFO$FOTVT(P%BUBEPHͷ͍ํ
©2018 Wantedly, Inc. func main() { exporter, err := datadog.NewExporter(datadog.Options{Service:
"my-app"}) if err != nil { log.Fatal(err) } defer exporter.Stop() trace.RegisterExporter(exporter) // For demoing purposes, always sample. trace.ApplyConfig(trace.Config{ DefaultSampler: trace.AlwaysSample(), }) ctx, span := trace.StartSpan(context.Background(), "/foo") bar(ctx) span.End() } https://github.com/DataDog/opencensus-go-exporter-datadog/blob/master/examples/trace/main.go FYQPSUFSͷॳظԽ 0QFO$FOTVT(P%BUBEPHͷ͍ํ
©2018 Wantedly, Inc. func main() { exporter, err := datadog.NewExporter(datadog.Options{Service:
"my-app"}) if err != nil { log.Fatal(err) } defer exporter.Stop() trace.RegisterExporter(exporter) // For demoing purposes, always sample. trace.ApplyConfig(trace.Config{ DefaultSampler: trace.AlwaysSample(), }) ctx, span := trace.StartSpan(context.Background(), "/foo") bar(ctx) span.End() } https://github.com/DataDog/opencensus-go-exporter-datadog/blob/master/examples/trace/main.go ઃఆ͕ඞཁͳͷ4FSWJDF͘Β͍ 0QFO$FOTVT(P%BUBEPHͷ͍ํ
©2018 Wantedly, Inc. func main() { exporter, err := datadog.NewExporter(datadog.Options{Service:
"my-app"}) if err != nil { log.Fatal(err) } defer exporter.Stop() trace.RegisterExporter(exporter) // For demoing purposes, always sample. trace.ApplyConfig(trace.Config{ DefaultSampler: trace.AlwaysSample(), }) ctx, span := trace.StartSpan(context.Background(), "/foo") bar(ctx) span.End() } https://github.com/DataDog/opencensus-go-exporter-datadog/blob/master/examples/trace/main.go USBDFSʹొ TQBOΛ࡞Δͱ%BUBEPHʹૹΒΕΔΑ͏ʹͳΔ 0QFO$FOTVT(P%BUBEPHͷ͍ํ
©2018 Wantedly, Inc. func main() { exporter, err := datadog.NewExporter(datadog.Options{Service:
"my-app"}) if err != nil { log.Fatal(err) } defer exporter.Stop() trace.RegisterExporter(exporter) // For demoing purposes, always sample. trace.ApplyConfig(trace.Config{ DefaultSampler: trace.AlwaysSample(), }) ctx, span := trace.StartSpan(context.Background(), "/foo") bar(ctx) span.End() } https://github.com/DataDog/opencensus-go-exporter-datadog/blob/master/examples/trace/main.go 0QFO$FOTVTͰαϯϓϦϯά͠ͳ͍ %BUBEPHଆͰαϯϓϦϯά͢Δ 0QFO$FOTVT(P%BUBEPHͷ͍ํ
©2018 Wantedly, Inc. 0QFO$FOTVT(P%BUBEPHͷ͍ํ func main() { exporter, err :=
datadog.NewExporter(datadog.Options{Service: "my-app"}) if err != nil { log.Fatal(err) } defer exporter.Stop() trace.RegisterExporter(exporter) // For demoing purposes, always sample. trace.ApplyConfig(trace.Config{ DefaultSampler: trace.AlwaysSample(), }) ctx, span := trace.StartSpan(context.Background(), "/foo") bar(ctx) span.End() } https://github.com/DataDog/opencensus-go-exporter-datadog/blob/master/examples/trace/main.go
©2018 Wantedly, Inc. %BUBEPHͰαϯϓϦϯά͢Δཧ༝ 1.τϨʔεͷܽଛΛආ͚Δ DatadogউखʹαϯϓϦϯά͢ΔͷͰ σʔλ͕ফ͍͑ͯΔ͜ͱ͕͋Δ 2.ਖ਼֬ͳ౷ܭใΛऔΔ APMʹτϨʔε͔ΒऔΕΔ౷ܭใͷUI͋Δ ຊདྷΑΓτϨʔε͕গͳ͘ͳΔͷͰ౷ܭมΘΔ
4BNQMJOH$POGJHVSBUJPO
©2018 Wantedly, Inc. BUUSJCVUF UBH Λઃఆ͢Δͱ6*ʹద༻ͯ͘͠ΕΔ https://godoc.org/gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext ʹattributeҰཡ͕͋Δ ៉ྷʹݟͤΔͨΊʹ •
env • service.name • span.type • http.method • http.url • http.status_code • sql.query • error.type • error.name • error.stack
©2018 Wantedly, Inc. BUUSJCVUF UBH Λઃఆ͢Δͱ6*ʹద༻ͯ͘͠ΕΔ https://godoc.org/gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext ʹattributeҰཡ͕͋Δ • env
• service.name • span.type • http.method • http.url • http.status_code • sql.query • error.type • error.name • error.stack ៉ྷʹݟͤΔͨΊʹ
©2018 Wantedly, Inc. BUUSJCVUF UBH Λઃఆ͢Δͱ6*ʹө͞ΕΔ https://godoc.org/gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext ʹattributeҰཡ͕͋Δ • env
• service.name • span.type • http.method • http.url • http.status_code • sql.query • error.type • error.name • error.stack ៉ྷʹݟͤΔͨΊʹ
©2018 Wantedly, Inc. BUUSJCVUF UBH Λઃఆ͢Δͱ6*ʹద༻ͯ͘͠ΕΔ https://godoc.org/gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext ʹattributeҰཡ͕͋Δ • env
• service.name • span.type • http.method • http.url • http.status_code • sql.query • error.type • error.name • error.stack ៉ྷʹݟͤΔͨΊʹ
©2018 Wantedly, Inc. BUUSJCVUF UBH Λઃఆ͢Δͱ6*ʹద༻ͯ͘͠ΕΔ https://godoc.org/gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext ʹattributeҰཡ͕͋Δ • env
• service.name • span.type • http.method • http.url • http.status_code • sql.query • error.type • error.name • error.stack https://docs.datadoghq.com/tracing/visualization/trace/#traces-special-meaning-tags ៉ྷʹݟͤΔͨΊʹ
©2018 Wantedly, Inc. BUUSJCVUF UBH Λઃఆ͢Δͱ6*ʹద༻ͯ͘͠ΕΔ https://godoc.org/gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext ʹattributeҰཡ͕͋Δ • span.name
៉ྷʹݟͤΔͨΊʹ
©2018 Wantedly, Inc. ࠷্Ґεύϯʹಉ͡3FTPVSDF/BNFΛ͚Δඞཁ͕͋Δ w %BUBEPHͰεύϯ໊3FTPVSDF/BNF w ݹ͍࣮ͩͱ3FTPVSDF/BNF͕όϥόϥͰ6*͕յΕΔ w ࠓσϑΥϧτͰPQFODFOTVT͕ࢦఆ͞ΕΔ
w εύϯ໊ʹ࿈ಈ͍ͯͯͯ͢͠PQFODFOTVTʹͳΔ w ʮεύϯ໊Λม͍͑ͨਓTQBOOBNFBUUSJCVUFΛͬͯͶʯ ៉ྷʹݟͤΔͨΊʹ
©2018 Wantedly, Inc. w (PͰ ͏ͷ؆୯ wαϯϓϦϯά%BUBEPHʹͤΔ wڥʹ͋ΘͤͯBUUSJCVUFΛઃఆ͢Δ ·ͱΊ
.JDSPTFSWJDFT.POEBZ ຖि݄༵ʹϚΠΫϩαʔϏεʹ͍ͭͯ ΏΔ͘͢ձΛ͍ͯ͠·͢ IUUQTXXXXBOUFEMZDPNQSPKFDUT ©2019 Wantedly, Inc.