Vous pouvez configurer le NRDOT Collector pour monitorer plusieurs instances de base de données Oracle à partir d'un seul collecteur. Cela est utile si vous avez plusieurs bases de données Oracle en cours d'exécution sur différents hôtes et que vous souhaitez collecter des métriques à partir de toutes celles-ci à l'aide d'une seule instance NRDOT Collector.
Ajouter une configuration multi-récepteur
Les exemples suivants montrent comment configurer le Collector NRDOT pour monitorer plusieurs instances de base de données Oracle à l’aide d’une configuration multi-Récepteur. Sélectionnez le type de déploiement qui correspond à votre environnement. Vous pouvez ajouter d’autres Récepteurs selon les besoins pour des instances supplémentaires.
Le oracle-config.yaml ci-dessous montre comment configurer plusieurs récepteurs pour différentes instances CDB sur l'hôte (multi-locataires) tout en partageant des exportateurs communs.
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]Le oracle-config.yaml ci-dessous montre comment configurer plusieurs récepteurs pour différentes instances de base de données enfichables sur l'hôte tout en partageant des exportateurs communs.
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]Le oracle-config.yaml ci-dessous montre comment configurer plusieurs récepteurs pour différentes instances Amazon RDS Oracle tout en partageant des exportateurs communs.
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]Le adb-config.yaml ci-dessous montre comment configurer plusieurs récepteurs pour différentes instances de base de données Oracle Autonomous tout en partageant des exportateurs communs.
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]Conseil
Cette configuration vous permet de monitorer plusieurs instances de base de données Oracle simultanément. Chaque instance dispose de sa propre configuration de récepteur avec des identifiants uniques, tout en partageant des processeurs, et des exportateurs communs. Ajustez le collection_interval, et d’autres paramètres en fonction de vos besoins de monitoring.
Redémarrer NRDOT Collector
Redémarrez le service NRDOT Collector pour que les modifications de configuration prennent effet. Le collecteur charge les paramètres de configuration une fois au démarrage et ne prend pas en charge le rechargement à chaud. Toutes les modifications apportées à la configuration pendant que le collecteur est en cours d’exécution restent inactives jusqu’à ce que le processus redémarre.
$sudo systemctl restart nrdot-collector.serviceArticles connexes
Référence de configuration
Découvrez les options de configuration riches en fonctionnalités pour le monitoring de la base de données Oracle avec NRDOT.
Référence des métriques
Découvrez les métriques disponibles collectées par le collecteur NRDOT.
Dépannage
Découvrez comment dépanner votre configuration de monitoring de base de données Oracle dans New Relic.