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
440
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Web API をデバックするときに必要なたったひとつのこと
Web API 開発の観点からみたロギングのコツについて。
kanazawa.rb meetup 33 発表資料。
Tomokazu Kiyohara
May 16, 2015
More Decks by Tomokazu Kiyohara
See All by Tomokazu Kiyohara
読めるかな?ちょっとレアなRubyの記法
kiyohara
0
100
Lightning Talk イベント運営を いいがにやりたい
kiyohara
0
140
首負担皆無!ゼログラビティ プログラミングスタイル
kiyohara
0
430
北陸で Ruby なお仕事に携わるための3つの戦略
kiyohara
1
1.8k
Algolia in CAMPFIRE
kiyohara
0
4.1k
地方エンジニアの日常 - 業務からコミュニティ活動まで
kiyohara
0
350
Web to macOS native app
kiyohara
0
450
金沢アプリ開発塾セミナー資料「テストについて」
kiyohara
1
310
Git インフラ選定事例 - 株式会社クルウィットが GitHub を選んだ理由
kiyohara
0
540
Other Decks in Technology
See All in Technology
SRE Next 2026 何でも屋からの脱却
bto
0
1.1k
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
160
仕様駆動開発、導入半年。「本当に速くなってるの?」にデータで答える / AICon2026_hirakawa
rakus_dev
0
240
「守りたい体験」を渡すだけで E2E を生成させられるようになった話
hinac0
1
860
壊して学ぶAWS CDK: そのcdk deployで消えるもの、残るもの
k_adachi_01
1
440
AI時代の開発生産性を捉え直す — 経営と現場をつなぐ「開発組織のオブザーバビリティ」— / AI Dev Ex Conference 2026
tkyowa
0
470
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
4
2.4k
DatabricksにおけるMCPソリューション
taka_aki
1
290
【Claude Code】鹿野さんに聞く 私の推しの並行開発環境 大公開 / claude-code-parallel-2026-07-15
tonkotsuboy_com
13
8.8k
Copilot / Claude Code 両方で使えるスキル・ハーネスの紹介 - Claude Codeスキル・ハーネス社内勉強会
colopl
0
130
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
1
780
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
160
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Tell your own story through comics
letsgokoyo
1
1k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
A designer walks into a library…
pauljervisheath
211
24k
エンジニアに許された特別な時間の終わり
watany
108
250k
Bash Introduction
62gerente
615
220k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
How GitHub (no longer) Works
holman
316
150k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
460
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
360
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