Puede configurar el NRDOT Collector para monitorear varias instancias de base de datos Oracle desde un recolector. Esto es útil si tiene varias bases de datos Oracle ejecutándose en diferentes hosts y desea recopilar métricas de todas ellas usando una sola instancia de NRDOT Collector.
Agregar configuración de múltiples receptores
Los siguientes ejemplos muestran cómo configurar el Collector de NRDOT para monitorear múltiples instancias de base de datos de Oracle usando una configuración de múltiples receptores. Seleccione el tipo de despliegue que coincida con su entorno. Puede agregar más receptores según sea necesario para instancias adicionales.
El oracle-config.yaml a continuación demuestra cómo configurar múltiples receptores para diferentes instancias de CDB en el host (multitenencia) mientras se comparten exportadores comunes.
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]El siguiente oracle-config.yaml demuestra cómo configurar múltiples receptores para diferentes instancias de base de datos conectables en el host mientras se comparten exportadores comunes.
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]El oracle-config.yaml a continuación demuestra cómo configurar múltiples receptores para diferentes instancias de Amazon RDS Oracle mientras se comparten exportadores comunes.
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]El adb-config.yaml a continuación demuestra cómo configurar múltiples receptores para diferentes instancias de la base de datos Oracle Autonomous mientras se comparten exportadores comunes.
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]Sugerencia
Esta configuración le permite monitorear múltiples instancias de base de datos Oracle simultáneamente. Cada instancia obtiene su propia configuración de receptor con credenciales únicas, mientras comparte procesadores y exportadores comunes. Ajuste el collection_interval y otros parámetros según los requisitos de monitoreo.
Reiniciar NRDOT Collector
Reinicie el servicio NRDOT Collector para que los cambios de configuración surtan efecto. El recolector carga los parámetros de configuración una vez al inicio y no admite la recarga en caliente. Cualquier cambio realizado en la configuración mientras el recolector está en ejecución permanece inactivo hasta que el proceso se reinicie.
$sudo systemctl restart nrdot-collector.serviceArtículos relacionados
Referencia de configuración
Conozca las opciones de configuración de características completas para el monitoreo de la base de datos de Oracle con NRDOT.
Referencia de métricas
Obtenga información sobre las métricas disponibles recopiladas por NRDOT Collector.
Resolución de problemas
Aprenda a solucionar problemas de la configuración de monitoreo de la base de datos Oracle en New Relic.