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
Web API をデバックするときに必要なたったひとつのこと
Search
Tomokazu Kiyohara
May 16, 2015
Technology
1
400
Web API をデバックするときに必要なたったひとつのこと
Web API 開発の観点からみたロギングのコツについて。
kanazawa.rb meetup 33 発表資料。
Tomokazu Kiyohara
May 16, 2015
Tweet
Share
More Decks by Tomokazu Kiyohara
See All by Tomokazu Kiyohara
読めるかな?ちょっとレアなRubyの記法
kiyohara
0
76
Lightning Talk イベント運営を いいがにやりたい
kiyohara
0
100
首負担皆無!ゼログラビティ プログラミングスタイル
kiyohara
0
400
北陸で Ruby なお仕事に携わるための3つの戦略
kiyohara
1
1.7k
Algolia in CAMPFIRE
kiyohara
0
3.8k
地方エンジニアの日常 - 業務からコミュニティ活動まで
kiyohara
0
330
Web to macOS native app
kiyohara
0
420
金沢アプリ開発塾セミナー資料「テストについて」
kiyohara
1
290
Git インフラ選定事例 - 株式会社クルウィットが GitHub を選んだ理由
kiyohara
0
520
Other Decks in Technology
See All in Technology
Snowflake Industry Days 2025 Nowcast
takumimukaiyama
0
150
モダンデータスタックの理想と現実の間で~1.3億人Vポイントデータ基盤の現在地とこれから~
taromatsui_cccmkhd
2
290
普段使ってるClaude Skillsの紹介(by Notebooklm)
zerebom
8
2.6k
なぜ あなたはそんなに re:Invent に行くのか?
miu_crescent
PRO
0
230
[2025-12-12]あの日僕が見た胡蝶の夢 〜人の夢は終わらねェ AIによるパフォーマンスチューニングのすゝめ〜
tosite
0
220
AIBuildersDay_track_A_iidaxs
iidaxs
4
1.6k
半年で、AIゼロ知識から AI中心開発組織の変革担当に至るまで
rfdnxbro
0
160
[Data & AI Summit '25 Fall] AIでデータ活用を進化させる!Google Cloudで作るデータ活用の未来
kirimaru
0
4.1k
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
3
210
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
430
AWS re:Invent2025最新動向まとめ(NRIグループre:Cap 2025)
gamogamo
0
140
「駆動」って言葉、なんかカッコイイ_Mitz
comucal
PRO
0
120
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.8k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
0
34
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
590
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
The Curious Case for Waylosing
cassininazir
0
200
The Curse of the Amulet
leimatthew05
0
6.3k
Between Models and Reality
mayunak
0
150
Heart Work Chapter 1 - Part 1
lfama
PRO
3
35k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
0
980
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
24
Code Reviewing Like a Champion
maltzj
527
40k
Transcript
Web API Λσόοά͢Δͱ͖ʹඞཁͳ ͨͬͨͻͱͭͷ͜ͱ 2015/05/16 - Kanazawa.rb meetup 33
͔͍͜͠ϩΪϯά ͨ͑͜
͔͍͜͠ϩΪϯά ͨ͑͜
Web API ͷಛ • ଟͷߏཁૉ • ϩʔυόϥϯα, ϦόʔεϓϩΫγ, Ξϓέʔγϣϯαʔόʔ, DB
... • ϓϩηε, εϨου … • ଟͷฒྻॲཧ • ෳΫϥΠΞϯτ, ଟॏ API ίʔϧ …
client A client B RP RP App Server App Server
DB DB Process α ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ Process β ɾ ɾ ɾ ɾ ɾ ɾ LB client A ͔Βͷ API ίʔϧ x ͷ ॲཧύεΛಛఆͯ͠ ͦΕͧΕͷ log Λ grep ͯ͠…
ͦΜͳඋͰେৎ͔ʁ
–T.K, 2013 “։ൃڥͦΜͳෳࡶ͡Όͳ͍ɻෳ Terminal ։͍ͯ log Λ tail ͓͚ͯ͠ेɻ”
–T.K, 2014 “։ൃڥෳࡶͩͬͨ”
–T.K, 2015 “ຊͷόάӡ༻ڥʹͦ͜જΉ”
͔͜͠͞ͷछ • ϩΪϯάશൠ • ͍Ζ͍Ζ͋Δɻ͓͓͍ɻ • ͓άάΓ͍ͩ͘͞ɻ • Web API
ʹߜΔͱ • ूͱࣝผ
ूͱࣝผ
ूͱࣝผ
ϩάͷू • ͢Ͱʹ༷ʑͳΞϓϩʔν͕͋Δ • ݹ͘ syslog • ΠϚυΩ fluentd
ूͱࣝผ
ϩάͷࣝผ • API Call Λࣝผ͢Δ • ߏཁૉԣஅͰࣝผ • αʔόϓϩηεΛ·͍ͨͰࣝผͰ͖Δ͜ͱ͕େࣄ •
API Call ຖʹࣝผ • ΫϥΠΞϯτຖͰͳ͘ Call ຖͰ͋Δ͜ͱ͕େࣄ
Ͳ͏ͬͯʁ • ࣝผࢠΛൃߦͯ͠ߏཁૉؒͰൖ • ͩΕ͕ൃߦʁ • Ͳ͏ͬͯൖʁ
ͩΕ͕ൃߦʁ
client A client B RP RP App Server App Server
DB DB ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ LB APIΫϥΠΞϯτʹ ͬͱ͍ۙߏཁૉ ೖΕ͍͢ͷ͜ͷล
Ͳ͏ͬͯൖʁ
ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ client
A client B RP RP App Server App Server DB DB ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ LB ᶃ API Call ᶄ ࣝผࢠൃߦ ᶅ ࣝผࢠ͖ Ͱ logging ᶆ ࣝผࢠ͖ ͰIPC(call) ᶇ ࣝผࢠ͖ Ͱ logging ᶈ ࣝผࢠ͖ ͰIPC(call) ᶉ ࣝผࢠ͖ Ͱ logging ᶊ ࣝผࢠ͖ ͰIPC(call) ᶋ ࣝผࢠ͖ Ͱ logging ᶌ ࣝผࢠ͖ ͰIPC(res) ᶎ ࣝผࢠ͖ ͰIPC(res) ᶍ ࣝผࢠ͖ Ͱ logging ᶏ ࣝผࢠ͖ Ͱ logging ᶐ ࣝผࢠ͖ ͰIPC(res) ᶑ ࣝผࢠ͖ Ͱ logging ᶒ API Response
γϯϓϧͳ
ԡ͑͞Δ͖ϙΠϯτ͕ ͏ͻͱͭ
Ͳ͏ͬͯʁ • ࣝผࢠΛൃߦͯ͠ߏཁૉؒͰൖ • ͩΕ͕ൃߦʁ • Ͳ͏ͬͯൖʁ
Ͳ͏ͬͯʁ • ࣝผࢠΛൃߦͯ͠ߏཁૉؒͰൖ • ͩΕ͕ൃߦʁ • Ͳ͏ͬͯൃߦʁ • Ͳ͏ͬͯൖʁ New!
client A client B RP RP App Server App Server
DB DB ɾ ɾ ɾ LB ᶃ API Call ᶄ ࣝผࢠൃߦ LB ᶃ' API Call ᶄ' ࣝผࢠൃߦ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ
client A client B RP RP App Server App Server
DB DB ɾ ɾ ɾ LB ᶃ API Call ᶄ ࣝผࢠൃߦ LB ᶃ' API Call ᶄ' ࣝผࢠൃߦ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ
ϩάͷࣝผ • API Call Λࣝผ͢Δ • ߏཁૉԣஅͰࣝผ • αʔόϓϩηεΛ·͍ͨͰࣝผͰ͖Δ͜ͱ͕େࣄ •
API Call ຖʹࣝผ • ΫϥΠΞϯτຖͰͳ͘ Call ຖͰ͋Δ͜ͱ͕େࣄ
ϩάͷࣝผ • API Call Λࣝผ͢Δ • ߏཁૉԣஅͰࣝผ • αʔόϓϩηεΛ·͍ͨͰࣝผͰ͖Δ͜ͱ͕େࣄ •
API Call ຖʹࣝผ • ΫϥΠΞϯτຖͰͳ͘ Call ຖͰ͋Δ͜ͱ͕େࣄ Ұҙੑ (Uniqueness)
client A client B RP RP App Server App Server
DB DB ɾ ɾ ɾ LB ᶃ API Call ᶄ ࣝผࢠൃߦ LB ᶃ' API Call ᶄ' ࣝผࢠൃߦ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ
client A client B RP RP App Server App Server
DB DB ɾ ɾ ɾ LB ᶃ API Call ᶄ ࣝผࢠൃߦ LB ᶃ' API Call ᶄ' ࣝผࢠൃߦ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ࣝผࢠൃߦ αʔόʔ × The ϘτϧωοΫ
ࢄܕϢχʔΫIDੜ
ࢄܕ࠾൪ख๏ • ࢄͨ͠࠾൪ڥͦΕͧΕͰཱࣗతʹ࠾൪Մೳ Ͱ͋Δ͜ͱ • ࠾൪݁Ռ͕ઈରʹিಥ͠ͳ͍͜ͱ
ࢄܕ࠾൪ख๏ • ࢄͨ͠࠾൪ڥͦΕͧΕͰཱࣗతʹ࠾൪Մೳ Ͱ͋Δ͜ͱ • ࠾൪݁Ռ͕ઈରʹিಥ͠ͳ͍͜ͱ
ࢄܕ࠾൪ख๏ • ࢄͨ͠࠾൪ڥͦΕͧΕͰཱࣗతʹ࠾൪Մೳ Ͱ͋Δ͜ͱ • ࠾൪݁Ռͷিಥ͕֬ӡ༻͞ΕΔγεςϜʹ͓͍ͯ ेʹ֬Ͱ͋Δ͜ͱ
ࢄܕ࠾൪ख๏ • େ͖ͳܻͷϥϯμϜจࣈྻ • UUID
ࢄܕ࠾൪ख๏ • ԋࢉίετ • Snowflake • Twitter ͷ Tweet ID
ੜख๏ • িಥ্͕֬Δ • Twitter ʹͱͬͯे֬
·ͱΊ • Web API ʹ͓͚Δ͔͍͜͠ϩΪϯά • ऩूͱࣝผΛ࣮ݱ͢Δ • ࣝผࢠʹࢄܕϢχʔΫIDੜख๏Λ͍ͪΔ
Thank you Tomokazu Kiyohara http://github.com/kiyohara http://facebook.com/tomokazu.kiyohara