Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web API をデバックするときに必要なたったひとつのこと

Web API をデバックするときに必要なたったひとつのこと

Web API 開発の観点からみたロギングのコツについて。
kanazawa.rb meetup 33 発表資料。

Tomokazu Kiyohara

May 16, 2015
Tweet

More Decks by Tomokazu Kiyohara

Other Decks in Technology

Transcript

  1. Web API ͷಛ௃ • ଟ਺ͷߏ੒ཁૉ • ϩʔυόϥϯα, ϦόʔεϓϩΫγ, Ξϓέʔγϣϯαʔόʔ, DB

    ... • ϓϩηε, εϨου … • ଟ਺ͷฒྻॲཧ • ෳ਺ΫϥΠΞϯτ, ଟॏ API ίʔϧ …
  2. client A client B RP RP App Server App Server

    DB DB Process α ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ Process β ɾ ɾ ɾ ɾ ɾ ɾ LB client A ͔Βͷ API ίʔϧ x ͷ ॲཧύεΛಛఆͯ͠ ͦΕͧΕͷ log Λ ໨ grep ͯ͠…
  3. client A client B RP RP App Server App Server

    DB DB ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ LB APIΫϥΠΞϯτʹ ΋ͬͱ΋͍ۙߏ੒ཁૉ ೖΕ΍͍͢ͷ͸͜ͷล
  4. ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ 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
  5. client A client B RP RP App Server App Server

    DB DB ɾ ɾ ɾ LB ᶃ API Call ᶄ ࣝผࢠൃߦ LB ᶃ' API Call ᶄ' ࣝผࢠൃߦ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ
  6. client A client B RP RP App Server App Server

    DB DB ɾ ɾ ɾ LB ᶃ API Call ᶄ ࣝผࢠൃߦ LB ᶃ' API Call ᶄ' ࣝผࢠൃߦ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ
  7. ϩάͷࣝผ • API Call Λࣝผ͢Δ • ߏ੒ཁૉԣஅͰࣝผ • αʔό΍ϓϩηεΛ·͍ͨͰ΋ࣝผͰ͖Δ͜ͱ͕େࣄ •

    API Call ຖʹࣝผ • ΫϥΠΞϯτຖͰ͸ͳ͘ Call ຖͰ͋Δ͜ͱ͕େࣄ Ұҙੑ (Uniqueness)
  8. client A client B RP RP App Server App Server

    DB DB ɾ ɾ ɾ LB ᶃ API Call ᶄ ࣝผࢠൃߦ LB ᶃ' API Call ᶄ' ࣝผࢠൃߦ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ
  9. client A client B RP RP App Server App Server

    DB DB ɾ ɾ ɾ LB ᶃ API Call ᶄ ࣝผࢠൃߦ LB ᶃ' API Call ᶄ' ࣝผࢠൃߦ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ɾ ࣝผࢠൃߦ αʔόʔ × The ϘτϧωοΫ
  10. ෼ࢄܕ࠾൪ख๏ • ԋࢉίετ໰୊ • Snowflake • Twitter ͷ Tweet ID

    ੜ੒ख๏ • িಥ֬཰͸্͕Δ • Twitter ʹͱͬͯ͸े෼௿֬཰