このガイドでは、Ruby エージェントの 9.x シリーズと 10.x シリーズの間の主な変更点と、移行を成功させる方法について説明します。
概要
v10.0 の主な変更点は次のとおりです。
- Ruby 2.4および2.5のサポートを削除しました
- クロスアプリケーショントレーシング(CAT)と関連APIを削除しました
- エージェント経由のデプロイメント記録のサポートを削除しました
NewRelic::Agent::SqlSampler#notice_sqlを削除し、NewRelic::Agent::DatastoresAPI を簡素化しました- Puma バージョン '<' 3.9.0 のサポートを削除しました
- 実験的な機能設定可能なセキュリティ ポリシー (CSP) を削除しました
- ActiveJob メトリクスとセグメントの名前が変更されました
bin/newrelicコマンドの名前をbin/newrelic_rpm
詳細については、 10.0 のマイルストーンを参照してください。
これらの重大な変更に加えて、他のいくつかの改善も行われています。詳細についてはCHANGELOGを参照してください。
Ruby 2.4および2.5のサポートを削除しました
Ruby 2.4 および 2.5 は、Ruby エージェントではサポートされなくなりました。最新の Ruby エージェント バージョンを引き続き使用するには、Ruby 2.6.0 以上に更新してください。
New Relic は、Ruby 言語開発チームによって公式にサポートされるメンテナンス期間が終了した後も、特定の古い Ruby バージョンのサポートを継続します。たとえば、2026 年 3 月 31 日時点で Ruby チームがサポートする最も古い Ruby バージョンは 3.3 になりますが、Ruby エージェント バージョン 10.0 では Ruby バージョン 2.6 以降が引き続きサポートされます。Ruby バージョンに対する公式 Ruby チームのサポートの詳細については、 「Ruby メンテナンス ブランチ」を参照してください。
クロスアプリケーショントレース(CAT)と関連APIを削除しました
クロスアプリケーション トレーシング (CAT)は、ディストリビューティッド(分散)トレーシングに代わって削除されました。 CAT は、 APMモニター アプリケーション間のトランザクションをリンクするためにNew Relic固有のヘッダーを使用しましたが、ディストリビューティッド(分散)トレーシングは W3Ctrace コンテキストを採用しました。 ディストリビューティッド(分散)トレースを有効にするには、設定オプションdistributed_tracing.enabledをtrueに設定します。
distributed_tracing.enabled: true設定オプションcross_application_tracer.enabledは、次のパブリックAPIメソッドとともに削除されました:
| CAT APIを削除しました | ディストリビューティッド(分散)トレーシング交換 | コンテクスト |
|---|---|---|
NewRelic::Agent::External.process_request_metadata | NewRelic::Agent::DistributedTracing.accept_distributed_trace_headers | 受信リクエストから W3Ctracecontext ヘッダーを読み取り、サービスを上流のトレースにリンクします。 |
NewRelic::Agent::External.get_response_metadata | 同等のものは必要ありません | 応答メタデータは廃止されており、リンクはリクエスト内の W3C ヘッダーによって処理されます。 |
NewRelic::Agent::Transaction::ExternalRequestSegment#process_response_metadata | 同等のものは必要ありません | 応答ベースの処理は削除され、代わりにリクエスト ヘッダーの伝播が採用されます。 |
NewRelic::Agent::Transaction::ExternalRequestSegment#get_request_metadata | NewRelic::Agent::DistributedTracing.insert_distributed_trace_headers | W3Ct レースコンテキスト ヘッダーを作成し、送信要求ヘッダーに追加します。 |
NewRelic::Agent::Transaction::ExternalRequestSegment#read_response_headers | 同等のものは必要ありません | トレース リンクでは、応答ヘッダーを読み取る必要はありません。 |
ディストリビューティッド(分散)トレーシング API の使用について詳しくは、こちらをご覧ください。
エージェント経由のデプロイメント記録のサポートを削除しました
エージェントは、Capistrano レシピまたはnewrelic deployments CLI コマンドを使用してアプリケーションのデプロイメント情報を送信する機能をサポートしなくなりました。New Relicの変更とデプロイメントを追跡するには、利用可能なオプションのリストについては、変更追跡 (変更追跡機能)のガイドを参照してください。
NewRelic::Agent::SqlSampler#notice_sqlを削除して簡素化しました NewRelic::Agent::Datastores
NewRelic::エージェント::SqlSampler#notice_sql メソッドを削除しました
NewRelic::Agent::SqlSampler#notice_sqlメソッドは削除されました。SQL クエリを追跡するには、代わりにNewRelic::Agent::Datastores.notice_sqlメソッドを使用する必要があります。
さまざまなNewRelic::Agent::Datastores API から未使用の引数を削除しました
いくつかのNewRelic::Agent::Datastores API は、冗長な引数を削除することで簡素化されました。タイミング (elapsed) およびメトリクス スコープ情報は、現在のセグメントから自動的に取得されます。
次の API が更新されました:
| 古いAPI | 新しいAPI | 変化 |
|---|---|---|
NewRelic::Agent::Datastores.notice_sql(query, scoped_metric, elapsed) | NewRelic::Agent::Datastores.notice_sql(query) | scoped_metricおよびelapsed引数が削除されました。 |
NewRelic::Agent::Datastores.notice_statement(statement, elapsed) | NewRelic::Agent::Datastores.notice_statement(statement) | elapsed引数を削除しました。 |
NewRelic::Agent::Datastores.wrap(...) do \|result, scoped_metric, elapsed_time\| | NewRelic::Agent::Datastores.wrap(...) do \|result\| | コールバック ブロック引数からscoped_metricとelapsed_timeを削除しました。 |
Puma バージョン '<' のサポートを削除しました
現在サポートされている Puma の最小バージョンは 3.9.0 以上です。Puma を使用している場合は、エージェントをアップグレードする前にバージョン 3.9.0 以降にアップグレードしてください。
実験的な機能設定可能なセキュリティ ポリシー (CSP) を削除しました
実験的機能である設定可能なセキュリティ ポリシー (CSP) はサポートされなくなり、削除されました。 エージェントのデフォルトのセキュリティ設定により、APM データのセキュリティが自動的に確保されますが、高セキュリティ モードを使用して、New Relic が受信する情報をさらに制限できます。
ActiveJob メトリクスとセグメントの名前が変更されました
ActiveJob メトリックとセグメントが更新され、より具体的なレポートのためにジョブのクラス名が含まれるようになりました。 新しいフォーマットを反映するように、ActiveJob メトリクスとセグメントを書き込むすべてのカスタムダッシュボードとNRQLアラートを更新します。
古い形式:
"Ruby/ActiveJob/#{QueueName}/#{Method}" # metrics"ActiveJob/#{Adapter}/Queue/#{Event}/Named/#{JobQueueName}" # segments新しいフォーマット:
"Ruby/ActiveJob/#{QueueName}/#{JobClassName}/#{Method}" # metrics"ActiveJob/#{Adapter}/Queue/#{Event}/Named/#{JobQueueName}/#{JobClassName}" # segmentsbin/newrelicコマンドの名前を bin/newrelic_rpm
エージェントの CLI の実行可能ファイルの名前がbin/newrelicからbin/newrelic_rpmに変更されました。この変更により、スタンドアロンの New Relic CLI ツールとの名前の競合が解決されます。
古いコマンド:
$bin/newrelic install新しいコマンド:
$bin/newrelic_rpm install