SQLクエリのコメント機能により、アプリケーションとデータベースのパフォーマンスをシームレスに関連付けることができます。このメカニズムにより、New Relic Distribution of OpenTelemetry(NRDOT)データベースレシーバーは、特定のデータベース負荷、スロークエリ、またはブロッキングイベントの原因となっているサービスを正確に特定できるようになります。
重要
New Relicは、アプリケーションのデータベース接続アドレスとポートを、データベース監視エージェントの接続アドレスとポートと照合することで、New Relic アプリケーションパフォーマンス監視(New Relic APM)とデータベースエンティティをリンクします。両側がまったく同じアドレスとポートを報告する場合、このリンクは確実に機能します。ただし、アプリケーションがロードバランサーやプロキシを経由してトラフィックをルーティングする場合、または2つのコンポーネントが異なるアドレス形式(IPアドレスとドメイン名など)を使用する場合、自動リンクが失敗する可能性があります。
前提条件
- Javaエージェント:バージョン
9.1.0以降。 - .NETエージェント:バージョン
10.52.0以降。
JavaエージェントのAPM-DB相関を有効にする
この相関関係を有効にするには、Javaエージェント設定ファイル(newrelic.yml)のtransaction_tracerセクションにsql_metadata_commentsプロパティを追加します。詳細については、Javaエージェント設定ドキュメントを参照してください。
transaction_tracer: sql_metadata_comments: nr_service_guid.NETエージェントのAPM-DB相関関係を有効にする
この相関関係を有効にするには、.NETエージェント設定ファイル (newrelic.config) のtransactionTracerセクションにsqlMetadataCommentsプロパティを追加します。詳細については、.NETエージェント設定ドキュメントを参照してください。
使い方
アプリケーションがデータベースに文章を送信すると、 APMエージェントはAPM GUID をコメントとして SQL テキストの先頭に自動的に追加します。 この一般的な業界慣行は、SQL ステートメントの実行ロジックには影響しません。
- コメントの先頭に付加: APMエージェントは、発信SQLの先頭にコメント文字列を付加します(例:
/* nr_service_guid="MTE2MDAzMTl8QVBNfEFQUExJ" */ SELECT * FROM orders...)。 - 実行: データベースは通常どおりクエリを実行します。コメントはデータベースの内部パフォーマンス スキーマ (
sys.dm_exec_requestsやv$sessionなど) に保存されます。 - 抽出: データベース レシーバーはこれらのクエリ (アクティブ、低速、またはブロッキング) を取得します。
- 強化: 受信者はコメントを解析し、
nr_service_guidを抽出し、それをディメンションとしてデータベース メトリクスに添付します。
サービスタグ付けのメリット
サービス メタデータを先頭に追加すると、データベース エコシステムの高精度な可視性が得られます。
- サービスレベルの帰属: データベースのCPUやメモリの急増の原因となっているマイクロサービスを即座に確認
- 詳細なスロークエリ分析:
client_nameでスロークエリログをフィルタリングして、データベースのボトルネックが特定のアプリケーションバージョンに限定されているかどうかを把握します。 - ブロッキングとデッドロックの解決: ブロッキングクエリの「所有者」を迅速に特定し、チーム間のトラブルシューティングを迅速化します。
セキュリティとパフォーマンスへの影響
このメカニズムは、データベース操作から見えないように設計されています:
機能 | 衝撃の詳細 |
|---|---|
実行ロジック | データベースエンジンのオプティマイザはSQLコメントを無視します |
データベースのオーバーヘッド | 短い文字列(通常50文字未満)を追加しても、ネットワーク帯域幅やメモリへの影響はごくわずかです。 |
データプライバシー | サービス GUID のみが挿入されます。コメントには機密性の高いアプリケーションデータやユーザーコンテキストは含まれません |
秘密管理
NRDOT Collector設定では、機密の資格情報 (データベース パスワードなど) を管理するための 2 つの安全な方法を使用できます。 インフラストラクチャとセキュリティ ポリシーに最適な方法を選択してください。