問題
New Relic Ruby エージェントがお使いの Ruby gem では互換性がない。
対策
New Relicは、すべての gem と互換性があるように努めていますが、Rubyのエージェントと正常に動作しないことをいくつかがあります。これは、互換性のない宝石や既知の回避策について詳しく説明します。ここでは、互換性のない gem や既知の対策について説明します。
- db-charmer
- 問題: db-charmer gem はRails のコントローラにパッチを適用しているため、非互換となっています。
対策:
DbCharmer.enable_controller_magic!
が呼ばれる前に、New Relic が強制的をロードし、起動されるようにします。例えば、以下を config/application.rb に追加します。require 'newrelic_rpm' NewRelic::Agent.manual_start DbCharmer.enable_controller_magic!
- escape_utils
- 問題: escape_utils は、New Relic のページ読み込みタイミング機能 (リアルユーザー監視や RUM とも呼ばれる) の自動計測とは非互換です。escape_utils が Rack にモンキーパッチを当てているため、HTMLレスポンス全体がエスケープされます。
対策: 描画ページの代わりに HTML ソースが表示される場合は、以下のどちらかを選択してください。
- escape_utils gems を削除する
- ページ読み込みタイミングには、手動計測 を使う。
- right_http_connection
-
問題:
newrelic_rpm
の後に right_http_connection gem がロードされている場合は、それがNet::HTTP
クラスをパッチするため、New Relic の外部計測を失敗させます。対策:
newrelic_rpm
の前にright_http_connection
を置く。 - ar-octopus
- 問題: ar-octopus gem は、ActiveRecord の接続管理の仕組みを変更します。よって、長時間の実行を行うデータベースクエリの EXPLAIN PLAN を Ruby エージェントがキャプチャできなくなります。
対策: 既知の回避策 – ar-octopus gem を削除する。もしくは、使用し続けたい場合は、EXPLAIN PLAN を捕捉しないことを許容する。
さらに詳しい情報
追加のドキュメントリソースは次のとおりです。
- New Relic用 Ruby エージェント (互換性と要件)
- Ruby エージェントのインストール (Ruby gem の手続き)