1つのコレクターから複数のOracleデータベースインスタンスをモニターするようにNRDOT Collectorを設定できます。これは、異なるホストで複数のOracleデータベースが実行されており、単一のNRDOT Collectorインスタンスを使用してそれらすべてからメトリクスを収集したい場合に便利です。
マルチレシーバー設定の追加
以下の例では、マルチレシーバー設定を使用して複数のOracle データベースインスタンスをモニターするようにNRDOT Collectorを設定する方法を示します。環境に合ったデプロイメントタイプを選択してください。追加のインスタンス用に、必要に応じてレシーバーを追加できます。
以下のoracle-config.yamlは、共通のエクスポーターを共有しながら、異なるオンホスト(マルチテナント)CDBインスタンス用に複数のレシーバーをセットアップする方法を示しています。
receivers: # First CDB configuration (anchor cd1; cdb2 inherit via merge key) nroracledb/cdb1: &nroracledb-common endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>" username: "C##<YOUR_DB_USERNAME>" password: "<YOUR_DB_PASSWORD>" service: "<YOUR_CDB1_SERVICE_NAME>" collection_interval: 15s
events: db.server.query_sample: enabled: true db.server.top_query: enabled: true db.server.session.wait_sample: enabled: true db.server.top_procedure: enabled: true db.server.query_plan: enabled: true
top_query_collection: max_query_sample_count: 1000 top_query_count: 200 collection_interval: 60s allowed_comment_keys: - nr_service_guid
query_sample_collection: max_rows_per_query: 100 allowed_comment_keys: - nr_service_guid
session_wait_event_collection: max_rows_per_query: 100
top_procedure_collection: max_procedure_sample_count: 1000 top_procedure_count: 250 collection_interval: 60s
# Metrics configuration metrics: oracledb.buffer_cache.utilization: enabled: true attributes: - oracle.db.pdb oracledb.consistent_gets: enabled: true attributes: - oracle.db.pdb oracledb.cpu_time: enabled: true attributes: - oracle.db.pdb oracledb.database.cpu.utilization: enabled: true attributes: - oracle.db.pdb oracledb.database.wait.utilization: enabled: true attributes: - oracle.db.pdb oracledb.db_block_gets: enabled: true attributes: - oracle.db.pdb oracledb.enqueue_deadlocks: enabled: true attributes: - oracle.db.pdb oracledb.execution.utilization: enabled: true attributes: - oracledb.parse.type - oracle.db.pdb oracledb.executions: enabled: true attributes: - oracle.db.pdb oracledb.hard_parses: enabled: true attributes: - oracle.db.pdb oracledb.host.cpu.utilization: enabled: true attributes: - oracle.db.pdb oracledb.library_cache.utilization: enabled: true attributes: - oracle.db.pdb oracledb.logical_reads: enabled: true attributes: - oracle.db.pdb oracledb.logons: enabled: true attributes: - oracle.db.pdb oracledb.parse.rate: enabled: true attributes: - oracledb.parse.result - oracle.db.pdb oracledb.parse_calls: enabled: true attributes: - oracle.db.pdb oracledb.pga_memory: enabled: true attributes: - oracle.db.pdb oracledb.physical_io.requests: enabled: true attributes: - disk.io.direction - disk.io.block_size - oracle.db.pdb oracledb.physical_reads: enabled: true attributes: - oracle.db.pdb oracledb.physical_writes: enabled: true attributes: - oracle.db.pdb oracledb.processes.usage: enabled: true oracledb.sessions.usage: enabled: true attributes: - session_type - session_status - oracle.db.pdb oracledb.sga.usage: enabled: true attributes: - oracledb.sga.component.name oracledb.shared_pool.utilization: enabled: true attributes: - oracle.db.pdb oracledb.sql_service.response.duration: enabled: true attributes: - oracle.db.pdb oracledb.sqlnet.io.transferred: enabled: true attributes: - network.io.direction - destination.type - oracle.db.pdb oracledb.tablespace_size.usage: enabled: true attributes: - tablespace_name - oracle.db.pdb oracledb.transactions.usage: enabled: true oracledb.user_commits: enabled: true attributes: - oracle.db.pdb oracledb.user_rollbacks: enabled: true attributes: - oracle.db.pdb
# Resource attributes attached to all metrics/logs resource_attributes: oracle.db.edition: enabled: true
# Second CDB configuration nroracledb/cdb2: <<: *nroracledb-common endpoint: "<YOUR_DB2_HOST>:<YOUR_DB2_PORT>" service: "<YOUR_CDB2_SERVICE_NAME>"
exporters: otlp/newrelic: endpoint: "<otlp_endpoint>" headers: api-key: "<license_key>" compression: gzip retry_on_failure: enabled: true initial_interval: 5s max_interval: 30s max_elapsed_time: 300s 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: pipelines: metrics/oracledb: receivers: [nroracledb/cdb1,nroracledb/cdb2] exporters: [otlp/newrelic] logs/oracledb: receivers: [nroracledb/cdb1, nroracledb/cdb2] exporters: [otlp/newrelic]以下のoracle-config.yamlでは、共通のエクスポーターを共有しながら、異なるオンホストのプラガブル・データベース・インスタンス用に複数のレシーバーを設定する方法を示しています。
receivers: # First PDB configuration (anchor; pdb1; pdb2 inherit via merge key) nroracledb/pdb1: &nroracledb-common endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>" username: "<YOUR_DB_USERNAME>" password: "<YOUR_DB_PASSWORD>" service: "<YOUR_PDB1_SERVICE_NAME>" collection_interval: 15s
events: db.server.query_sample: enabled: true db.server.top_query: enabled: true db.server.session.wait_sample: enabled: true db.server.top_procedure: enabled: true db.server.query_plan: enabled: true
top_query_collection: max_query_sample_count: 1000 top_query_count: 200 collection_interval: 60s allowed_comment_keys: - nr_service_guid
query_sample_collection: max_rows_per_query: 100 allowed_comment_keys: - nr_service_guid
session_wait_event_collection: max_rows_per_query: 100
top_procedure_collection: max_procedure_sample_count: 1000 top_procedure_count: 250 collection_interval: 60s
# Metrics configuration metrics: oracledb.buffer_cache.utilization: enabled: true attributes: - oracle.db.pdb oracledb.consistent_gets: enabled: true attributes: - oracle.db.pdb oracledb.cpu_time: enabled: true attributes: - oracle.db.pdb oracledb.database.cpu.utilization: enabled: true attributes: - oracle.db.pdb oracledb.database.wait.utilization: enabled: true attributes: - oracle.db.pdb oracledb.db_block_gets: enabled: true attributes: - oracle.db.pdb oracledb.enqueue_deadlocks: enabled: true attributes: - oracle.db.pdb oracledb.execution.utilization: enabled: true attributes: - oracledb.parse.type - oracle.db.pdb oracledb.executions: enabled: true attributes: - oracle.db.pdb oracledb.hard_parses: enabled: true attributes: - oracle.db.pdb oracledb.host.cpu.utilization: enabled: true attributes: - oracle.db.pdb oracledb.library_cache.utilization: enabled: true attributes: - oracle.db.pdb oracledb.logical_reads: enabled: true attributes: - oracle.db.pdb oracledb.logons: enabled: true attributes: - oracle.db.pdb oracledb.parse.rate: enabled: true attributes: - oracledb.parse.result - oracle.db.pdb oracledb.parse_calls: enabled: true attributes: - oracle.db.pdb oracledb.pga_memory: enabled: true attributes: - oracle.db.pdb oracledb.physical_io.requests: enabled: true attributes: - disk.io.direction - disk.io.block_size - oracle.db.pdb oracledb.physical_reads: enabled: true attributes: - oracle.db.pdb oracledb.physical_writes: enabled: true attributes: - oracle.db.pdb oracledb.processes.usage: enabled: true oracledb.sessions.usage: enabled: true attributes: - session_type - session_status - oracle.db.pdb oracledb.sga.usage: enabled: true attributes: - oracledb.sga.component.name oracledb.shared_pool.utilization: enabled: true attributes: - oracle.db.pdb oracledb.sql_service.response.duration: enabled: true attributes: - oracle.db.pdb oracledb.sqlnet.io.transferred: enabled: true attributes: - network.io.direction - destination.type - oracle.db.pdb oracledb.tablespace_size.usage: enabled: true attributes: - tablespace_name - oracle.db.pdb oracledb.transactions.usage: enabled: true oracledb.user_commits: enabled: true attributes: - oracle.db.pdb oracledb.user_rollbacks: enabled: true attributes: - oracle.db.pdb
# Resource attributes attached to all metrics/logs resource_attributes: oracle.db.edition: enabled: true
# Second PDB configuration nroracledb/pdb2: <<: *nroracledb-common endpoint: "<YOUR_DB2_HOST>:<YOUR_DB2_PORT>" service: "<YOUR_PDB2_SERVICE_NAME>"
exporters: otlp/newrelic: endpoint: "<otlp_endpoint>" headers: api-key: "<license_key>" compression: gzip retry_on_failure: enabled: true initial_interval: 5s max_interval: 30s max_elapsed_time: 300s 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: pipelines: metrics/oracledb: receivers: [nroracledb/pdb1,nroracledb/pdb2] exporters: [otlp/newrelic] logs/oracledb: receivers: [nroracledb/pdb1,nroracledb/pdb2] exporters: [otlp/newrelic]以下のoracle-config.yamlは、共通のエクスポーターを共有しながら、異なるAmazon RDS Oracleインスタンス用に複数のレシーバーをセットアップする方法を示しています。
receivers: # First RDS instance (anchor; rds2 inherits via merge key) nroracledb/rds1: &nroracledb-rds-common endpoint: "<YOUR_DB1_HOST>:<YOUR_DB1_PORT>" username: "<YOUR_DB1_USERNAME>" password: "<YOUR_DB1_PASSWORD>" service: "<YOUR_RDS1_SERVICE_NAME>" collection_interval: 15s
events: db.server.query_sample: enabled: true db.server.top_query: enabled: true db.server.session.wait_sample: enabled: true db.server.top_procedure: enabled: true db.server.query_plan: enabled: true
top_query_collection: max_query_sample_count: 1000 top_query_count: 200 collection_interval: 60s allowed_comment_keys: - nr_service_guid
query_sample_collection: max_rows_per_query: 100 allowed_comment_keys: - nr_service_guid
session_wait_event_collection: max_rows_per_query: 100
top_procedure_collection: max_procedure_sample_count: 1000 top_procedure_count: 250 collection_interval: 60s
# Metrics configuration metrics: oracledb.buffer_cache.utilization: enabled: true attributes: - oracle.db.pdb oracledb.consistent_gets: enabled: true attributes: - oracle.db.pdb oracledb.cpu_time: enabled: true attributes: - oracle.db.pdb oracledb.database.cpu.utilization: enabled: true attributes: - oracle.db.pdb oracledb.database.wait.utilization: enabled: true attributes: - oracle.db.pdb oracledb.db_block_gets: enabled: true attributes: - oracle.db.pdb oracledb.enqueue_deadlocks: enabled: true attributes: - oracle.db.pdb oracledb.execution.utilization: enabled: true attributes: - oracledb.parse.type - oracle.db.pdb oracledb.executions: enabled: true attributes: - oracle.db.pdb oracledb.hard_parses: enabled: true attributes: - oracle.db.pdb oracledb.host.cpu.utilization: enabled: true attributes: - oracle.db.pdb oracledb.library_cache.utilization: enabled: true attributes: - oracle.db.pdb oracledb.logical_reads: enabled: true attributes: - oracle.db.pdb oracledb.logons: enabled: true attributes: - oracle.db.pdb oracledb.parse.rate: enabled: true attributes: - oracledb.parse.result - oracle.db.pdb oracledb.parse_calls: enabled: true attributes: - oracle.db.pdb oracledb.pga_memory: enabled: true attributes: - oracle.db.pdb oracledb.physical_io.requests: enabled: true attributes: - disk.io.direction - disk.io.block_size - oracle.db.pdb oracledb.physical_reads: enabled: true attributes: - oracle.db.pdb oracledb.physical_writes: enabled: true attributes: - oracle.db.pdb oracledb.processes.usage: enabled: true oracledb.sessions.usage: enabled: true attributes: - session_type - session_status - oracle.db.pdb oracledb.sga.usage: enabled: true attributes: - oracledb.sga.component.name oracledb.shared_pool.utilization: enabled: true attributes: - oracle.db.pdb oracledb.sql_service.response.duration: enabled: true attributes: - oracle.db.pdb oracledb.sqlnet.io.transferred: enabled: true attributes: - network.io.direction - destination.type - oracle.db.pdb oracledb.tablespace_size.usage: enabled: true attributes: - tablespace_name - oracle.db.pdb oracledb.transactions.usage: enabled: true oracledb.user_commits: enabled: true attributes: - oracle.db.pdb oracledb.user_rollbacks: enabled: true attributes: - oracle.db.pdb
# Resource attributes attached to all metrics/logs (all enabled by default) resource_attributes: oracle.db.edition: enabled: true
# Second RDS instance (inherits all settings from rds1, overrides endpoint/credentials/service) nroracledb/rds2: <<: *nroracledb-rds-common endpoint: "<YOUR_DB2_HOST>:<YOUR_DB2_PORT>" username: "<YOUR_DB2_USERNAME>" password: "<YOUR_DB2_PASSWORD>" service: "<YOUR_RDS2_SERVICE_NAME>"
exporters: otlp/newrelic: endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>" headers: api-key: "<YOUR_NEWRELIC_LICENSE_KEY>" compression: gzip retry_on_failure: enabled: true initial_interval: 5s max_interval: 30s max_elapsed_time: 300s 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: pipelines: metrics/oracledb: receivers: [nroracledb/rds1, nroracledb/rds2] exporters: [otlp/newrelic] logs/oracledb: receivers: [nroracledb/rds1, nroracledb/rds2] exporters: [otlp/newrelic]以下のadb-config.yamlは、共通のエクスポーターを共有しながら、異なるOracle Autonomous データベース・インスタンスに対して複数のレシーバーを設定する方法を示しています。
receivers: # First ADB instance (anchor; adb2 inherits via merge key) nroracledb/adb1: &nroracledb-adb-common datasource: "oracle://<YOUR_DB_USERNAME>:<YOUR_DB_PASSWORD>@<YOUR_ADB1_HOST>:1522/<YOUR_ADB1_SERVICE_NAME>?ssl=true&ssl%20verify=true" collection_interval: 15s events: db.server.query_sample: enabled: true db.server.top_query: enabled: true db.server.session.wait_sample: enabled: true db.server.top_procedure: enabled: true db.server.query_plan: enabled: true
top_query_collection: max_query_sample_count: 1000 top_query_count: 200 collection_interval: 60s allowed_comment_keys: - nr_service_guid
query_sample_collection: max_rows_per_query: 100 allowed_comment_keys: - nr_service_guid
session_wait_event_collection: max_rows_per_query: 100
top_procedure_collection: max_procedure_sample_count: 1000 top_procedure_count: 250 collection_interval: 60s
# Metrics configuration - organized by category metrics: # === CPU & Performance Metrics === oracledb.cpu_time: enabled: true attributes: - oracle.db.pdb # DISABLED on ADB: sourced from v$sysmetric, empty inside a PDB. oracledb.database.cpu.utilization: enabled: false attributes: - oracle.db.pdb # DISABLED on ADB: v$sysmetric empty in PDB. oracledb.host.cpu.utilization: enabled: false attributes: - oracle.db.pdb
# === Execution & Parse Metrics === oracledb.executions: enabled: true attributes: - oracle.db.pdb # DISABLED on ADB: v$sysmetric empty in PDB. oracledb.execution.utilization: enabled: false attributes: - oracledb.parse.type - oracle.db.pdb oracledb.parse_calls: enabled: true attributes: - oracle.db.pdb # DISABLED on ADB: v$sysmetric empty in PDB. oracledb.parse.rate: enabled: false attributes: - oracledb.parse.result - oracle.db.pdb # DISABLED on ADB: v$sysmetric empty in PDB. oracledb.parse.utilization: enabled: false attributes: - oracle.db.pdb oracledb.hard_parses: enabled: true attributes: - oracle.db.pdb
# === I/O & Physical Read/Write Metrics === oracledb.logical_reads: enabled: true attributes: - oracle.db.pdb oracledb.physical_reads: enabled: true attributes: - oracle.db.pdb oracledb.physical_reads_direct: enabled: true attributes: - oracle.db.pdb oracledb.physical_writes: enabled: true attributes: - oracle.db.pdb oracledb.physical_writes_direct: enabled: true attributes: - oracle.db.pdb oracledb.physical_read_io_requests: enabled: true attributes: - oracle.db.pdb oracledb.physical_write_io_requests: enabled: true attributes: - oracle.db.pdb
# === New Physical I/O Metrics (detailed) === oracledb.physical_io.cache_writes: enabled: true attributes: - oracle.db.pdb oracledb.physical_io.requests: enabled: true attributes: - disk.io.direction - disk.io.block_size - oracle.db.pdb oracledb.physical_io.transferred: enabled: true attributes: - disk.io.direction - disk.io.type - oracle.db.pdb
# === Network I/O Metrics === oracledb.sqlnet.io.transferred: enabled: true attributes: - network.io.direction - destination.type - oracle.db.pdb
# === Buffer & Cache Metrics === oracledb.consistent_gets: enabled: true attributes: - oracle.db.pdb oracledb.db_block_gets: enabled: true attributes: - oracle.db.pdb # DISABLED on ADB: v$sysmetric empty in PDB. oracledb.buffer_cache.utilization: enabled: false attributes: - oracle.db.pdb # DISABLED on ADB: v$sysmetric empty in PDB. oracledb.library_cache.utilization: enabled: false attributes: - oracle.db.pdb oracledb.data_dictionary.hit_ratio: enabled: true # DISABLED on ADB: v$sysmetric empty in PDB. oracledb.shared_pool.utilization: enabled: false attributes: - oracle.db.pdb
# === Memory Metrics === oracledb.pga_memory: enabled: true attributes: - oracle.db.pdb oracledb.sga.limit: enabled: true oracledb.sga.usage: enabled: true attributes: - oracledb.sga.component.name
# === Wait & Database Time Metrics === # DISABLED on ADB: v$sysmetric empty in PDB. oracledb.database.wait.utilization: enabled: false attributes: - oracle.db.pdb
# === Lock & Deadlock Metrics === # DISABLED on ADB: sourced from v$resource_limit, which returns zero rows. oracledb.dml_locks.limit: enabled: false oracledb.dml_locks.usage: enabled: false oracledb.enqueue_locks.limit: enabled: false oracledb.enqueue_locks.usage: enabled: false oracledb.enqueue_resources.limit: enabled: false oracledb.enqueue_resources.usage: enabled: false oracledb.enqueue_deadlocks: enabled: true attributes: - oracle.db.pdb oracledb.exchange_deadlocks: enabled: true attributes: - oracle.db.pdb
# === Process & Session Metrics === # DISABLED on ADB: v$resource_limit empty in PDB. oracledb.processes.limit: enabled: false oracledb.processes.usage: enabled: false oracledb.sessions.limit: enabled: false # KEEP enabled: sessions.usage is sourced from v$session, not v$resource_limit. oracledb.sessions.usage: enabled: true attributes: - session_type - session_status - oracle.db.pdb oracledb.logons: enabled: true attributes: - oracle.db.pdb
# === Transaction Metrics === # DISABLED on ADB: v$resource_limit empty in PDB. oracledb.transactions.limit: enabled: false oracledb.transactions.usage: enabled: false oracledb.user_commits: enabled: true attributes: - oracle.db.pdb oracledb.user_rollbacks: enabled: true attributes: - oracle.db.pdb
# === Tablespace Metrics === oracledb.tablespace_size.limit: enabled: true attributes: - tablespace_name - oracle.db.pdb oracledb.tablespace_size.usage: enabled: true attributes: - tablespace_name - oracle.db.pdb
# === Storage Metrics === oracledb.storage.usage: enabled: true oracledb.storage.utilization: enabled: true oracledb.recycle_bin.limit: enabled: true
# === Parallel Operations Metrics === oracledb.queries_parallelized: enabled: true attributes: - oracle.db.pdb oracledb.ddl_statements_parallelized: enabled: true attributes: - oracle.db.pdb oracledb.dml_statements_parallelized: enabled: true attributes: - oracle.db.pdb oracledb.parallel_operations_not_downgraded: enabled: true attributes: - oracle.db.pdb oracledb.parallel_operations_downgraded_1_to_25_pct: enabled: true attributes: - oracle.db.pdb oracledb.parallel_operations_downgraded_25_to_50_pct: enabled: true attributes: - oracle.db.pdb oracledb.parallel_operations_downgraded_50_to_75_pct: enabled: true attributes: - oracle.db.pdb oracledb.parallel_operations_downgraded_75_to_99_pct: enabled: true attributes: - oracle.db.pdb oracledb.parallel_operations_downgraded_to_serial: enabled: true attributes: - oracle.db.pdb
# === Redo & Sort Metrics === # DISABLED on ADB: v$sysmetric empty in PDB. oracledb.redo_allocation.utilization: enabled: false attributes: - oracle.db.pdb # DISABLED on ADB: v$sysmetric empty in PDB. oracledb.sort.ratio: enabled: false attributes: - oracledb.sort.type - oracle.db.pdb
# === Response Time Metrics === # DISABLED on ADB: v$sysmetric empty in PDB. oracledb.sql_service.response.duration: enabled: false attributes: - oracle.db.pdb
# Resource attributes attached to all metrics/logs (all enabled by default) resource_attributes: oracle.db.edition: enabled: true
# Second ADB instance (inherits all settings from adb1, overrides connection details) nroracledb/adb2: <<: *nroracledb-adb-common datasource: "oracle://<YOUR_DB_USERNAME>:<YOUR_DB_PASSWORD>@<YOUR_ADB2_HOST>:1522/<YOUR_ADB2_SERVICE_NAME>?ssl=true&ssl%20verify=true"
exporters: otlp/newrelic: endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>" headers: api-key: "<YOUR_NEWRELIC_LICENSE_KEY>" compression: gzip retry_on_failure: enabled: true initial_interval: 5s max_interval: 30s max_elapsed_time: 300s 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: pipelines: metrics/oracledb: receivers: [nroracledb/adb1, nroracledb/adb2] exporters: [otlp/newrelic] logs/oracledb: receivers: [nroracledb/adb1, nroracledb/adb2] exporters: [otlp/newrelic]ヒント
この設定により、複数のOracle データベースインスタンスを同時にモニターできます。各インスタンスは、共通のプロセッサとエクスポーターを共有しながら、一意の認証情報を持つ独自のレシーバー設定を取得します。監視要件に基づいて、collection_intervalやその他のパラメーターを調整します。
NRDOT Collectorを再起動します
設定の変更を有効にするには、NRDOT Collectorサービスを再起動してください。コレクターは起動時に一度だけ設定パラメーターを読み込み、ホットリロードをサポートしていません。コレクターの実行中に設定に加えられた変更は、プロセスが再起動されるまで無効なままです。
$sudo systemctl restart nrdot-collector.service