1つのコレクターから複数のMSSQLインスタンスをモニターするようにNRDOT Collectorを設定できます。これは、異なるホストで実行されている複数のMSSQLインスタンスがあり、単一のNRDOT Collectorインスタンスを使用してそれらすべてからメトリクスを収集したい場合に役立ちます。
前提条件
MSSQLインスタンス用にNRDOTがインストールおよび設定されていること:
Windowsセルフホスト:
Windows RDS:
マルチレシーバー設定の追加
次の例では、マルチ・レシーバー設定を使用して2つのMSSQLインスタンスをモニターするようにNRDOT Collectorを設定する方法を示します。1番目のインスタンスnrsqlserver/1は、完全な設定を保持し、アンカーとして機能します;2番目のインスタンスnrsqlserver/2は、YAMLマージ・キーを通じてすべての共有設定を継承し、自身の接続の詳細のみを上書きします。追加のインスタンス用に、必要に応じてさらにレシーバーを追加できます。
receivers: # Base SQL Server instance: defines the anchor all others inherit from. nrsqlserver/1: &nrsqlserver-common username: "<YOUR_DB1_USERNAME>" password: "<YOUR_DB1_PASSWORD>" server: "<YOUR_SERVER_1>" port: 1433 collection_interval: 15s
metrics: sqlserver.database.count: enabled: true sqlserver.database.io: enabled: true sqlserver.database.latency: enabled: true sqlserver.database.operations: enabled: true sqlserver.database.tempdb.space: enabled: true sqlserver.database.tempdb.version_store.size: enabled: true sqlserver.deadlock.rate: enabled: true sqlserver.os.wait.duration: enabled: true sqlserver.processes.blocked: enabled: true sqlserver.memory.grants.pending.count: enabled: true sqlserver.database.file.size: enabled: true sqlserver.memory.area: enabled: true
events: db.server.query_sample: enabled: true db.server.top_query: enabled: true db.server.query_plan: enabled: true db.server.top_procedure: enabled: true
top_query_collection: lookback_time: 60s max_query_sample_count: 1000 top_query_count: 250 collection_interval: 60s collect_full_query_text: true allowed_comment_keys: - nr_service_guid
query_sample_collection: max_rows_per_query: 100 collect_full_query_text: true allowed_comment_keys: - nr_service_guid
top_procedure_collection: max_procedure_sample_count: 1000 top_procedure_count: 250 collection_interval: 60s
resource_attributes: db.system.version: enabled: true sqlserver.db.edition: enabled: true
# Second SQL Server instance: inherits all settings from nrsqlserver/1, # overrides only the connection-specific fields. # Additional SQL Server instances can be added here following the same pattern. nrsqlserver/2: <<: *nrsqlserver-common username: "<YOUR_DB2_USERNAME>" password: "<YOUR_DB2_PASSWORD>" server: "<YOUR_SERVER_2>" port: 1433
processors: memory_limiter: check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s} limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200} spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}
exporters: otlp: endpoint: https://otlp.nr-data.net:4318 headers: api-key: <YOUR_LICENSE_KEY> tls: insecure: false compression: gzip sending_queue: enabled: true sizer: bytes queue_size: 100_000_000 num_consumers: 10 batch: sizer: bytes max_size: 1_000_000 min_size: 0 flush_timeout: 5s
service: telemetry: metrics: level: none
# Metrics and logs pipelines for multiple SQL Server instances pipelines: metrics: receivers: [nrsqlserver/1, nrsqlserver/2] processors: [memory_limiter] exporters: [otlp] logs: receivers: [nrsqlserver/1, nrsqlserver/2] processors: [memory_limiter] exporters: [otlp]<<: *nrsqlserver-commonマージキーは、メトリクスカタログ、イベント、クエリ/プロシージャ収集設定、リソース属性など、nrsqlserver/1からすべての設定を継承します。username、password、server、portなど、その後で明示的に設定したフィールドはすべて、その特定のレシーバーインスタンスの継承された値を上書きします。
重要
新しいレシーバーインスタンス(たとえばnrsqlserver/3)を追加するたびに、service.pipelinesの下にあるmetricsパイプラインとlogsパイプラインの両方のreceiversリストにもそれを追加してください。receiversブロックで定義されていても、service.pipelinesにないレシーバーはデータを収集しません。
ヒント
ドメインまたはgMSA認証を使用するWindowsセルフホストおよびRDS環境では、username/password/server/portの代わりにdatasourceフィールドを使用してください。datasourceの形式については、Windowsセルフホスト計装(Windowsドメイン認証)を参照してください。
NRDOT Collectorを再起動します
設定の変更を有効にするには、NRDOT Collectorサービスを再起動してください。コレクターは起動時に一度だけ設定パラメーターを読み込み、ホットリロードをサポートしていません。コレクターの実行中に設定に加えられた変更は、プロセスが再起動されるまで無効なままです。
$sudo systemctl restart nrdot-collector