非互換の gem

問題

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 を捕捉しないことを許容する。

 

さらに詳しい情報

追加のドキュメントリソースは次のとおりです。