重要
メジャー バージョン アップデート:このバージョンの Ruby エージェントは SemVer メジャー アップデートであり、重大な変更が含まれています。メジャー バージョンでは、メンテナーの規定によりサポート終了となった言語ランタイムのサポートが廃止されることがあります。さらに、メジャー バージョンでは、特定の計装のサポートが終了し、削除される場合があります。 これらの変更の詳細については、ここにある移行ガイドを参照してください。
重要
最新のエージェント バージョンが利用可能になったらすぐに更新することをお勧めします。最新バージョンにアップグレードできない場合は、エージェントを 90 日以内のバージョンに更新してください。エージェントを最新の状態に保つ方法の詳細については、こちらをご覧ください。
エージェントのリリースとサポート日については、New Relic Ruby エージェントのEOL ポリシーを参照してください。
v10.0.0
重大な変更: Ruby 2.4 および 2.5 のサポートを削除
Ruby バージョン 2.4 および 2.5 のサポートは削除されました。新しい最低限必要な Ruby バージョンは 2.6 になりました。PR#3314
重大な変更: クロスアプリケーショントレース (CAT) の削除
以前は、クロスアプリケーション トレーシング (CAT) が非推奨となり、ディストリビューティッド(分散)トレーシングが使用されました。 CAT 機能は削除されました。設定オプション
cross_application_tracer.enabledは削除されました。 パブリック API メソッドNewRelic::Agent::External.process_request_metadata、NewRelic::Agent::External.get_response_metadata、NewRelic::Agent::Transaction::ExternalRequestSegment#process_response_metadata、NewRelic::Agent::Transaction::ExternalRequestSegment#get_request_metadata、およびNewRelic::Agent::Transaction::ExternalRequestSegment#read_response_headersも削除されました。PR#3333重大な変更: ActiveJob メトリクスとセグメントの名前を変更する
ActiveJob メトリクスが更新され、より具体的なレポートを作成するためにジョブのクラス名が含まれるようになりました。 これは重大な変更であり、カスタムダッシュボードまたはアラートの更新が必要になる場合があります。 PR#3370 PR#3320
- 古い形式:
Ruby/ActiveJob/<QueueName>/<Method> - 新しいフォーマット:
Ruby/ActiveJob/<QueueName>/<ClassName>/<Method>
さらに、アクティブ ジョブのキュー登録アクション用に作成されたセグメントにジョブ クラスが含まれるようになりました。
- 古い形式:
ActiveJob/<QueueAdapter>/Queue/<Event>/Named/<QueueName> - 新しいフォーマット:
ActiveJob/<QueueAdapter>/Queue/<Event>/Named/<QueueName>/<ClassName>
- 古い形式:
変更点:
bin/newrelicコマンドの名前を次のように変更しますbin/newrelic_rpmエージェントの CLI の実行可能ファイルの名前が
bin/newrelicからbin/newrelic_rpmに変更されました。この変更により、スタンドアロンの New Relic CLI ツールとの名前の競合が解決されます。PR#3323変更点:
newrelic deploymentsCLI コマンドを削除します非推奨の
newrelic deploymentsCLI コマンドは削除されました。New Relicの変更とデプロイメントを追跡するには、利用可能なオプションのリストについては、変更追跡 (変更追跡機能)のガイドを参照してください。 PR#3299重大な変更: NewRelic::エージェント::SqlSampler#notice_sql メソッドを削除
代わりに、ユーザーは
NewRelic::Agent::Datastores.notice_sqlを呼び出す必要があります。PR#3338重大な変更: さまざまな NewRelic::エージェント::Datastores API から未使用の引数を削除
NewRelic::Agent::Datastoresクラスの次の API からメソッド引数が削除されました:NewRelic::Agent::Datastores.notice_sqlには、以前は 3 つの位置引数query、scoped_metric、elapsedがありました。現在はqueryのみになっています。NewRelic::Agent::Datastores.notice_statement、以前は 2 つの位置引数queryとelapsedがありました。現在はqueryのみになっています。NewRelic::Agent::Datastores.wrapプロセスが必要です。以前は、プロシージャは、yield の結果、最も具体的なスコープのメトリック名、および呼び出しの経過時間という 3 つの引数を受け取りました。 今では、yield の結果のみを受け取ります。
削除された引数の値は、呼び出し時の現在のセグメントから導出されます。PR#3347
重大な変更: 実験的機能の設定可能なセキュリティ ポリシー (CSP) を削除します。
実験的機能である設定可能なセキュリティ ポリシー (CSP) はサポートされなくなり、削除されました。 PR#3292
重大な変更: Puma バージョン '<' 3.9.0 のサポートを削除します
現在サポートされている Puma の最小バージョンは 3.9.0 以上です。PR#3326
重大な変更: 設定の検証と強制実行の改善
係数設定に提供された値を強制および検証するために使用される内部機能は、よりパフォーマンスが向上し、より正確になりました。
- nil がサポートされていない設定の設定値として指定された場合、警告メッセージが newrelic_agent.log ファイルに記録されるようになりました。
- フロート設定タイプには整数値が許可されます
- フロート値は整数設定型で許可されます
- 無効な入力値を置き換えるデフォルト値が見つかると、致命的な中断が防止されますPR#3341
重大な変更: ディストリビューティッド(分散)トレーシング リモート親サンプラーの「default」オプションを「adaptive」に置き換えます。
以前は、
distributed_tracing.sampler.remote_parent_sampledとdistributed_tracing.sampler.remote_parent_not_sampledデフォルト オプションはdefaultであり、既存のアダプティブ サンプラーが使用されていました。defaultオプションの名前がadaptiveに変更されました。PR#3363機能:
logger依存関係として追加継続的なログ機能と Ruby 4.0.0 以降のバージョンのサポートを確保するために、
loggergem がエージェントの依存関係としてリストされるようになりました。PR#3293機能: Active Support 通知許可リストの設定オプションを追加
新しい設定オプション
instrumentation.active_support_notifications.active_support_events使用すると、ユーザーはエージェントが購読するアクティブ サポート通知イベント名の許可リストを定義できます。 デフォルトでは、エージェントはすべてのActive Support: CachingおよびActive Support: Messagesイベントをサブスクライブします。PR#3327機能: Ruby の組み込み Gzip 圧縮を使用する
エージェントは、以前のカスタム実装に代わって、Ruby 標準ライブラリの組み込み
Zlib.gzipメソッドを圧縮に使用するようになりました。PR#3332機能:
NewRelic::Agent#record_custom_eventAPI の引数検証を追加無効な
event_typeが指定された場合、NewRelic::Agent#record_custom_eventAPI はArgumentErrorを発生させるようになりました。有効なイベント タイプは、英数字、アンダースコア (_)、コロン (:)、またはスペース () のみで構成されている必要があります。PR#3319機能: ルートサンプリング設定オプションを追加
distributed_tracing.sampler.rootを使用して、現在のサービス内で生成されたトレースのサンプリング動作を構成できるようになりました。PR#3330利用できるモードは 4 つあります。
モード 説明 adaptive既存の適応サンプラーアルゴリズムを使用する always_offルートトレースの0%をサンプリング済みとしてマークします always_onルートトレースの100%をサンプリング済みとしてマークします trace_id_ratio_baseddistributed_tracing.sampler.root.trace_id_ratio_based.ratioに設定された比率に基づいてトレースをサンプリングします。比率は 0.0 ~ 1.0 のフロートでなければなりません機能: トレース ID 比率ベースのサンプリング オプションを追加
エージェントは、 OpenTelemetry ID Ratio Based サンプラー アルゴリズムを使用してトレースをサンプリングできるようになりました。 PR#3330トレース ID に基づいて 0.0 ~ 1.0 の確率でトレースをサンプリングします。
このオプションを使用するには、まずディストリビューティッド(分散)トレーシング サンプラー設定を
trace_id_ratio_basedに設定し、次に対応するdistributed_tracing.sampler.*.trace_id_ratio_based.ratioサンプラーを 0.0 ~ 1.0 のフロートに設定する必要があります。例えば:
distributed_tracing.sampler.remote_parent_sampled: 'trace_id_ratio_based'distributed_tracing.sampler.remote_parent_sampled.trace_id_ratio_based.ratio': 0.5この設定では、リモートの親がサンプリングされるすべてのトレースについて、トレースの約 50% がサンプリングされます。
このオプションは以下で利用可能です:
distributed_tracing.sampler.rootdistributed_tracing.sampler.remote_parent_sampleddistributed_tracing.sampler.remote_parent_not_sampled
機能: エンティティ GUID をAgent Controlヘルス チェック ファイルに追加します
Agent Control環境内でエージェントが開始されると、各プロセスの構成されたファイルの場所にヘルス チェック ファイルが作成されます。 このファイルには、利用可能な場合、エージェントに関連するエンティティの GUID が含まれるようになりました。PR#3371
バグ修正: GCP 使用率検出における
NoMethodErrorを解決しました。GCP メタデータ検出ロジックは、
nilまたは予期しない値を適切に処理し、サービス初期化のクラッシュを防ぐようになりました。PR#3388