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
re:Growth 2016 サンプルコードで理解する X-Rayの使い方
Search
sutetotanuki
December 13, 2016
1.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
re:Growth 2016 サンプルコードで理解する X-Rayの使い方
re:Growth 2016 発表資料
sutetotanuki
December 13, 2016
More Decks by sutetotanuki
See All by sutetotanuki
数案件を同時に進行するためのコンテキスト整理術
sutetotanuki
2
430
高速開発のためのコード整理術
sutetotanuki
1
1k
Next.js 16の新機能 Cache Components について
sutetotanuki
0
650
Vercel AI SDK を使って Next.js で AIアプリケーションを 作成する方法のご紹介
sutetotanuki
0
1.9k
WEBエンジニア向けAI活用入門
sutetotanuki
0
1.1k
ブラウザ上で実行され、 AIアシスタント付きデータベース postgres.new を触ってみた
sutetotanuki
0
570
今時のCookie事情
sutetotanuki
0
750
高速案件立ち上げで使われるマッハテンプレートのフロントエンド技術選定
sutetotanuki
2
2.1k
Core Web Vitals を改善する Next.js の機能群
sutetotanuki
1
2.7k
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
620
The Limits of Empathy - UXLibs8
cassininazir
1
570
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
310
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Balancing Empowerment & Direction
lara
6
1.2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
230
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Prompt Engineering for Job Search
mfonobong
0
390
Transcript
αϯϓϧίʔυͰཧղ͢Δ 93BZͷ͍ํ SF(SPXUI04","DNEFWJP
ࣗݾհ ϞόΠϧόοΫΤϯυॴଐ ࠓ݄ೖࣾ େࡕࣄॴͰ།ҰͷϞόΠϧΞϓϦαʔϏε෦ 3BJMTͱ͔/PEFͱ͔ͬͯ"1*࡞ͬͯ·͢ ˞"84ඞࢮʹษڧதɺ·͔͞ΓܰΊͷͭͰʂ
̍ͭͷϦΫΤετΛτϨʔε͢Δ͜ͱʹ ϑΥʔΧεͨ͠αʔϏεͰ͢ 93BZͱʁ
ศརͳαʔϏεϛυϧΣΞ͕؆୯ʹͭ ͔͑ΔΑ͏ʹͳΓɺߴػೳ͔ͭߴτϥϑΟο Ϋʹ͑ΕΔΞϓϦέʔγϣϯΛखؒΛ͔ ͚ͣʹ࡞ΕΔΑ͏ʹͳ͖ͬͯ·ͨ͠ɻ എܠ
-".1࣌ ཁૉ͔̏ͭ̐ͭ ݟΔϩάͦͷ͘Β͍
4/4 424 -BNCEB %ZOBNP%# 3%4 4 ࠓ ,JOFTJT
·ͨϚΠΫϩαʔϏεͷΑ͏ʹখ͞ͳΞϓ ϦέʔγϣϯΛ࡞ΓͦͷΈ߹ΘͤͰγε ςϜΛߏ͢Δ͜ͱ͕૿͖͑ͯ·ͨ͠ɻ എܠ
ͦͷԸܙͱͯ͠ɺίϯϙʔωϯτԽ͕ਐΈ ίʔυͦͷͷͷෳࡶੑ͕ܰݮ͞Ε͍ͯ͘ Ұํɺ֤ཁૉײͷؔੑෳࡶʹͳ͍ͬͯ ͖ɺੲͳΒ؆୯ʹͰ͖ͨͭͷϦΫΤετ ΛτϨʔε͢Δͷ͕ͱͯ͘͠ͳ͖ͬͯ ͍ͯ·͢ എܠ
ϞϊϦγοΫ 8&# ͭͷϦΫΤετΛ୯ҰͷΞϓϦέʔγϣϯ͕ॲཧ
ϚΠΫϩαʔϏε 'SPOU "1* 1PJOU "1* "VUI "1* 4FUUMFNFOU "1* ͭͷϦΫΤετΛෳͷ"1*͕ॲཧ͢Δ
ཁૉͷ͕૿͑ɺͦͷؔੑ͕ෳࡶʹͳΕ ͳΔ΄ͲɺΤϥʔൃੜՕॴɺϘτϧωο Ϋͷݕग़͕͘͠ͳ͍͖ͬͯ·͢ എܠ
ϩάࠈ
93BZ
93BZΛ༻͢Δ͜ͱͰϦΫΤετΛτ ϥοΩϯά͢ΔखؒΛܰݮͤ͞Δ͜ͱ͕Ͱ ͖·͢
93BZαϯϓϧ /PEF ͷ༰Λݟ͍͖ͯ·͢
αʔϏεϚοϓ &$ %ZOBNP%# 4/4
None
Τϥʔ͕ൃੜ͍ͯ͠Δ͜ͱ͕ αʔϏεϚοϓ্ͰΘ͔Γ·͢
None
&$͔Βฦ͍ͯͯ͠ %ZOBNP%#͔Βͷ͕ݪҼ
&YDFQUJPOͷ༰͕ΈΕΔ
ϘτϧωοΫΛ୳͢ "1*͕ϨεϙϯεΛฦ͢·Ͱʹ͔͔ͬͨ࣌ؒͱ ͦͷ༁͕ΈΕΔ
IUUQNFUIPE(&5 IUUQVSM#&(*/8*5)IUUQT TFSWJDF YYYFYBNQMFDPN SFTQPOTFUJNF ΫΤϦ
άϧʔϐϯά
͑Δύϥϝʔλʔ
ݱࡏ͑ΔϦʔδϣϯ ࠓͰશϦʔδϣϯͰͨΊͤ·͢ʂ
ݱࡏ͑Δݴޠ /PEFKT +BWB $ ˞ 3VCZ·ͩ͋Γ·ͤΜʢྦ
ݱࡏ͑Δ ϑϨʔϜϫʔΫ &YQSFTT /PEF 5PNDBU +BWB 4QSJOH#PPU +BWB
$ /&5 ˞ +BWBͱ/PEFࣗͰ͔͚ରԠͰ͖Δ
τϥοΩϯάͰ͖Δ αʔϏε &$ &$4 &MBTUJD#FBOTUBML .Z42-ɺ1PTUHSF42- 3%4ɺ"VSPSB %ZOBNP%# 424
4/4
αϯϓϧίʔυͰݟΔ τϥοΩϯάͷࠐΈํ
// SDKをWrapするメソッドを呼び var ddb = XRay.captureAWSClient(new AWS.DynamoDB()); // 後は普通にSDKとして使うだけ ddb.putItem({
'TableName': ddbTable, // ~~~~~ 略 "844%,
// ミドルウェアとして登録 app.use(XRay.express.openSegment()); // 処理を書いて app.get('/', function(req, res) { });
// ミドルウェアとして登録 app.use(XRay.express.closeSegment()); &YQSFTT
// 処理中のセグメントを取得 var seg = XRay.getSegment(); // アノテーションを追加 seg.addAnnotation('theme', req.body.theme);
"OOPUBUJPO
XRay.captureAsync('Page Render', function(seg) { res.render('index', { static_path: 'static', theme: process.env.THEME
|| 'flatly', flask_debug: process.env.FLASK_DEBUG || 'false' }); seg.close(); }); $BQUVSF ҙͷॲཧΛΩϟϓνϟ͢Δ͜ͱͰ͖·͢
Processor: # Number of go routines used to push segments
to AWS X-Ray service Routines: 8 খωλ ˞ ίϯϑΟάΈΔͱ93BZσʔϞϯ (PMBOHͰͰ͖ͯΔͬΆ͍
ݒ೦ /FX3FMJDͱҧͬͯίʔυΛॻ͖ ͑Δඞཁ͕͋Δ ηάϝϯτ ϝτϦΫε Λ͋ΔఔϑΟ ϧλϦϯάͯ͠อଘ͢Δ͕͕݅·ͩෆ ໌֬ 3VCZ͕·ͩͳ͍ʂ
ௐࠪ࣌ؒͪΓੵΕࢁͱͳΓ·͢ ։ൃͷຊ࣭ͱΕͨͭ·Βͳ͍ௐࠪ࡞ۀ 93BZΛͬͯলྗ͍͖ͯ͠·͠ΐ͏ ·ͱΊ