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
プロダクト専任SREを置かずに 信頼性を追求する
bgpat
1
86
OpenCensusと歩んだ7年間
bgpat
0
710
SREだけど社内営業組織の業務改善をしてみた
bgpat
0
900
ウォンテッドリーにおける Platform Engineering
bgpat
0
830
Wantedly での Datadog 活用事例
bgpat
2
6.4k
KubernetesでDatadogを飼うならオートディスカバリーを使わないと損
bgpat
2
1.1k
マイクロサービス基盤にフルマネージドサービスではなくKubernetesを選択する理由
bgpat
12
4.6k
400万ユーザーに価値を届けるエンジニアを を支えるインフラ基盤
bgpat
3
550
Ruby製社内ツールのGo移行
bgpat
2
870
Other Decks in Technology
See All in Technology
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
740
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
410
強化学習「理論」入門
enakai00
3
3.6k
JavaScript 研修 (2026)
recruitengineers
PRO
2
540
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
110
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
580
20分でわかるセキュアAPI
nwiizo
2
270
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
180
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
13
13k
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
0
300
Genie Codeハンズオン基礎編
taka_aki
1
120
まちスペース®とデジタルツインと「まちづくり」
hiro_ogi
0
120
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
390
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
410
For a Future-Friendly Web
brad_frost
183
10k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.3k
Facilitating Awesome Meetings
lara
57
7.1k
Believing is Seeing
oripsolob
1
190
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
940
Site-Speed That Sticks
csswizardry
13
1.4k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
Prompt Engineering for Job Search
mfonobong
0
400
Designing Powerful Visuals for Engaging Learning
tmiket
1
490
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.