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
0
1.3k
re:Growth 2016 サンプルコードで理解する X-Rayの使い方
re:Growth 2016 発表資料
sutetotanuki
December 13, 2016
Tweet
Share
More Decks by sutetotanuki
See All by sutetotanuki
Vercel AI SDK を使って Next.js で AIアプリケーションを 作成する方法のご紹介
sutetotanuki
0
1.2k
WEBエンジニア向けAI活用入門
sutetotanuki
0
700
ブラウザ上で実行され、 AIアシスタント付きデータベース postgres.new を触ってみた
sutetotanuki
0
330
今時のCookie事情
sutetotanuki
0
590
高速案件立ち上げで使われるマッハテンプレートのフロントエンド技術選定
sutetotanuki
2
1.7k
Core Web Vitals を改善する Next.js の機能群
sutetotanuki
1
2.3k
サーバーレスRDBの選択肢
sutetotanuki
0
1.4k
今日から始めるAmplify DataStore
sutetotanuki
0
1.3k
Kotlin Coroutine 基本的な使い方
sutetotanuki
0
760
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Navigating Team Friction
lara
188
15k
The Invisible Side of Design
smashingmag
301
51k
Thoughts on Productivity
jonyablonski
69
4.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Fireside Chat
paigeccino
38
3.6k
A Tale of Four Properties
chriscoyier
160
23k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
19k
Visualization
eitanlees
146
16k
Unsuck your backbone
ammeep
671
58k
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Λͬͯলྗ͍͖ͯ͠·͠ΐ͏ ·ͱΊ