Você pode configurar o NRDOT Collector para monitorar várias instâncias de banco de dados Oracle a partir de um coletor. Isso é útil se você tiver vários bancos de dados Oracle em execução em hosts diferentes e quiser coletar métricas de todos eles usando uma única instância do NRDOT Collector.
Adicionar configuração de multirreceptor
Os exemplos a seguir mostram como configurar o NRDOT Collector para monitorar várias instâncias de banco de dados Oracle usando uma configuração de vários receptores. Selecione o tipo de implantação que corresponde ao seu ambiente. Você pode adicionar mais receptores conforme necessário para instâncias adicionais.
O oracle-config.yaml abaixo demonstra como configurar vários receptores para diferentes instâncias CDB no host (multilocatárias), compartilhando exportadores comuns.
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]O oracle-config.yaml abaixo demonstra como configurar vários receptores para diferentes instâncias de banco de dados plugáveis no host, compartilhando exportadores comuns.
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]O oracle-config.yaml abaixo demonstra como configurar vários receptores para diferentes instâncias Amazon RDS Oracle, compartilhando exportadores comuns.
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]O adb-config.yaml abaixo demonstra como configurar vários receptores para diferentes instâncias de banco de dados Oracle Autonomous, compartilhando exportadores comuns.
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]Dica
Esta configuração permite monitorar múltiplas instâncias do banco de dados Oracle simultaneamente. Cada instância recebe sua própria configuração de receptor com credenciais exclusivas, enquanto compartilha processadores e exportadores comuns. Ajuste o collection_interval e outros parâmetros com base em seus requisitos de monitoramento.
Reiniciar o NRDOT Collector
Reinicie o serviço NRDOT Collector para que as alterações de configuração entrem em vigor. O coletor carrega os parâmetros de configuração uma vez na inicialização e não oferece suporte a hot-reloading. Quaisquer alterações feitas na configuração enquanto o coletor está em execução permanecem inativas até que o processo seja reiniciado.
$sudo systemctl restart nrdot-collector.serviceArtigos relacionados
Referência de configuração
Saiba mais sobre as opções de configuração com todos os recursos para monitoramento de banco de dados Oracle com NRDOT.
Referência de métricas
Saiba mais sobre as métricas disponíveis coletadas pelo NRDOT Collector.
Resolução de problemas
Saiba como solucionar problemas na sua configuração de monitoramento de banco de dados Oracle no New Relic.