• /
  • EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

特定の取引を無視する

New Relic for Ruby を使用すると、Rails、Roda、または Sinatra アプリケーション内の特定のリクエストに対してインストゥルメンテーションを選択的に無効にすることができます。

すべてのインストルメントをブロック

Rails コントローラ、Roda アプリケーション、または Sinatra アプリケーション内から引数なしでnewrelic_ignoreを呼び出し、そのコントローラまたはアプリケーションによって処理されるすべてのリクエストのインストルメンテーションを防ぎます。

newrelic_ignore

newrelic_ignoreを使用すると、エージェントはターゲット トランザクションのパフォーマンス データ (メトリクス、トランザクション追跡、イベント、追跡エラーなど) を記録できなくなり、トランザクションが全体的な Apdex スコアに寄与することも防止されます。

Railsで特定のアクションを無視する

Rails コントローラで特定のアクションのみを無視する場合は、 newrelic_ignore:onlyまたは:exceptオプションを使用できます。

たとえば、コントローラーのindexおよびshowアクションのみを無視するには、次を使用します。

newrelic_ignore :only => [:index, :show]

コントローラーexcept indexのすべてのアクションを無視するには:

newrelic_ignore :except => [:index]

ロダで特定のルートを無視する

Roda アプリケーションのrouteブロックの外側から Roda スタイルのルートをnewrelic_ignoreに渡すことにより、Roda アプリケーション内の特定のルートを無視します。詳細については、 「Roda: ルートの無視」を参照してください。

Sinatraで特定のルートを無視する

Sinatra アプリケーション内の特定のルートのみを無視する場合は、Sinatra アプリケーション内から Sinatra スタイルのルート定義をnewrelic_ignoreに渡すことができます。詳細については、シナトラ: ルートを無視するを参照してください。

Apdexのコントリビューションを無視する

コントローラ内のすべてのアクションが Apdex スコアに影響しないようにしたいが、他のパフォーマンス データが必要な場合は、 newrelic_ignore_apdexを使用します。

newrelic_ignore_apdex

Rails アプリケーションでは、 newrelic_ignore_apdex newrelic_ignoreと同じ:onlyおよび:exceptオプションをサポートします。Roda または Sinatra アプリケーションでは、特定のトランザクションを対象とする同じ Roda スタイルのルートまたはSinatra スタイルのルートを受け入れます。

ブラウザの不正操作をブロックする

newrelic_ignore_enduserを使用すると、エージェントがデータをキャプチャするために使用される JavaScript を自動的に挿入するのを防ぐことができます。 サーバー側のインストゥルメンテーションは影響を受けません。

コントローラ内のすべてのアクションに対してブラウザエージェントインジェクションを防ぐには、コントローラクラスに次のような呼び出しを追加します。

newrelic_ignore_enduser

Rails アプリケーションでは、 newrelic_ignore_enduser newrelic_ignoreと同じ:onlyおよび:exceptオプションをサポートします。Roda または Sinatra アプリケーションでは、特定のトランザクションを対象とする同じ Roda スタイルのルートまたはSinatra スタイルのルートを受け入れます。

動的にトランザクションを無視する

場合によっては、特定のトランザクションを無視するかどうかの判断を、リクエスト中のランタイムにしかわからない基準に基づいて行いたいこともあるでしょう。このような場合には、上記のような宣言型のメカニズムは適していません。Rubyエージェントのバージョン3.9.2からは、代わりに以下のAPIコール群をトランザクション内の任意の位置から使用することができます。

NewRelic::Agent.ignore_transaction
NewRelic::Agent.ignore_apdex
NewRelic::Agent.ignore_enduser

これらのメソッドはnewrelic_ignorenewrelic_ignore_apdex 、およびnewrelic_ignore_enduser呼び出しと同様の結果になりますが、クラス定義中ではなくリクエスト中に呼び出すことができます。

設定によりURLによるトランザクションを無視する

rules.ignore_url_regexes構成設定を使用して、URL によってトランザクションを無視できます。

rules:
ignore_url_regexes: ["secret", "^/admin"]

この構成では、設定されたパターンに一致するトランザクション イベントのみが報告されなくなります。トレース データなどのすべてのデータがトランザクションから報告されないようにする場合は、 newrelic_ignore*ファミリーのメソッドのいずれかを使用します。

正規表現は、デフォルトではいかなるタイプのアンカリングも含まないことに注意してください。secret/の正規表現は、'newrelic.com/secret/login'にマッチし、'newrelic.com/users/secretpanda'にもマッチします。anchored admin regexは、'newrelic.com/admin/praetorians'にマッチしますが、'newrelic.com/users/totally-real-admin'にはマッチしません。

必要に応じて、カンマで区切られた文字列で正規表現のリストを提供することもでき、環境変数で無視する正規表現を設定することができます。

bash
$
NEW_RELIC_RULES_IGNORE_URL_REGEXES="secret,^/admin"

いつものように、環境変数の設定が newrelic.yml の設定よりも優先されます。

トラブルシューティング

newrelic_ignore*ファミリーのメソッドは、Rails コントローラー クラス内、Roda アプリケーションのrouteブロック外 ( Rodaのサブクラス)、または Sinatra アプリケーション内 ( Sinatra::Baseのサブクラス) でのみ機能します。他のアプリケーションは、無視したい各リクエスト内から呼び出しのNewRelic::Agent.ignore_*ファミリを使用する必要があります。これは、どのようなコンテキストでも機能します。

Rails コントローラー、Roda アプリケーション、または Sinatra アプリケーション内からnewrelic_ignoreを使用しようとしたときにNoMethodErrorが発生した場合は、クラス定義内でnewrelic_ignoreを呼び出す前に、 newrelic_rpmが必須であることを確認してください。

Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.