Visualização
Ainda estamos trabalhando nesse recurso, mas adoraríamos que você experimentasse!
Atualmente, esse recurso é fornecido como parte de uma prévia, de acordo com nossas políticas de pré-lançamento.
Obtenha insights abrangentes sobre o desempenho do seu banco de dados de contêiner Oracle (CDB) com monitoramento de banco de dados, análise de consultas e métricas de integridade do sistema usando o coletor New Relic Distribution of OpenTelemetry (NRDOT). Todos os bancos de dados plugáveis (PDBs) sob o CDB configurado são monitorados.
Instalação guiada
Para instalar através da interface da New Relic, acesse one.newrelic.com > Integrations & Agents > Oracle (OpenTelemetry) . Esta página aborda apenas o caminho de instalação da CLI.
Pré-requisitos
Antes de começar, certifique-se de ter o seguinte:
- Chave de licençada New Relic válida
- Arquitetura suportada: Linux com AMD64 e ARM64
- Conectividade de rede para o endpoint OTLP da New Relic
- Oracle Database
19cou posterior
Inscreva-se para visualizar
Esta integração está disponível como parte do programa de visualização pública da New Relic. Entre em contato com o gerente da sua organização para aceitar na página Previews & Trials.
Instalar o NRDOT Collector
Selecione o método de distribuição de instalação adequado para o seu ambiente Linux:
Configurar usuário do banco de dados
Crie um usuário de monitoramento com os privilégios necessários para o seu banco de dados Oracle multitenant. Isso requer a criação de um usuário comum com o prefixo C##.
Para definir seu contexto de contêiner ativo atual como
CDB$ROOT, execute a seguinte instrução como um usuárioSYS:ALTER SESSION SET CONTAINER = CDB$ROOT;Para bancos de dados multitenant:
Faça login no banco de dados raiz como administrador.
Para criar um novo usuário, execute a seguinte instrução
CREATE USER:CREATE USER c##<YOUR_DB_USERNAME> IDENTIFIED BY "<USER_PASSWORD>" CONTAINER=ALL;GRANT CREATE SESSION TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;Dica
O usuário recém-criado será um usuário comum com o prefixo
C##. O prefixoC##é exigido pela Oracle para usuários comuns.
Para permitir que o usuário de monitoramento veja as linhas de cada PDB nas views de dados do contêiner, execute a seguinte instrução como
SYSDBAna raiz do CDB. Isso é necessário para métricas e eventos por PDB.ALTER USER c##<YOUR_DB_USERNAME> SET CONTAINER_DATA=ALL CONTAINER=CURRENT;Dica
Certifique-se de que sua
USER_PASSWORDatenda aos requisitos de senha de novo usuário da Oracle.
Conceder privilégios de monitoramento para banco de dados multitenant
Execute as seguintes instruções GRANT como SYSDBA na raiz do CDB. Estas abrangem a detecção de instância, a coleta de métricas, o monitoramento por PDB e a coleta de eventos. Você pode executá-las juntas como um único script ou executar cada instrução individualmente.
GRANT SELECT ON V_$INSTANCE TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$DATABASE TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$CONTAINERS TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$DATAFILE TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$SYSSTAT TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$CON_SYSSTAT TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$SYSMETRIC TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$CON_SYSMETRIC TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$SESSION TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$RESOURCE_LIMIT TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$OSSTAT TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$SGAINFO TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$ROWCACHE TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$PARAMETER TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON CDB_TABLESPACE_USAGE_METRICS TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON CDB_TABLESPACES TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON DBA_DATA_FILES TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON DBA_FREE_SPACE TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON DBA_RECYCLEBIN TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$SQL TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$SQL_PLAN_STATISTICS_ALL TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$LOCK TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$SESSION_EVENT TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON DBA_PROCEDURES TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON DBA_OBJECTS TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$PDBS TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON CDB_SERVICES TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$ASM_DISKGROUP_STAT TO c##<USER_NAME> CONTAINER=ALL;GRANT SELECT ON V_$ASM_DISK_STAT TO c##<USER_NAME> CONTAINER=ALL;Dica
As permissões V_$ASM_DISKGROUP_STAT e V_$ASM_DISK_STAT são necessárias apenas se você desejar coletar métricas de diskgroup e disco do ASM.
Configurar o NRDOT Collector
Configure o NRDOT Collector com suas configurações específicas do CDB.
Crie o arquivo de configuração. O nome do arquivo deve ser
oracle-config.yaml.bash$sudo nano /etc/nrdot-collector/oracle-config.yamlAdicione o conteúdo de configuração abaixo ao arquivo
oracle-config.yamlque você criou na etapa anterior.configuração completa
Esta configuração se concentra apenas no monitoramento de banco de dados sem métricas de infraestrutura de host. Para habilitar o monitoramento com todos os recursos, consulte a referência de configuração.
oracle-config.yaml1receivers:2nroracledb:3endpoint: oracle.example.com:15214username: C##newrelic5password: YOUR_PASSWORD6service: YOUR_CDB_SERVICE_NAME7collection_interval: 10s8events:9db.server.query_sample:10enabled: true11db.server.top_query:12enabled: true13db.server.session.wait_sample:14enabled: true1516top_query_collection:17max_query_sample_count: 100018top_query_count: 20019collection_interval: 60s20allowed_comment_keys:21- nr_service_guid2223query_sample_collection:24max_rows_per_query: 10025allowed_comment_keys:26- nr_service_guid2728session_wait_event_collection:29max_rows_per_query: 1003031# Metrics configuration - organized by category32metrics:33# === CPU & Performance Metrics ===34oracledb.cpu_time:35enabled: true36attributes:37- oracle.db.pdb38oracledb.database.cpu.utilization:39enabled: true40attributes:41- oracle.db.pdb42oracledb.host.cpu.utilization:43enabled: true44attributes:45- oracle.db.pdb4647# === Execution & Parse Metrics ===48oracledb.executions:49enabled: true50attributes:51- oracle.db.pdb52oracledb.execution.utilization:53enabled: true54attributes:55- oracledb.parse.type56- oracle.db.pdb57oracledb.parse_calls:58enabled: true59attributes:60- oracle.db.pdb61oracledb.parse.rate:62enabled: true63attributes:64- oracledb.parse.result65- oracle.db.pdb66oracledb.parse.utilization:67enabled: true68attributes:69- oracle.db.pdb70oracledb.hard_parses:71enabled: true72attributes:73- oracle.db.pdb7475# === I/O & Physical Read/Write Metrics ===76oracledb.logical_reads:77enabled: true78attributes:79- oracle.db.pdb80oracledb.physical_reads:81enabled: true82attributes:83- oracle.db.pdb84oracledb.physical_reads_direct:85enabled: true86attributes:87- oracle.db.pdb88oracledb.physical_writes:89enabled: true90attributes:91- oracle.db.pdb92oracledb.physical_writes_direct:93enabled: true94attributes:95- oracle.db.pdb96oracledb.physical_read_io_requests:97enabled: true98attributes:99- oracle.db.pdb100oracledb.physical_write_io_requests:101enabled: true102attributes:103- oracle.db.pdb104105# === New Physical I/O Metrics (detailed) ===106oracledb.physical_io.cache_writes:107enabled: true108attributes:109- oracle.db.pdb110oracledb.physical_io.requests:111enabled: true112attributes:113- disk.io.direction114- disk.io.block_size115- oracle.db.pdb116oracledb.physical_io.transferred:117enabled: true118attributes:119- disk.io.direction120- disk.io.type121- oracle.db.pdb122123# === Network I/O Metrics ===124oracledb.sqlnet.io.transferred:125enabled: true126attributes:127- network.io.direction128- destination.type129- oracle.db.pdb130131# === Buffer & Cache Metrics ===132oracledb.consistent_gets:133enabled: true134attributes:135- oracle.db.pdb136oracledb.db_block_gets:137enabled: true138attributes:139- oracle.db.pdb140oracledb.buffer_cache.utilization:141enabled: true142attributes:143- oracle.db.pdb144oracledb.library_cache.utilization:145enabled: true146attributes:147- oracle.db.pdb148oracledb.data_dictionary.hit_ratio:149enabled: true150oracledb.shared_pool.utilization:151enabled: true152attributes:153- oracle.db.pdb154155# === Memory Metrics ===156oracledb.pga_memory:157enabled: true158attributes:159- oracle.db.pdb160oracledb.sga.limit:161enabled: true162oracledb.sga.usage:163enabled: true164attributes:165- oracledb.sga.component.name166167# === Wait & Database Time Metrics ===168oracledb.database.wait.utilization:169enabled: true170attributes:171- oracle.db.pdb172173# === Lock & Deadlock Metrics ===174oracledb.dml_locks.limit:175enabled: true176oracledb.dml_locks.usage:177enabled: true178oracledb.enqueue_locks.limit:179enabled: true180oracledb.enqueue_locks.usage:181enabled: true182oracledb.enqueue_resources.limit:183enabled: true184oracledb.enqueue_resources.usage:185enabled: true186oracledb.enqueue_deadlocks:187enabled: true188attributes:189- oracle.db.pdb190oracledb.exchange_deadlocks:191enabled: true192attributes:193- oracle.db.pdb194195# === Process & Session Metrics ===196oracledb.processes.limit:197enabled: true198oracledb.processes.usage:199enabled: true200oracledb.sessions.limit:201enabled: true202oracledb.sessions.usage:203enabled: true204attributes:205- session_type206- session_status207- oracle.db.pdb208oracledb.logons:209enabled: true210attributes:211- oracle.db.pdb212213# === Transaction Metrics ===214oracledb.transactions.limit:215enabled: true216oracledb.transactions.usage:217enabled: true218oracledb.user_commits:219enabled: true220attributes:221- oracle.db.pdb222oracledb.user_rollbacks:223enabled: true224attributes:225- oracle.db.pdb226227# === Tablespace Metrics ===228oracledb.tablespace_size.limit:229enabled: true230attributes:231- tablespace_name232- oracle.db.pdb233oracledb.tablespace_size.usage:234enabled: true235attributes:236- tablespace_name237- oracle.db.pdb238239# === Storage Metrics ===240oracledb.storage.usage:241enabled: true242oracledb.storage.utilization:243enabled: true244oracledb.recycle_bin.limit:245enabled: true246247# === Parallel Operations Metrics ===248oracledb.queries_parallelized:249enabled: true250attributes:251- oracle.db.pdb252oracledb.ddl_statements_parallelized:253enabled: true254attributes:255- oracle.db.pdb256oracledb.dml_statements_parallelized:257enabled: true258attributes:259- oracle.db.pdb260oracledb.parallel_operations_not_downgraded:261enabled: true262attributes:263- oracle.db.pdb264oracledb.parallel_operations_downgraded_1_to_25_pct:265enabled: true266attributes:267- oracle.db.pdb268oracledb.parallel_operations_downgraded_25_to_50_pct:269enabled: true270attributes:271- oracle.db.pdb272oracledb.parallel_operations_downgraded_50_to_75_pct:273enabled: true274attributes:275- oracle.db.pdb276oracledb.parallel_operations_downgraded_75_to_99_pct:277enabled: true278attributes:279- oracle.db.pdb280oracledb.parallel_operations_downgraded_to_serial:281enabled: true282attributes:283- oracle.db.pdb284285# === Redo & Sort Metrics ===286oracledb.redo_allocation.utilization:287enabled: true288attributes:289- oracle.db.pdb290oracledb.sort.ratio:291enabled: true292attributes:293- oracledb.sort.type294- oracle.db.pdb295296# === Response Time Metrics ===297oracledb.sql_service.response.duration:298enabled: true299attributes:300- oracle.db.pdb301302# === ASM (Automatic Storage Management) Metrics ===303# Disabled by default (opt-in). Requires the V_$ASM_DISKGROUP_STAT and304# V_$ASM_DISK_STAT grants from the previous step.305oracledb.asm.disk_group.free:306enabled: false307oracledb.asm.disk_group.capacity:308enabled: false309oracledb.asm.disk_group.usable_free:310enabled: false311oracledb.asm.disk_group.offline_disks:312enabled: false313oracledb.asm.disk.errors:314enabled: false315316# Resource attributes attached to all metrics/logs (all enabled by default)317resource_attributes:318host.name:319enabled: true320oracle.db.hosting_type:321enabled: true322oracle.db.open_mode:323enabled: true324oracle.db.pdb:325enabled: true326oracle.db.role:327enabled: true328oracle.db.version:329enabled: true330oracledb.instance.name:331enabled: true332service.instance.id:333enabled: true334processors:335batch:336resource/add_event_name:337attributes:338- key: host.address339value: YOUR_DB_HOST340action: upsert341exporters:342otlp/newrelic:343endpoint: https://otlp.nr-data.net:4318344headers:345api-key: YOUR_LICENSE_KEY346compression: gzip347retry_on_failure:348enabled: true349initial_interval: 5s350max_interval: 30s351max_elapsed_time: 300s352service:353pipelines:354metrics/oracledb:355receivers: [nroracledb]356processors: [resource/add_event_name, batch]357exporters: [otlp/newrelic]358logs/oracledb:359receivers: [nroracledb]360processors: [resource/add_event_name, batch]361exporters: [otlp/newrelic]Na seção Eventos, ative estes tipos de evento para coletar suas métricas:
Evento
Descrição
db.server.query_sampleAmostras de consultas ativas por sessão capturando o SQL atual, estado de espera e detalhes de bloqueio.
db.server.top_queryAs N principais instruções SQL por CPU ou tempo decorrido, incluindo estatísticas de execução e planos de consulta.
db.server.session.wait_sampleContagens e durações de espera cumulativas por sessão de
v$session_event.
Configure as configurações de coleta para cada tipo de evento:
Seção de configuração
Parâmetro
Valor
top_query_collectionmax_query_sample_count1000
top_query_collectiontop_query_count200
top_query_collectioncollection_interval60s
query_sample_collectionmax_rows_per_query100
session_wait_event_collectionmax_rows_per_query100
Dica
Para informações mais detalhadas sobre a configuração do endpoint OTLP da New Relic e as melhores práticas do OpenTelemetry, consulte a documentação do OpenTelemetry OTLP.
Atualize a configuração do NRDOT Collector
Atualize a configuração do NRDOT Collector para usar seu arquivo oracle-config.yaml:
$sudo sed -i 's|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/config.yaml"|OTELCOL_OPTIONS="--config=/etc/nrdot-collector/oracle-config.yaml"|' /etc/nrdot-collector/nrdot-collector.confDica
Você também pode:
- Configure múltiplos receptores: para monitorar várias instâncias do banco de dados Oracle a partir de um coletor.
- Configure o SQL Query Receiver: para coletar métricas personalizadas do seu Oracle Database.
- Vincule seu banco de dados Oracle ao APM: para correlacionar o desempenho do seu aplicativo com as operações do banco de dados. Isso permite visualizar exatamente quais aplicativos estão gerando workloads específicas de banco de dados.
- Configurar o gerenciamento de segredos: para gerenciar com segurança informações confidenciais, como credenciais de banco de dados. Isso ajuda a aprimorar a segurança do ambiente de monitoramento ao evitar a inserção direta de dados sensíveis nos arquivos de configuração.
Reiniciar o NRDOT Collector
Após atualizar a configuração, reinicie o NRDOT Collector:
$sudo systemctl restart nrdot-collector.service$sudo systemctl status nrdot-collector.serviceDica
Sempre reinicie o NRDOT Collector após fazer alterações de configuração para que as novas configurações entrem em vigor.
Encontre e use seus dados
Assim que seus dados estiverem sendo coletados, você poderá acessar o monitoramento abrangente do banco de dados Oracle por meio da interface do New Relic.
Para encontrar sua entidade de banco de dados Oracle no New Relic:
- Vá para https://one.newrelic.com > All Capabilities > Databases.
- Defina os critérios de pesquisa como
instrumentation.provider = opentelemetry. - Selecione seu banco de dados Oracle na lista de entidades.
Artigos relacionados
Resolução de problemas
Saiba como solucionar problemas da sua configuração de monitoramento do Oracle CDB no New Relic.
Referência de métricas
Saiba mais sobre as métricas disponíveis coletadas pelo NRDOT Collector.
Instrumentação do RDS
Saiba como configurar seu banco de dados Oracle para monitoramento do RDS no New Relic.