オープンソースの OpenTelemetry と互換性のある ARMS エージェント V4.x は、OpenTelemetry Java エージェントに基づいて構築されました。Java エージェントのすべての機能は保持されていますが、一部の機能にわずかな変更が加えられています。このトピックでは、ARMS エージェント V4.x の変更点と影響、および監視データ量の増加について説明します。
変更点と影響
デフォルトでは、Spring 管理 Bean のメソッドインストルメンテーションは無効になっており、コントローラーのメソッドのみがインストルメントされます。
影響:
更新後、@Service アノテーションと @Component アノテーションでアノテーションが付けられたクラスメソッドは、トレースのメソッドスタックに表示されません。
@Service アノテーションと @Component アノテーションでアノテーションが付けられたクラスメソッドでスローされた例外は監視できません。
スレッドプールと接続プール監視に関連するメトリクス名が変更されました。詳細については、スレッドプールと接続プール監視 を参照してください。
影響:
アプリケーション監視でスレッドプール監視のアラートルールを設定している場合は、ARMS エージェントの更新後にアラートルールを再設定する必要があります。
アプリケーション監視アラートルールの作成ページで、メトリクスタイプをThread_Pool_Version_2 に設定し、新しいアラートルールを作成します。
スレッドプールメトリクスに基づいてカスタムダッシュボードが設定されている場合、ARMS エージェントの更新後にダッシュボードデータは空になります。
メトリクス量の増加により、従量課金制の料金が増加します。
メッセージ遅延を監視するためのメトリクスの名前が arms_mq_delay_seconds に変更されました。
影響: メトリクスに基づいてカスタムダッシュボードが設定されている場合、ARMS エージェントの更新後にダッシュボードデータは空になります。
非同期呼び出しでのトレースコンテキストの自動伝播では、パッケージ名を設定する必要はありません。
RabbitMQ ではカスタムコンシューマーを手動で設定する必要はありません。Kafka ではカスタム消費メソッドを手動で設定する必要はありません。
トレース ID は、
MDC.get("EagleEye-TraceID")
メソッドを使用して取得できなくなりましたが、トレース ID とログの関連付けは影響を受けません。影響:
MDC.get("EagleEye-TraceID")
メソッドを使用して取得されたトレース ID は空になります。エントリ呼び出しがないシナリオでは、内部呼び出しに対してスパンが生成されます。
影響: スパン数の増加により、従量課金制の料金が増加します。
分位統計が Prometheus の Summary アルゴリズムから、線形補間に基づくバケット分布方式に変更されました。
影響: 実際の期間分布とバケット化が大きく異なる場合、分位メトリクスデータは不正確になります。
スパンステータスは、オープンソースの OpenTelemetry と一致します。4xx および 5xx ステータスコードの HTTP リクエストはエラー状態になります。その他のステータスコードの HTTP リクエストは未設定状態になりますが、V4.x より前の ARMS エージェントでは、これらのリクエストは OK 状態であると見なされていました。
ARMS エージェントを V4.x に更新した後、トレース ID は 32 文字で構成されている必要があるため、古いブラウザ監視機能との互換性がなくなります。新しいリアルユーザーモニタリング機能を統合することをお勧めします。
ARMS エージェント V4.1.12 以前は、JDK 21 で導入された仮想スレッドと互換性がありません。完全な互換性は、ARMS エージェント V4.3.x で実現されます。ビジネスで仮想スレッドに依存している場合は、代わりに ARMS エージェント V3.x を使用してください。
監視データ量の増加
ARMS エージェントを V3.x から V4.x に更新した後、以下の場合にメトリクスデータ量が増加する可能性があります。
エントリ呼び出しがないシナリオで内部呼び出しがスパンを生成するため、スパンデータとメトリクスデータの量が増加します。
スレッドプールはユーザー定義できるため、スレッドプールメトリクスデータの量が増加します。
より多くの接続プールタイプがサポートされているため、接続プールメトリクスデータの量が増加します。
ARMS エージェント V4.x は自動伝播をサポートしているため、アップストリームおよびダウンストリーム呼び出しが非同期の場合、インターフェースのアップストリームおよびダウンストリームメトリクスデータの量が増加します。
Lettuce などのさまざまなプラグインのサポートが拡張されているため、メトリクスデータの量が増加します。