SlideShare a Scribd company logo
1 of 10
Download to read offline
ENECHANGE 社での
Scout APM 利用事例について
2020/01/16
大手町.rb #24
大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」
1自己紹介
Tomoya Kawanishi a.k.a. @cuzic
エネチェンジ株式会社 チーフエンジニア
電力会社、ガス会社を切り替えるなら、エネチェンジ経由で!
一般家庭も!法人も!
Ruby関西の中の人
発表者として登壇くださる方、あとで声かけください。
第89回 Ruby関西勉強会 2月8日(土)
大手町.rb の中の人
隔月で 大手町.rb の開催を予定
東京駅、各線大手町駅から直結!
Ruby をもっとできるようになりたい方がメインターゲット
大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」
2今日のテーマ
今日は Scout APM 社がゲスト(スポンサー)
• ENECHANGE での Scout APM 利用事例を紹介します
大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」
3Scout APM 導入時の状況
2019年10~12月 四半期、パフォーマンス向上に取り組む
• 導入前の状況
• エンジニアの増員
• 開発・動作確認にも支障が出るレベルで遅い場面があった
• 多くのエンジニアが四半期の目標として
性能改善を設定
• ENECHANGE では目標設定はボトムアップ型
• 導入時
• 性能改善のため具体的に何をしたらいいか、相談される
• stackprof、bullet、 rack-mini-profiler を推薦
• とっつきにくく、操作に習熟するのに時間がかかる
• ほかの件もあり、1週間ほどムダに過ぎる
大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」
4Scout APM の検証用アカウントを申請
Scout APM の検証を導入
• 性能計測・性能向上についてディスカッション
• RubyKaigi で Scout APM の営業と話したことを思い出す
• そのとき2週間の検証用アカウントをもらうが、何もせず放置
• 強い心で、 Scout APM に連絡
• 検証用アカウント ゲット!
• メールを送ったら、すんなり検証用アカウントをもらえた。
• 利用期間は2週間
大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」
Scout APM を利用し、高速化を実施 5
2週間しか、検証用アカウントが使えない!
検証期間、集中的に高速化に取り組み、多数の PR を作成!
大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」
Scout APM を利用した N+1 問題の解決 6
N+1 のタグで、N+1 問題をカンタンに発見できる!
大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」
見つけにくい不具合の発見・解決 7
return Rails.cache.read(cache_key) if Rails.cache.read(cache_key)
return Rails.cache.read(cache_key) if Rails.cache.exist?(cache_key)
特定条件で非常に遅くなる不具合があった。
低確率で発生する不具合で非常に気づきにくい事象だった。
Scout APM を本番環境に導入することで、発見、解決に成功した。
大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」
おわりに
今日は Scout APM の ENECHANGE での利用事例を紹介し
ました。
N+1 問題の改善、低確率で発生する性能問題の解決に
とても役立ちました。
今日の軽食(ピザ)は、 Scout APM のスポンサーで提供
されています!
• Scout APM は軽食スポンサーとして配慮していますが、
今日話した内容はすべて事実で、脚色等はありません。
8
ご清聴ありがとう
ございました

More Related Content

More from Tomoya Kawanishi

Ruby の文字列について
Ruby の文字列についてRuby の文字列について
Ruby の文字列についてTomoya Kawanishi
 
RubyGems と Bundler について
RubyGems と Bundler についてRubyGems と Bundler について
RubyGems と Bundler についてTomoya Kawanishi
 
Ruby の正規表現について
Ruby の正規表現についてRuby の正規表現について
Ruby の正規表現についてTomoya Kawanishi
 
Ruby での外部コマンドの実行について
Ruby での外部コマンドの実行についてRuby での外部コマンドの実行について
Ruby での外部コマンドの実行についてTomoya Kawanishi
 
Ruby のワンライナーについて
Ruby のワンライナーについてRuby のワンライナーについて
Ruby のワンライナーについてTomoya Kawanishi
 
AWS のコスト管理をちゃんとしたくてやったこと
AWS のコスト管理をちゃんとしたくてやったことAWS のコスト管理をちゃんとしたくてやったこと
AWS のコスト管理をちゃんとしたくてやったことTomoya Kawanishi
 
PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選Tomoya Kawanishi
 
HTTPと Webクローリングについて
HTTPと WebクローリングについてHTTPと Webクローリングについて
HTTPと WebクローリングについてTomoya Kawanishi
 
Active record query interface
Active record query interfaceActive record query interface
Active record query interfaceTomoya Kawanishi
 
Active Support のコア拡張機能について
Active Support のコア拡張機能についてActive Support のコア拡張機能について
Active Support のコア拡張機能についてTomoya Kawanishi
 
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナー
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナーRuby ビジネス創出展 Ruby初心者向けプログラミングセミナー
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナーTomoya Kawanishi
 
RubyのDir、File、IO について
RubyのDir、File、IO についてRubyのDir、File、IO について
RubyのDir、File、IO についてTomoya Kawanishi
 
Ruby の制御構造とリテラルについて
Ruby の制御構造とリテラルについてRuby の制御構造とリテラルについて
Ruby の制御構造とリテラルについてTomoya Kawanishi
 
Ruby の String のメソッドについて
Ruby の String のメソッドについてRuby の String のメソッドについて
Ruby の String のメソッドについてTomoya Kawanishi
 
RubyGems と Bundler について
RubyGems と Bundler についてRubyGems と Bundler について
RubyGems と Bundler についてTomoya Kawanishi
 
AWSコストの事業部別コスト配分について
AWSコストの事業部別コスト配分についてAWSコストの事業部別コスト配分について
AWSコストの事業部別コスト配分についてTomoya Kawanishi
 
Pry による repl 駆動開発について
Pry による repl 駆動開発についてPry による repl 駆動開発について
Pry による repl 駆動開発についてTomoya Kawanishi
 
Module での名前解決について
Module での名前解決についてModule での名前解決について
Module での名前解決についてTomoya Kawanishi
 

More from Tomoya Kawanishi (20)

英単語の覚え方
英単語の覚え方英単語の覚え方
英単語の覚え方
 
Ruby の文字列について
Ruby の文字列についてRuby の文字列について
Ruby の文字列について
 
RubyGems と Bundler について
RubyGems と Bundler についてRubyGems と Bundler について
RubyGems と Bundler について
 
Ruby の正規表現について
Ruby の正規表現についてRuby の正規表現について
Ruby の正規表現について
 
Ruby での外部コマンドの実行について
Ruby での外部コマンドの実行についてRuby での外部コマンドの実行について
Ruby での外部コマンドの実行について
 
Ruby のワンライナーについて
Ruby のワンライナーについてRuby のワンライナーについて
Ruby のワンライナーについて
 
AWS のコスト管理をちゃんとしたくてやったこと
AWS のコスト管理をちゃんとしたくてやったことAWS のコスト管理をちゃんとしたくてやったこと
AWS のコスト管理をちゃんとしたくてやったこと
 
PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選PostgreSQL のイケてるテクニック7選
PostgreSQL のイケてるテクニック7選
 
HTTPと Webクローリングについて
HTTPと WebクローリングについてHTTPと Webクローリングについて
HTTPと Webクローリングについて
 
Rake
RakeRake
Rake
 
Active record query interface
Active record query interfaceActive record query interface
Active record query interface
 
Active Support のコア拡張機能について
Active Support のコア拡張機能についてActive Support のコア拡張機能について
Active Support のコア拡張機能について
 
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナー
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナーRuby ビジネス創出展 Ruby初心者向けプログラミングセミナー
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナー
 
RubyのDir、File、IO について
RubyのDir、File、IO についてRubyのDir、File、IO について
RubyのDir、File、IO について
 
Ruby の制御構造とリテラルについて
Ruby の制御構造とリテラルについてRuby の制御構造とリテラルについて
Ruby の制御構造とリテラルについて
 
Ruby の String のメソッドについて
Ruby の String のメソッドについてRuby の String のメソッドについて
Ruby の String のメソッドについて
 
RubyGems と Bundler について
RubyGems と Bundler についてRubyGems と Bundler について
RubyGems と Bundler について
 
AWSコストの事業部別コスト配分について
AWSコストの事業部別コスト配分についてAWSコストの事業部別コスト配分について
AWSコストの事業部別コスト配分について
 
Pry による repl 駆動開発について
Pry による repl 駆動開発についてPry による repl 駆動開発について
Pry による repl 駆動開発について
 
Module での名前解決について
Module での名前解決についてModule での名前解決について
Module での名前解決について
 

Recently uploaded

2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦Sadao Tokuyama
 

Recently uploaded (12)

What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
 

ENECHANGE社での Scout APM 利用事例

  • 1. ENECHANGE 社での Scout APM 利用事例について 2020/01/16 大手町.rb #24
  • 2. 大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」 1自己紹介 Tomoya Kawanishi a.k.a. @cuzic エネチェンジ株式会社 チーフエンジニア 電力会社、ガス会社を切り替えるなら、エネチェンジ経由で! 一般家庭も!法人も! Ruby関西の中の人 発表者として登壇くださる方、あとで声かけください。 第89回 Ruby関西勉強会 2月8日(土) 大手町.rb の中の人 隔月で 大手町.rb の開催を予定 東京駅、各線大手町駅から直結! Ruby をもっとできるようになりたい方がメインターゲット
  • 3. 大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」 2今日のテーマ 今日は Scout APM 社がゲスト(スポンサー) • ENECHANGE での Scout APM 利用事例を紹介します
  • 4. 大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」 3Scout APM 導入時の状況 2019年10~12月 四半期、パフォーマンス向上に取り組む • 導入前の状況 • エンジニアの増員 • 開発・動作確認にも支障が出るレベルで遅い場面があった • 多くのエンジニアが四半期の目標として 性能改善を設定 • ENECHANGE では目標設定はボトムアップ型 • 導入時 • 性能改善のため具体的に何をしたらいいか、相談される • stackprof、bullet、 rack-mini-profiler を推薦 • とっつきにくく、操作に習熟するのに時間がかかる • ほかの件もあり、1週間ほどムダに過ぎる
  • 5. 大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」 4Scout APM の検証用アカウントを申請 Scout APM の検証を導入 • 性能計測・性能向上についてディスカッション • RubyKaigi で Scout APM の営業と話したことを思い出す • そのとき2週間の検証用アカウントをもらうが、何もせず放置 • 強い心で、 Scout APM に連絡 • 検証用アカウント ゲット! • メールを送ったら、すんなり検証用アカウントをもらえた。 • 利用期間は2週間
  • 6. 大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」 Scout APM を利用し、高速化を実施 5 2週間しか、検証用アカウントが使えない! 検証期間、集中的に高速化に取り組み、多数の PR を作成!
  • 7. 大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」 Scout APM を利用した N+1 問題の解決 6 N+1 のタグで、N+1 問題をカンタンに発見できる!
  • 8. 大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」 見つけにくい不具合の発見・解決 7 return Rails.cache.read(cache_key) if Rails.cache.read(cache_key) return Rails.cache.read(cache_key) if Rails.cache.exist?(cache_key) 特定条件で非常に遅くなる不具合があった。 低確率で発生する不具合で非常に気づきにくい事象だった。 Scout APM を本番環境に導入することで、発見、解決に成功した。
  • 9. 大手町.rb #24 「ENECHANGE社での Scout APM 利用事例について」 おわりに 今日は Scout APM の ENECHANGE での利用事例を紹介し ました。 N+1 問題の改善、低確率で発生する性能問題の解決に とても役立ちました。 今日の軽食(ピザ)は、 Scout APM のスポンサーで提供 されています! • Scout APM は軽食スポンサーとして配慮していますが、 今日話した内容はすべて事実で、脚色等はありません。 8