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
Practical Monitoring For Server Side Devs
Search
hideki kinjyo
PRO
March 20, 2019
Technology
0
610
Practical Monitoring For Server Side Devs
「サーバーサイドエンジニアこそ喜んで監視をやろうよ、良い事あるよ」という話をしました
hideki kinjyo
PRO
March 20, 2019
Tweet
Share
More Decks by hideki kinjyo
See All by hideki kinjyo
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
6
2k
色んなオートローダーを覗き見る #phpcon_okinawa
o0h
PRO
5
560
ヒューマンエラーの本を読んだ ~報告会~
o0h
PRO
3
290
みんなでワイワイ「テスト駆動開発」の話をやる会 #techramen24conf
o0h
PRO
3
550
SPLから始める「データ構造」入門
o0h
PRO
7
1.9k
PHPUnit11の新しい仲間たち
o0h
PRO
3
420
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
62
21k
パンフ記事 「初めてのリファクタリング!」 の裏側 #phperkaigi
o0h
PRO
2
170
phpunit/php-code-coverageって何をしてるんだ #phperkaigi
o0h
PRO
3
1.5k
Other Decks in Technology
See All in Technology
「正しく」失敗できる チームの作り方 〜リアルな事例から紐解く失敗を恐れない組織とは〜 / A team that can fail correctly
i35_267
1
560
偏光画像処理ライブラリを作った話
elerac
1
130
OpenID Connect for Identity Assurance の概要と翻訳版のご紹介 / 20250219-BizDay17-OIDC4IDA-Intro
oidfj
0
430
OpenID BizDay#17 みんなの銀行による身元確認結果の活用 / 20250219-BizDay17-KYC-minna-no-ginko
oidfj
0
160
開発組織のための セキュアコーディング研修の始め方
flatt_security
3
2.7k
Share my, our lessons from the road to re:Invent
naospon
0
110
php-conference-nagoya-2025
fuwasegu
0
110
Autonomous Database Serverless 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
17
45k
ソフトウェアエンジニアと仕事するときに知っておいたほうが良いこと / Key points for working with software engineers
pinkumohikan
1
130
コンピュータビジョンの社会実装について考えていたらゲームを作っていた話
takmin
1
500
PHPカンファレンス名古屋-テックリードの経験から学んだ設計の教訓
hayatokudou
2
510
Developers Summit 2025 浅野卓也(13-B-7 LegalOn Technologies)
legalontechnologies
PRO
1
1.4k
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Why Our Code Smells
bkeepers
PRO
336
57k
Adopting Sorbet at Scale
ufuk
74
9.2k
Gamification - CAS2011
davidbonilla
80
5.1k
Navigating Team Friction
lara
183
15k
Raft: Consensus for Rubyists
vanstee
137
6.8k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
420
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Transcript
ࢹͱฏ Connehito Marché vol.5 ʙPHPࢢʙ Hideki Kinjyo twitter: @o0h_ /
github: o0h
ࣗݾհ • ίωώτגࣜձࣾ • αʔόʔαΠυΤϯδχΞ • ओʹCakePHPͳͲ
ಥવͰ͕͢ʂ
͜͜ʹ1ͭͷάϥϑ͕͋Γ·͢ʂ ԿͰ͠ΐ͏ʁ
ࢲͷମॏͰͨ͠☺ ϛϧϛϧݮ͍ͬͯͬͨΜͰ͢Ͷ͐ʙ
(ΊͬͪΌ૫ͤͨΜ͢Α)
᩵Λམͱ͢ͷͬͯ େมͰ͢ΑͶʂ
ෆ҆ͱͷઓ͍͔ͩΒɻ ͳΜͰେมͳͷʁ
ڪාɺෆ҆ఆ ෆ҆ͱ
͔ΔྖҬΛ֦େ͢Δ = ʮෆ҆ʯʮ҆৺ʯ ཪΛฦͤ
ۚݴ: ʮਪଌ͢ΔͳɺܭଌͤΑɻʯ
ۚݴ: ʮਪଌ͢ΔͳɺܭଌͤΑɻʯ ݮྔಉ͡ʂ
ʮମॏΛߜΔʯͱɾɾ • ߴ͍ཧ • “અ੍”͕ળɺΈ͍ͨͳࢥ • ෆ͕҆͋ΓετϨε͕͋Δઓ͍ɾɾɾ
ʮମॏΛߜΔʯͱɾɾ • ߴ͍ཧ • “અ੍”͕ળɺΈ͍ͨͳࢥ • ෆ͕҆͋ΓετϨε͕͋Δઓ͍ɾɾɾ ਏ͘ͳ͍Ͱ͔͢ɾɾʁ
ࢲ͕ͬͨ͜ͱ ʮઁऔcalʯ ʔʮফඅcalʯ ܭଌ
ͳΜͰɺࢲ͕ݮྔΛ!? • ཧɾΰʔϧ Λ ໌֬ʹ͢Δɻ • ʮઁऔΧϩϦʔ - ӡಈྔʯΛ-1,500kcalʹอͭ •
ޮՌతͳܭଌ͕ʮͻͨ͢Βਏ͍ʯʹର͢ΔثʹͳΔ • ޮՌతͳKPI: KGI݁ͷϝτϦΫεͷઃఆ • ࡉ͔͍ϑΟʔυόοΫ: ΧϩϦʔऩࢧຖΘ͔Δɻ
ͳΜͰɺࢲ͕ݮྔΛ!? • ཧɾΰʔϧ Λ ໌֬ʹ͢Δɻ • ʮઁऔΧϩϦʔ - ӡಈྔʯΛ-1,500kcalʹอͭ •
ޮՌతͳܭଌ͕ʮͻͨ͢Βਏ͍ʯʹର͢ΔثʹͳΔ • ޮՌతͳKPI: KGI݁ͷϝτϦΫεͷઃఆ • ࡉ͔͍ϑΟʔυόοΫ: ΧϩϦʔऩࢧຖΘ͔Δɻ ʮܭଌՄೳʯͳঢ়ଶ͕ɺେ͖ͳ҆৺ײΛͨΒ͢
• ϓϩάϥϛϯάͱಉ͡Ͱ͢Ͷʁ • αʔϏεࢹͱಉ͡Ͱ͢Ͷʁ ͋ΕɺίϨͬͯɾɾʂ
ʮΘ͔Δʯ=ʮ҆৺ײʯ • ʮઁऔΧϩϦʔʯͱʮফඅΧϩϦʔʯΛΕ ɺϥʔϝϯා͘ͳ͍ • ʮαʔϏε͕ಈ͍͍ͯΔʯͱ͍͏֬৴͕ͯ ΕɺσϓϩΠා͘ͳ͍
ϥʔϝϯ৯ͨ͘ͳ͍Ͱ͔͢ʁ
͡Ό͋ʮࢹʯΛ ͍͖ͬͯ·͠ΐ͏Ͷɾɾʂ
(͜͜·Ͱલஔ͖)
ຊ͓͢Δ͜ͱ • ΈΜͳͰࢹΛΖ͏ • αʔόʔαΠυDevͱࢹ
PART1: ʮೖ ࢹʯΛಡΈ·ͨ͠ɻ
ʮೖ ࢹʯ • 1݄ʹग़ͨຊ • Ξϯνύλʔϯ = “͋Δ ͋Δ”ͱɺཱ͔͍ͪํ •
ྔతʹίϯύΫτͰɺ จষಡΈ͍͢˕
ձࣾͷϒϩάͰॻ͖·ͨ͠ʂ http://tech.connehito.com/entry/practical- monitoring
ͱʹ͔͘ɺίί͚͍ͩ͑ͨʂ ᶃ ࢹׂͰͳ͘εΩϧ ᶄ αʔϏε͕ಈ͍͍ͯΔ͔Λࢹ͢Δ ᶅ ࢹҭͯΔͷ
ᶃ ࢹׂͰͳ͘εΩϧ
ࢹ୭ͷͷ͔ʁ • ʮࢹ͢Δਓʯɺ ʮࢹʯͰʮΠϯϑϥΤϯδχΞʯͰͳ͍ • ʮαʔϏεͷશମɾࡉΛΔʯແཧʂ • օ͕ͦΕͧΕʮ͍ͬͯΔ͜ͱʯΛ ίϥϘϨʔγϣϯͰ͖ͨΒྑ͍ΑͶ •
։ൃɾӡ༻ʹܞΘΔશһ͕ࣗ͝ͱԽ͢Δɻ ʮ͕ࣗ࡞ͬͨͷʹର͢Δʯ
ݴ͍͍ͨ͜ͱΘ͔Δ͚Ͳ͞ʙ ʮࣗ͝ͱԽʯͬͯͶʙɻ ͦΕͬͯɺֆۭࣄ͡Όͳ͍ͷʙʁ ͏े͍͠ΜͰ͕͢ʔʂ
ר͖ࠐ͏ɻ
ʮશһࢹʯͷເ • ៉ྷࣄͱͯ͠ʮࣗͷ࡞͍ͬͯΔͷͳͷ ͔ͩΒɺ͔ͬ͠Γݟಧ͚Α͏ʂʯ • ͱ͍͑ɺʮࣄ͕͘͠ͳ͍ਓʯͳΜ͍ͯ ͳ͍͠ɺʮΒͳͯ͘ྑ͍ࣄԡ͚ͨ͠ ͍ʯɻ • Ͳ͏આಘͯ͠ר͖ࠐΉ͔ʁ
ʮΔ͖ཧ༝ʯΛ࡞Δͷͱɺ ʮΕΔΑ͏ʹ͢Δʯͷ͕ॏཁɻ
ࢹʹऔΓΉࢫຯ • ։ൃऀ͕1൪ͳͷɾɾɾ • োൃੜɺࠩ͠ࠐΈɺόάใࠂɺσόοά • ࢹʮϑΟʔυόοΫʯͱͯ͠ଊ͑Δ • ͲΜͳ࣌ʹαʔϏε͕ʮϠόΈʯΛᷰΒ͏ʁͷഽײ Λཆ͑Δ
• େ͖ͳোΛੜΉલʹ௵ͤΔͷଟ͍ɻ
ࢹʹऔΓΉࢫຯ • ։ൃऀ͕1൪ͳͷɾɾɾ • োൃੜɺࠩ͠ࠐΈɺόάใࠂɺσόοά • ࢹʮϑΟʔυόοΫʯͱͯ͠ଊ͑Δ • ͲΜͳ࣌ʹαʔϏε͕ʮϠόΈʯΛᷰΒ͏ʁͷഽײ Λཆ͑Δ
• େ͖ͳোΛੜΉલʹ௵ͤΔͷଟ͍ɻ (Ͳ͏ͤো͕ى͖ͨΒ͓લݺͼى͜͞ΕΔΜͩͧɾɾʂ)
ࢹʮεΩϧʯ • εΩϧ = τϨʔχϯάʹΑͬͯಘΒΕΔٕ๏
εΩϧͱʁεΩϧΞοϓͷํ๏ͱ׆༻๏ɺεΩϧΞο ϓͷඞཁੑͱ | LIMO | ͘Β͠ͱ͓ۚͷܦࡁϝσΟΞ https://limo.media/articles/-/6252
ࢹʮεΩϧʯ • ࠽ೳηϯεܦݧ͋Ε͍͍͕ɺ ͦΕ͕ͳͯ͘ѻ͑ΔΑ͏ʹɻଐਓԽɻ • ۩ମతʹɺʮͷΓ͚ํʯʮͦΕʹ ඞཁͳΞʔΩςΫνϟ૾ͷཧղʯʮπʔϧͷ ͍ํΞΫηεݖݶʯΛ༻ҙ͢Δ
ࢹʮεΩϧʯ • εΩϧ = τϨʔχϯάʹΑͬͯಘΒΕΔٕ๏ • ࠽ೳηϯεܦݧ͋Ε͍͍͕ɺ ͦΕ͕ͳͯ͘ѻ͑ΔΑ͏ʹɻଐਓԽɻ • ͷΓ͚ํɺͦΕʹඞཁͳΞʔΩςΫ
νϟ૾ͷཧղɺπʔϧͷ͍ํΞΫηεݖ ݶ ʮͰ͖ΔʯΑ͏ʹڭҭɾࢧԉΛ͑Δ
ᶄ αʔϏε͕ಈ͍͍ͯΔ͔Λ ࢹ͢Δ
ࢹͱ ʮಈ͍͍ͯΔ͔ʁʯͱ͍͏ • ࢹͱʹ͔͘ʮ؆୯ʯͰʮҙຯͷ͋Δʯ ͷ͕ྑ͍ • ڀۃతͳత ʮαʔϏε͕ಈ͍͍ͯΔ͜ͱʯΛ࢘Δ͜ͱ
ࢹσβΠϯͱΞϯνύλʔϯ • Good: Ϣʔβʔ؍ Ͱͷࢹ • ϦΫΤετΛૹ͔ͬͯΒε τϨεͳ͘ฦͬͯ͘Δ͔ʁ • σʔλͷߋ৽ࣦഊ͕ҟৗʹ
ੜ͍ͯ͡ͳ͍͔ʁ
ࢹσβΠϯͱΞϯνύλʔϯ • Bad: OSϨΠϠͷܗ ࣜతͳࢹ • DBͷCPU༻͕ߴ͍ <= ͰϦΫΤετॲཧ ͍ͬͯͳ͍
ࢹσβΠϯͱΞϯνύλʔϯ • Good: Ϣʔβʔ؍ Ͱͷࢹ • ϦΫΤετΛૹ͔ͬͯΒε τϨεͳ͘ฦͬͯ͘Δ͔ʁ • σʔλͷߋ৽ࣦഊ͕ҟৗʹ
ੜ͍ͯ͡ͳ͍͔ʁ • Bad: OSϨΠϠͷܗ ࣜతͳࢹ • DBͷCPU༻͕ߴ͍ <= ͰϦΫΤετॲཧ ͍ͬͯͳ͍ ϢʔβʔӨڹෳ߹ཁҼͰى͖Δɻ తΛ֬ೝ͠ɺΦΦΧϛগʹҙ͢Δ
ᶅ ࢹҭͯΔͷ
ࢹͷܧଓతվળ • ΞϥʔτʮਓΛୟ͖ى͜͢ʯͷɻ • ఆظతͳ୨Է͠Λߦ͓͏ɻ ʮ໐͚ͬͨͲଈ࣌ରॲ͠ͳ͔ͬͨʯͷɺ ϦετϥީิʹͳΔ
ࢹͷܧଓతվળ • αʔϏεৗʹҭͪɺγεςϜෳࡶʹͳͬ ͍ͯ͘ɻ Ͱ͋Εɺͣͬͱಉ͡ΓํͰ௨༻͢Δͱ͍ ͏ͷݬͰ͋Δ • πʔϧͷೖΕସؚ͑ΊͯɺʮޮՌతͳͷʯ Λࡧ͠ଓ͚ΔྗΛଵΒͳ͍
ࢹͷܧଓతվળ • ΞϥʔτʮਓΛୟ͖ى͜͢ʯͷɻ • ఆظతͳ୨Է͠Λߦ͓͏ɻ ʮ໐͚ͬͨͲଈ࣌ରॲ͠ͳ͔ͬͨʯͷɺϦετϥީิʹͳ Δ • αʔϏεৗʹҭͪɺγεςϜෳࡶʹͳ͍ͬͯ͘ɻ Ͱ͋Εɺͣͬͱಉ͡ΓํͰ௨༻͢Δͱ͍͏ͷݬͰ͋Δ
• πʔϧͷೖΕସؚ͑ΊͯɺʮޮՌతͳͷʯΛࡧ͠ଓ͚Δ ྗΛଵΒͳ͍ ࡞ͬͯऴΘΓʹ͠ͳ͍ʂ ࣮ࡍͷ݁ՌɺϝϯόʔͷϑΟʔυόοΫͰຏ͍͍ͯ͘
PART1: ʮೖ ࢹʯΛಡΈ·ͨ͠ɻ ʙऴʙ
PART2: ࢹʹ͓͚Δ αʔόʔαΠυͷظ
ࢹʮશһʯͰΔͷ
ઐੑΛ࣋ͪدͬͯɺ 1ͭͷෳࡶੑΛཧղ͢Δͷ͕ࢹ • ΠϯϑϥɺαʔόʔɺΫϥΠΞϯτɺɺɺͰ ʮҙ͍ࣝͯ͠Δ෦ʯ͕ҧ͏ • ͓ޓ͍͕ʮ͍ͬͯΔ͜ͱʯʹ͍ͭͯ ࣮ʹใڞ༗Ͱ͖Δͷ͕ཧ
WebαʔϏεͬͯෳࡶɾɾ
ʮ͓ʙ͍ʂϖʔδද͕ࣔॏ͍Αʙʂʯ
ʮ͓ʙ͍ʂϖʔδද͕ࣔॏ͍Αʙʂʯ ʮϢʔβʔࢹʯͰࢹΛ࢝Ίɺ ʮෳ߹ཁҼʯΛղ͖΄͙͢ඞཁ͕͋Δ
ʮ͍ͬͯΔ͜ͱʯ͕ҟͳΔ • ΠϯϑϥʮDB͕ෆௐʁʯʮappΠϯελϯε མͪͯΔʁʯ • αʔόʔʮ͖ͬ͞ग़ͨ͠API͕ѱ͍ৼΔ͍͠ ͯΔʁʯ • ϑϩϯτʮϦΫΤετͷϒϩοΫ͕ൃੜͯ͠ Δʁʯ
োͷରԠʹɺ ਝͳՕॴͷಛఆ͕ඞਢɻ େࣄͳ͜ͱ
αʔόʔαΠυɺ खલͱཪଆͷʮதؒʯͱͯ͠ͷ͕ࣝ͋Δ
զʑ͔ͩΒ͔Δ͜ͱ • ΫϥΠΞϯτͷड৴༰͕มʁ • ͖ͬ͞ग़ͨ͠ϩδοΫɺ͜ΜͳʹΩϟογϡ ͷϛεώοτ͠ͳ͍ͣͩͧʁ • ϝϞϦΛͨΒ৯ͬͯΔʁࠓ·Ͱʹͳ͔ͬͨ ߘ͕࡞͞Ε͔ͨʁ
զʑ͔ͩΒ͔Δ͜ͱ • ΫϥΠΞϯτͷड৴༰͕มʁ • ͖ͬ͞ग़ͨ͠ϩδοΫɺ͜ΜͳʹΩϟογϡ ͷϛεώοτ͠ͳ͍ͣͩͧʁ • ϝϞϦΛͨΒ৯ͬͯΔʁࠓ·Ͱʹͳ͔ͬͨ ߘ͕࡞͞Ε͔ͨʁ ʮϏδωεϩδοΫ×λονϙΠϯτʯͱ͍͏ࢹ
αʔόʔαΠυ͕ ʮࢹʯͷ࠷લઢʹཱͭͱɺ ΊͪΌͪ͘Όݱঢ়ཧ͕ૣ͘ͳΔɾɾʂ (ܦݧऀஊ) ͭ·Γʂ
PART2: αʔόʔαΠυͷظ ʙऴʙ
·ͱΊʂ
ຊ͓ͨ͜͠ͱ ᶃ ʮೖ ࢹʯྑॻɺະಡͷํͥͻʂ ᶄ ࢹා͘ͳ͍ɺ Ή͠Ζʮ҆৺Ͱ͖Δʯհॿ ᶅ ͱΓΘ͚ɺαʔόʔαΠυͷਓ ࢹʹऔΓΉͱ໘ന͍ͱࢥ͍·͢Αɾɾɾʂ
#ajitofm ep.42 https://ajito.fm/42/ TDDຊͱೖࢹ༁ऀΛܴ͑ͯͷձஊɻ ໘ന͘ͳ͍Θ͚͕ͳ͍ɾɾʂ͓͢͢Ίɻ ͪͳΈʹ
͓͖߹͍͍͖ͨͩ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ