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.2k
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
280
WEBエンジニア向けAI活用入門
sutetotanuki
0
420
ブラウザ上で実行され、 AIアシスタント付きデータベース postgres.new を触ってみた
sutetotanuki
0
180
今時のCookie事情
sutetotanuki
0
410
高速案件立ち上げで使われるマッハテンプレートのフロントエンド技術選定
sutetotanuki
2
1.3k
Core Web Vitals を改善する Next.js の機能群
sutetotanuki
1
1.9k
サーバーレスRDBの選択肢
sutetotanuki
0
1.2k
今日から始めるAmplify DataStore
sutetotanuki
0
1.2k
Kotlin Coroutine 基本的な使い方
sutetotanuki
0
680
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
44
13k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
98
Bash Introduction
62gerente
608
210k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Building Your Own Lightsaber
phodgson
103
6.1k
Making Projects Easy
brettharned
116
5.9k
Agile that works and the tools we love
rasmusluckow
328
21k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Side Projects
sachag
452
42k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
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Λͬͯলྗ͍͖ͯ͠·͠ΐ͏ ·ͱΊ