중요
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Ruby エージェントのEOL ポリシーを参照してください。
v10.8.0
機能:Google Cloud Runのワーカープールとジョブの一意のホスト名を報告します
PR#3609で追加されたCloud Runのホスト名サポートは、Cloud Run Servicesによって設定される環境変数である
K_REVISIONを通じてのみCloud Runを検出していました。エージェントはCLOUD_RUN_REVISION(ワーカープール)とCLOUD_RUN_EXECUTION(ジョブ)も認識するようになったため、utilization.gcp_cloud_run.use_instance_as_hostはこれら3つのリソースタイプすべてに適用されるようになりました。utilization.gcp_cloud_run.include_revision_in_hostがtrueの場合、ホスト名はこれらの変数のうち存在する方から構築されます — たとえば、ジョブの場合は{CLOUD_RUN_EXECUTION}-{instance id}です。Issue#3651 PR#3652機能:
browser_monitoring.version設定オプションを追加顧客は、新しい
browser_monitoring.version設定オプションを設定することで、New Relicが挿入する正確なBrowserエージェントローダーのバージョンを固定できるようになりました。現在利用可能でサポートされているバージョンについては、BrowserエージェントのEOLポリシーをご覧ください。PR#3663機能:バックグラウンドジョブライブラリにspan.kindを追加
これで、バックグラウンドジョブライブラリの
produceおよびconsumeの操作にspan.kind属性が追加されます。これには、ActiveJob、Sidekiq、Resque、およびDelayedJobが含まれます。PR#3636バグ修正:prependモードで、DelayedJobの計装がすべてのワーカーで再インストールされなくなりました
DelayedJobの計装がprepend(デフォルト)を介してインストールされている場合、同じプロセス内で複数の
Delayed::Workerを作成すると、エージェントは「Installing DelayedJob instrumentation」をログに記録し、追加のワーカーごとにプラグインを再度初期化していました。これは無害ですがノイズが多いものでした;現在は、既存のチェーン計装の動作に合わせて、プロセスごとに1回だけ実行されるようになりました。PR#3654バグ修正:許可リストに登録された設定値は大文字と小文字を区別しなくなりました。
以前は、許可リストに登録された設定オプションでは大文字と小文字の完全な一致が必要だったため、予期しない大文字と小文字の組み合わせの値 — たとえば
slow_sql.record_sqlに対するOBFUSCATEDやObFuScAtEdなど — は、暗黙のうちにデフォルトにフォールバックしていました。許可リストに対して検証される設定オプションは、大文字と小文字を問わず値に一致するようになったため、どちらもobfuscatedと同じように扱われます。Issue#3613 PR#3645バグ修正:Pumaが遅延読み込みされた場合にPumaの計装が機能するようになりました
gem "puma", require: falseでは、エージェントの依存関係チェックが実行されたときにPumaがまだロードされていなかったため、Pumaの計装のインストールに失敗していました。エージェントはPuma::RackHandlerをPumaが存在する証拠として認識するようになり、この問題が修正されました。Issue#3641 PR#3650
중요
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Ruby エージェントのEOL ポリシーを参照してください。
v10.7.1
バグ修正: Dalli 5.1.0でのマルチキー操作におけるArgumentErrorを解決しました。
この修正により、マルチ操作およびパイプライン操作においてオプションのリクエストオプション引数を受け入れて転送するように、Dalliの計装が更新されます。修正を提供していただいた@dbackeusに感謝します! PR#3642
バグ修正: セグメントの開始に失敗したときに、Async::HTTP requestsが
NoMethodErrorを発生させなくなりました。エージェントが
Async::HTTPリクエストのセグメントを作成中に内部エラーに遭遇した場合、計装はその欠落したセグメントをそのまま使用し、NoMethodErrorを発生させる可能性がありました。この問題は修正されました。@ydahに感謝します。PR#3640
중요
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Ruby エージェントのEOL ポリシーを参照してください。
v10.7.0
機能: transaction_tracer.cap_segment_artifactsを追加設定オプション
多数のセグメントを持つ長時間実行されるトランザクションは、トランザクションの存続期間中、メモリ使用量を継続的に増加させる可能性があります。エージェントは、オプトインの
transaction_tracer.cap_segment_artifacts設定オプションを提供するようになりました(デフォルトはfalseです)。有効にすると、transaction_tracer.limit_segmentsに達した時点で、エージェントはそのトランザクションで後から作成されたセグメントの排他的時間の記録も停止します。これにより、トランザクションのタイミングデータの精度は低下しますが、メモリ使用量は削減されます。PR#3615機能: Puma server-statisticsの計装を追加
エージェントは、Pumaのクラスタ全体のサーバー統計をサンプリングし、
backlog、running、pool_capacity、max_threads、およびrequests_countを含むRuby/Puma/*タイムスライスメトリクスとして報告するようになりました。統計は、シングルモード、およびpreload_app!が有効な場合はクラスタモードでサンプリングされます。この計装はデフォルトで無効になっています。有効にするには、disable_puma_instrumentationをfalseに設定します。有効にすると、エージェントはこれらのメトリクスを配信するためにPumaマスタープロセスでレポートスレッドを開始し、Pumaワーカーと並行して追加のエージェント接続を実行します。サンプリング間隔は、新しいpuma.sample_rate設定(デフォルトは60秒)で設定可能です。Puma 6.6以降が必要です。詳細については、ドキュメントをご覧ください。PR#3578機能:Google Cloud Runインスタンスの一意のホスト名を報告する
エージェントはCloud Runを検出し、個々のインスタンスを区別できるように、GCPインスタンスIDをホスト名として報告するようになりました。この変更前は、すべてのGoogle Cloud Runのホスト名は
localhostでした。この機能は、新しいutilization.gcp_cloud_run.use_instance_as_host設定オプション(デフォルトはtrue)によって制御されます。ホスト名を代わりに{K_REVISION}-{instance id}として報告するには、utilization.gcp_cloud_run.include_revision_in_host(デフォルトはfalse)をtrueに設定します。ここで、K_REVISIONはCloud Runのリビジョン名です。Issue#3295 PR#3609バグ修正: transaction_tracer.limit_segmentsの後にスローSQLが記録されなくなりました超過
トランザクションが
transaction_tracer.limit_segmentsを超えた後でも、その後に作成されたデータストアセグメントで引き続きスローSQLが記録される可能性がありました。制限に達した後に作成されたセグメントについて、エージェントはスローSQLの記録を停止するようになりました。PR#3615バグ修正:マルチデータベースのRailsアプリ(Rails>=7.2)で、実行計画が誤ったデータベースをターゲットにする可能性がありました。
Rails 7.2+では、エージェントは専用の接続ではなく、アプリのデフォルト/共有プールからの接続を使用して実行計画を収集していました。これは主にマルチデータベースアプリに影響を与えました。実行計画が誤ったデータベースに対して生成される可能性があり、実行計画が失敗すると共有接続が不正な状態のままになり、無関係なrequestsに影響を与える可能性がありました。エージェントは、Rails 7.2以前と同様に、実行計画に独自の専用接続を使用するようになり、実行計画の試行が失敗するたびにその接続をリセットまたは破棄するため、不正な接続が再利用されることはありません。Issue#3610 PR#3612
バグ修正: ブラウザ監視の計装が以下で失敗しなくなりました
FrozenError応答本文の最初のフラグメントがフリーズされた
Stringであり、複数のフラグメントが存在する場合、ブラウザの計装がFrozenErrorにヒットし、ブラウザのタイミングヘッダーが挿入されませんでした。これは、コンパイルされた文字列をより多くフリーズするようになったERB6.0.3+で発生し始めました。この問題は修正されました。Issue#3624 PR#3625バグ修正:すべての文字種を許可するようにブール値の設定値を正規化
バージョン9.xでは、エージェントは"FALSE"のような大文字のブール値や、"True"のような大文字と小文字が混在する値を受け入れていました。バージョン10.0.0にはPR#3341が含まれており、これにより大文字と小文字を区別しない要件が意図せず削除されていました。これにより、すべて小文字以外の文字種を使用していたユーザーは、設定オプションがデフォルトにフォールバックしていました。現在、エージェントは再び大文字と小文字を区別しないチェックを使用するようになりました。Issue#3632 PR#3633
중요
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Ruby エージェントのEOL ポリシーを参照してください。
v10.6.0
機能:HybridエージェントでSpanLinkイベントがサポートされるようになりました
OpenTelemetry APIによって作成されたスパンに、スパンリンクを関連付けることができるようになりました。リンクは、スパンの開始時に
links引数に渡すか、OpenTelemetry::Trace::Span#add_linkAPIを呼び出すことで追加できます。PR#3586機能:HybridエージェントでSpanEventイベントがサポートされるようになりました
OpenTelemetry APIによって作成されたスパンに、
OpenTelemetry::Trace::Span#add_eventAPIを介してSpanEventイベントを関連付けることができるようになりました。SpanEventイベントは、スパン上のタイムスタンプ付きアノテーションをキャプチャし、親スパンと一緒にNew Relicに送信されます。PR#3587機能:すべてのHybridエージェントスパンにスパンの種類を設定
以前は、外部リクエストセグメントまたはデータストアセグメントに変換されたOpenTelemetryスパンのみが、スパンの種類を属性として追加していました。現在、エージェントは、値が利用可能なすべてのOpenTelemetryスパンにスパンの種類を追加します。PR#3589
機能: OpenTelemetry::Tracer#start_root_spanのサポートを追加
スパンの種類が
:serverまたは:consumerである場合、OpenTelemetry::Tracer#start_root_spanAPIを使用して、指定されたスパンのトランザクションを強制的に開始できるようになりました。その他のスパンの種類については、何もしません。このメソッドは、バックグラウンドジョブの計装で最も一般的に使用されます。PR#3588バグ修正:
instrumentation.rails_event_logger: falseが計装を無効にしない問題を修正以前は、
instrumentation.rails_event_loggerをfalseに設定しても、期待どおりにRails.eventの計装が無効になりませんでした;Railsの起動中に引き続きインストールされていました。現在は修正されています。PR#3564バグ修正:計装設定キーのブール値のような値を
disabledに正規化以前は、
disabledのみがinstrumentation.*設定キーをオフにしていました。現在は、false、no、またはoffなどのブール値のような値もdisabledに解決され、計装がインストールされるのを防ぎます。PR#3579バグ修正:ライブラリごとのロギングサポートアビリティメトリクスに、各ライブラリの計装状態が反映されるようになりました
以前は、
Supportability/Logging/Ruby/{library}/{enabled|disabled}メトリクスは各ライブラリの実際の状態ではなく、すべてのライブラリに対してグローバルなapplication_logging.enabled設定の値を報告していました。その結果、特定のライブラリのロギング計装を無効にしていた場合や、そのライブラリのgemをまったく使用していなかった場合でも、メトリクスはenabledを報告していました。現在、各ライブラリのメトリクスは、自身のロギング計装が有効になっているかどうかを反映しています。PR#3571
중요
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Ruby エージェントのEOL ポリシーを参照してください。
v10.5.0
機能:Dalli 5.0のサポートを追加し、メタプロトコルの計装を修正
エージェントは、メタプロトコルのみを使用するために
Dalli::Protocol::Binaryを削除したDalli 5.0+をサポートするようになりました。Dalli 3.2.0以降の場合、pipelined_getの計装は、Dalli::Protocol::BinaryではなくDalli::Protocol::Base(メソッドが定義されている場所)を正しくターゲットにするようになり、メタプロトコルを使用する際にget_multiの呼び出しが計装されないというギャップが修正されました。Dalli 5.0+では、エージェントは、Dalliの単一サーバーのget_multi最適化によって呼び出されるDalli::Protocol::Meta#read_multi_reqを追加でインストゥルメントします。PR#3541機能:active_record_use_table_name設定オプションを追加
新しい設定オプション
active_record_use_table_nameは、メトリクス、スパン、およびトランザクショントレースセグメントの名前を付ける際に、Active Recordモデルのクラス名ではなくテーブル名を使用します。これは、単一テーブル継承を使用するアプリケーションでカーディナリティを削減するのに特に役立ちます。既存の動作を維持するため、このオプションはデフォルトでfalseになります。PR#3540機能:エージェントログ内のライセンスキーを部分的に秘匿化
以前は、エージェントはエージェントログ内のNew Relicライセンスキーを完全に秘匿化していました。これで、最初の10文字が表示され、残りは
*に置き換えられます。これにより、キーのシークレット部分を公開することなく、リージョン関連の問題をトラブルシューティングするのに十分な情報が保持されます。PR#3547バグ修正:Semantic ロガー計装の非互換性を修正
rails_semantic_logger以前は、
rails_semantic_loggerの使用中に例外がActionDispatch::DebugExceptionsに到達すると、ArgumentErrorが発生していました。これは修正されました。ご報告いただいた @jdelStrother に感謝します! PR#3548