• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Monitoramento do Oracle Database com NRDOT

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.

A New Relic agora capacita sua equipe a monitorar o desempenho do banco de dados Oracle usando a New Relic Distribution of OpenTelemetry (NRDOT) com os recursos de monitoramento de banco de dados da New Relic. Esta integração fornece insights abrangentes sobre métricas de banco de dados, desempenho de consultas e saúde do sistema usando o coletor NRDOT.

Essa abordagem baseada em NRDOT complementa nossa Integração On-Host (OHI) existente, utilizando padrões OpenTelemetry para monitoramento de banco de dados, facilitando a integração com sua stack de observabilidade existente.

Pré-requisitos

Antes de começar, certifique-se de ter o seguinte:

Configure o NRDOT Collector para o monitoramento do Oracle Database

Você pode configurar o monitoramento do Oracle Database usando o NRDOT Collector em ambientes on-host (multitenant) ou RDS. Selecione a configuração adequada com base no seu ambiente de banco de dados e siga as etapas.

Dica

O NRDOT Collector coleta dados de telemetria relacionados tanto à infraestrutura quanto ao banco de dados, para que você tenha uma solução de observabilidade unificada para o seu ambiente Oracle Database no New Relic.

Você pode configurar o monitoramento do Oracle Database usando o NRDOT Collector em ambientes on-host ou multitenant. Para instalar o NRDOT Collector em ambientes on-host (multitenant), siga estas etapas:

Método de instalação

Selecione o método de distribuição de instalação adequado para o seu ambiente Linux:

Importante

Recomenda-se instalar o NRDOT Collector no mesmo host da sua instância do Oracle Database para visualizar métricas de nível de infraestrutura para o monitoramento de desempenho de consultas.

Configurar usuário do banco de dados

Crie um usuário de monitoramento com os privilégios necessários para seu Oracle Database multitenant. Isso requer a criação de um usuário comum com o prefixo C##.

  1. Faça login no banco de dados raiz como administrador:

    CREATE USER c##<YOUR_DB_USERNAME> IDENTIFIED BY "<USER_PASSWORD>";

    Dica

    Certifique-se de que sua USER_PASSWORD atenda 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 SQL para conceder privilégios de monitoramento. Use o formato correto de nome de usuário com o prefixo C## para banco de dados multilocatário:

ALTER USER c##<YOUR_DB_USERNAME> SET CONTAINER_DATA=ALL CONTAINER=CURRENT;
GRANT CREATE SESSION TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SET CONTAINER TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT CONNECT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SESSION TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SYSSTAT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SESSTAT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$STATNAME TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SYSTEM_EVENT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SHARED_SERVER TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$DISPATCHER TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$CIRCUIT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$RESOURCE_LIMIT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$LOCK TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$DATABASE TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$PARAMETER TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SQLAREA TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SQL TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SQL_PLAN TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.V_$PDBS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$INSTANCE TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$SGA TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$SESSTAT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$STATNAME TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$SYSSTAT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$SQLAREA TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$LIBRARYCACHE TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$ROWCACHE TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$PGASTAT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$CONTAINERS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$PDBS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$CON_SYSMETRIC TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$SYSMETRIC TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$FILESTAT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$SYSTEM_EVENT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$ACTIVE_SERVICES TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$SESSION TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$SESSION_WAIT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON SYS.GV_$ROLLSTAT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON DBA_OBJECTS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON DBA_TABLESPACES TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON DBA_DATA_FILES TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON DBA_USERS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON CDB_SERVICES TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON CDB_DATA_FILES TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON CDB_TABLESPACE_USAGE_METRICS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON CDB_USERS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON CDB_PDBS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON ALL_USERS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON ALL_VIEWS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;
GRANT SELECT ON GLOBAL_NAME TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;

Configurar o NRDOT Collector

  1. Edite seu arquivo config.yaml disponível em /etc/nrdot-collector-host/ e adicione o seguinte trecho de código:

    Importante

    Se você já é um usuário do NRDOT Collector, certifique-se de mesclar a configuração acima com o seu arquivo config.yaml existente. Isso inclui adicionar os novos receptores, processadores e exportadores para o monitoramento do Oracle Database, mantendo suas configurações atuais.

    extensions:
    health_check:
    receivers:
    otlp:
    protocols:
    grpc:
    http:
    hostmetrics:
    collection_interval: 60s
    scrapers:
    cpu:
    metrics:
    system.cpu.time:
    enabled: false
    system.cpu.utilization:
    enabled: true
    load:
    memory:
    metrics:
    system.memory.utilization:
    enabled: true
    paging:
    metrics:
    system.paging.utilization:
    enabled: false
    system.paging.faults:
    enabled: false
    filesystem:
    metrics:
    system.filesystem.utilization:
    enabled: true
    disk:
    metrics:
    system.disk.merged:
    enabled: false
    system.disk.pending_operations:
    enabled: false
    system.disk.weighted_io_time:
    enabled: false
    network:
    metrics:
    system.network.connections:
    enabled: false
    # Uncomment to enable process metrics, which can be noisy but valuable.
    # processes:
    # process:
    # metrics:
    # process.cpu.utilization:
    # enabled: true
    # process.cpu.time:
    # enabled: false
    filelog:
    include:
    - /var/log/alternatives.log
    - /var/log/cloud-init.log
    - /var/log/auth.log
    - /var/log/dpkg.log
    - /var/log/syslog
    - /var/log/messages
    - /var/log/secure
    - /var/log/yum.log
    newrelicoracledb/cdb:
    endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>"
    username: "<USERNAME>"
    password: "<PASSWORD>"
    service: "<YOUR_CDB_SERVICE_NAME>"
    collection_interval: 30s
    timeout: 30s
    # enable_tablespace_scraper: true
    # enable_core_scraper: true
    # enable_system_scraper: true
    # enable_connection_scraper: true
    # enable_container_scraper: true
    # enable_database_info_scraper: true
    newrelicoracledb/pdb:
    endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>"
    username: "<USERNAME>"
    password: "<PASSWORD>"
    service: "<YOUR_CDB_SERVICE_NAME>"
    collection_interval: 30s
    timeout: 30s
    pdb_services: ["ALL"]
    # query_monitoring_response_time_threshold: 500
    # query_monitoring_count_threshold: 30
    # enable_query_monitoring: true
    # enable_pdb_scraper: true
    processors:
    metricstransform:
    transforms:
    - include: system.cpu.utilization
    action: update
    operations:
    - action: aggregate_labels
    label_set: [ state ]
    aggregation_type: mean
    - include: system.paging.operations
    action: update
    operations:
    - action: aggregate_labels
    label_set: [ direction ]
    aggregation_type: sum
    filter/exclude_cpu_utilization:
    metrics:
    datapoint:
    - 'metric.name == "system.cpu.utilization" and attributes["state"] == "interrupt"'
    - 'metric.name == "system.cpu.utilization" and attributes["state"] == "nice"'
    - 'metric.name == "system.cpu.utilization" and attributes["state"] == "softirq"'
    filter/exclude_memory_utilization:
    metrics:
    datapoint:
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "slab_unreclaimable"'
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "inactive"'
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "cached"'
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "buffered"'
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "slab_reclaimable"'
    filter/exclude_memory_usage:
    metrics:
    datapoint:
    - 'metric.name == "system.memory.usage" and attributes["state"] == "slab_unreclaimable"'
    - 'metric.name == "system.memory.usage" and attributes["state"] == "inactive"'
    filter/exclude_filesystem_utilization:
    metrics:
    datapoint:
    - 'metric.name == "system.filesystem.utilization" and attributes["type"] == "squashfs"'
    filter/exclude_filesystem_usage:
    metrics:
    datapoint:
    - 'metric.name == "system.filesystem.usage" and attributes["type"] == "squashfs"'
    - 'metric.name == "system.filesystem.usage" and attributes["state"] == "reserved"'
    filter/exclude_filesystem_inodes_usage:
    metrics:
    datapoint:
    - 'metric.name == "system.filesystem.inodes.usage" and attributes["type"] == "squashfs"'
    - 'metric.name == "system.filesystem.inodes.usage" and attributes["state"] == "reserved"'
    filter/exclude_system_disk:
    metrics:
    datapoint:
    - 'metric.name == "system.disk.operations" and IsMatch(attributes["device"], "^loop.*") == true'
    - 'metric.name == "system.disk.merged" and IsMatch(attributes["device"], "^loop.*") == true'
    - 'metric.name == "system.disk.io" and IsMatch(attributes["device"], "^loop.*") == true'
    - 'metric.name == "system.disk.io_time" and IsMatch(attributes["device"], "^loop.*") == true'
    - 'metric.name == "system.disk.operation_time" and IsMatch(attributes["device"], "^loop.*") == true'
    filter/exclude_system_paging:
    metrics:
    datapoint:
    - 'metric.name == "system.paging.usage" and attributes["state"] == "cached"'
    - 'metric.name == "system.paging.operations" and attributes["type"] == "cached"'
    filter/exclude_network:
    metrics:
    datapoint:
    - 'IsMatch(metric.name, "^system.network.*") == true and attributes["device"] == "lo"'
    attributes/exclude_system_paging:
    include:
    match_type: strict
    metric_names:
    - system.paging.operations
    actions:
    - key: type
    action: delete
    transform/clear_metadata:
    metric_statements:
    - context: metric
    statements:
    - set(metric.description, "")
    - set(metric.unit, "")
    filter/exec_plan_and_query_details_include:
    metrics:
    include:
    match_type: strict
    metric_names:
    - newrelicoracledb.execution_plan
    - newrelicoracledb.slow_queries.query_details
    filter/exec_plan_and_query_details_exclude:
    metrics:
    exclude:
    match_type: strict
    metric_names:
    - newrelicoracledb.execution_plan
    - newrelicoracledb.slow_queries.query_details
    cumulativetodelta/oracle:
    include:
    match_type: strict
    metrics:
    - newrelicoracledb.connection.bytes_received
    - newrelicoracledb.connection.bytes_sent
    - newrelicoracledb.connection.execute_count
    - newrelicoracledb.connection.logons_cumulative
    - newrelicoracledb.connection.parse_count_hard
    - newrelicoracledb.connection.parse_count_total
    - newrelicoracledb.connection.sqlnet_roundtrips
    - newrelicoracledb.connection.user_commits
    - newrelicoracledb.connection.user_rollbacks
    transform/host:
    metric_statements:
    - context: metric
    statements:
    - set(metric.description, "")
    - set(metric.unit, "")
    transform:
    trace_statements:
    - context: span
    statements:
    - truncate_all(span.attributes, 4095)
    - truncate_all(resource.attributes, 4095)
    log_statements:
    - context: log
    statements:
    - truncate_all(log.attributes, 4095)
    - truncate_all(resource.attributes, 4095)
    memory_limiter:
    check_interval: 1s
    limit_mib: ${env:NEW_RELIC_MEMORY_LIMIT_MIB:-100}
    batch:
    resourcedetection:
    detectors: ["system"]
    system:
    hostname_sources: ["os"]
    resource_attributes:
    host.id:
    enabled: true
    resourcedetection/db_safe:
    detectors: ["system"]
    override: false
    system:
    hostname_sources: ["os"]
    resource_attributes:
    host.id:
    enabled: true
    resourcedetection/cloud:
    detectors: ["gcp", "ec2", "azure"]
    timeout: 2s
    override: true
    resourcedetection/env:
    detectors: ["env"]
    timeout: 2s
    override: true
    connectors:
    metricsaslogs:
    include_resource_attributes: true
    include_scope_info: true
    exporters:
    otlp:
    endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>"
    headers:
    api-key: "<YOUR_NEWRELIC_API_KEY>"
    compression: gzip
    service:
    pipelines:
    metrics/host:
    receivers: [hostmetrics]
    processors:
    - memory_limiter
    - metricstransform
    - filter/exclude_cpu_utilization
    - filter/exclude_memory_utilization
    - filter/exclude_memory_usage
    - filter/exclude_filesystem_utilization
    - filter/exclude_filesystem_usage
    - filter/exclude_filesystem_inodes_usage
    - filter/exclude_system_disk
    - filter/exclude_network
    - attributes/exclude_system_paging
    - transform/host
    - resourcedetection
    - resourcedetection/cloud
    - resourcedetection/env
    - cumulativetodelta/oracle
    - batch
    exporters: [otlp]
    traces:
    receivers: [otlp]
    processors: [memory_limiter, transform, resourcedetection, resourcedetection/cloud, resourcedetection/env, batch]
    exporters: [otlp]
    metrics:
    receivers: [otlp]
    processors: [memory_limiter, transform, resourcedetection, resourcedetection/cloud, resourcedetection/env, batch]
    exporters: [otlp]
    logs:
    receivers: [otlp]
    processors: [memory_limiter, transform, resourcedetection, resourcedetection/cloud, resourcedetection/env, batch]
    exporters: [otlp]
    metrics/oracledb:
    receivers: [newrelicoracledb/cdb, newrelicoracledb/pdb]
    processors: [memory_limiter, resourcedetection/db_safe, batch, transform/clear_metadata, filter/exec_plan_and_query_details_exclude]
    exporters: [otlp]
    metrics/exec_plan_and_query_details_to_logs:
    receivers: [newrelicoracledb/cdb, newrelicoracledb/pdb]
    processors: [filter/exec_plan_and_query_details_include]
    exporters: [metricsaslogs]
    logs/oracledb:
    receivers: [metricsaslogs]
    processors: [memory_limiter, resourcedetection/db_safe, batch]
    exporters: [otlp]
    extensions: [health_check]
  2. Defina os seguintes parâmetros obrigatórios no arquivo de configuração:

    Parâmetro

    Descrição

    <YOUR_DB_HOST>

    Insira o nome do host do banco de dados Oracle.

    <YOUR_DB_PORT>

    Insira a porta do seu banco de dados Oracle.

    <USERNAME>

    Insira seu nome de usuário do banco de dados.

    <PASSWORD>

    Insira a senha do seu banco de dados.

    <YOUR_CDB_SERVICE_NAME>

    Insira o nome do serviço Oracle.

    <YOUR_NEWRELIC_OTLP_ENDPOINT>

    Insira o endpoint OTLP da New Relic. Para mais informações, consulte a documentação dos endpoints OTLP da New Relic.

    <YOUR_NEWRELIC_API_KEY>

    Insira sua chave de API da New Relic.

    pdb_services

    Selecione os serviços PDB para monitorar nas opções a seguir:

    • Vazio ou nulo: Coletar apenas dados de serviço especificados
    • ["ALL"]: Coletar todos os serviços de PDB (excluindo CDB)
    • ["pdb1", "pdb2"]: Coletar apenas serviços de PDB especificados

    enable_query_monitoring

    Obtenha métricas de monitoramento de consultas, como sessões lentas, ativas, em espera, de bloqueio e plano de execução. O valor padrão é definido como

    false

    query_monitoring_response_time_threshold

    Defina o limite para o tempo de resposta da consulta (em ms). Captura as consultas que ultrapassam este limiar. O valor padrão é definido como 500ms.

    query_monitoring_count_threshold

    O número de registros para cada métrica de desempenho de consulta. O valor padrão é definido como 30

    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.

Reiniciar o coletor NRDOT

Após atualizar a configuração, reinicie o coletor NRDOT:

bash
$
sudo systemctl restart nrdot-collector-host
$
sudo systemctl status nrdot-collector-host

Dica

Sempre reinicie o coletor NRDOT após fazer alterações de configuração para garantir que as novas configurações entrem em vigor.

(Opcional) Configuração de multirreceptor

O binário nrdot-collector-host suporta uma configuração de múltiplos receptores em um único config.yaml para monitorar várias instâncias de banco de dados Oracle usando credenciais exclusivas. O exemplo config.yaml abaixo demonstra como configurar vários receptores para diferentes instâncias no host (multilocatárias), compartilhando processadores e exportadores comuns.

receivers:
newrelicoracledb/cdb1:
endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>"
username: "<USERNAME>"
password: "<PASSWORD>"
service: "<YOUR_CDB1_SERVICE_NAME>"
collection_interval: 30s
timeout: 30s
# enable_tablespace_scraper: true
# enable_core_scraper: true
# enable_system_scraper: true
# enable_connection_scraper: true
# enable_container_scraper: true
# enable_database_info_scraper: true
# First CDB's PDB configuration
newrelicoracledb/pdb1:
endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>"
username: "<USERNAME>"
password: "<PASSWORD>"
service: "<YOUR_CDB2_SERVICE_NAME>"
collection_interval: 30s
timeout: 30s
pdb_services: ["ALL"]
# query_monitoring_response_time_threshold: 500
# query_monitoring_count_threshold: 30
# enable_query_monitoring: true
# enable_pdb_scraper: true
# Second CDB configuration
newrelicoracledb/cdb2:
endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>"
username: "<USERNAME>"
password: "<PASSWORD>"
service: "<YOUR_CDB2_SERVICE_NAME>"
collection_interval: 30s
timeout: 30s
# enable_tablespace_scraper: true
# enable_core_scraper: true
# enable_system_scraper: true
# enable_connection_scraper: true
# enable_container_scraper: true
# enable_database_info_scraper: true
# Second CDB's PDB configuration
newrelicoracledb/pdb2:
endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>"
username: "<USERNAME>"
password: "<PASSWORD>"
service: "<YOUR_CDB2_SERVICE_NAME>"
collection_interval: 30s
timeout: 30s
pdb_services: ["ALL"]
# query_monitoring_response_time_threshold: 500
# query_monitoring_count_threshold: 30
# enable_query_monitoring: true
# enable_pdb_scraper: true
processors:
memory_limiter/oracle:
check_interval: 1s
limit_mib: ${env:NEW_RELIC_MEMORY_LIMIT_MIB:-100}
cumulativetodelta/oracle:
include:
match_type: strict
metrics:
- newrelicoracledb.connection.bytes_received
- newrelicoracledb.connection.bytes_sent
- newrelicoracledb.connection.execute_count
- newrelicoracledb.connection.logons_cumulative
- newrelicoracledb.connection.parse_count_hard
- newrelicoracledb.connection.parse_count_total
- newrelicoracledb.connection.sqlnet_roundtrips
- newrelicoracledb.connection.user_commits
- newrelicoracledb.connection.user_rollbacks
transform/oracle_clear_metadata:
metric_statements:
- context: metric
statements:
- set(metric.description, "")
- set(metric.unit, "")
log_statements:
- context: log
statements:
- set(body, "")
filter/exec_plan_and_query_details_include:
metrics:
include:
match_type: strict
metric_names:
- newrelicoracledb.execution_plan
- newrelicoracledb.slow_queries.query_details
filter/exec_plan_and_query_details_exclude:
metrics:
exclude:
match_type: strict
metric_names:
- newrelicoracledb.execution_plan
- newrelicoracledb.slow_queries.query_details
resourcedetection/oracle_db_safe:
detectors: ["system"]
override: false
system:
hostname_sources: ["os"]
resource_attributes:
host.id:
enabled: true
connectors:
metricsaslogs/oracle:
include_resource_attributes: true
include_scope_info: true
service:
pipelines:
metrics/oracledb:
receivers: [newrelicoracledb/cdb1, newrelicoracledb/pdb1, newrelicoracledb/cdb2, newrelicoracledb/pdb2]
processors: [memory_limiter/oracle, cumulativetodelta/oracle, transform/oracle_clear_metadata, filter/exec_plan_and_query_details_exclude, resourcedetection/oracle_db_safe]
exporters: [otlp]
metrics/oracle_query_to_logs:
receivers: [newrelicoracledb/cdb1, newrelicoracledb/pdb1, newrelicoracledb/cdb2, newrelicoracledb/pdb2]
processors: [memory_limiter/oracle, filter/exec_plan_and_query_details_include]
exporters: [metricsaslogs/oracle]
logs/oracledb:
receivers: [metricsaslogs/oracle]
processors: [memory_limiter/oracle, transform/oracle_clear_metadata, resourcedetection/oracle_db_safe]
exporters: [otlp]

Dica

  • Esta configuração permite monitorar múltiplas instâncias do Oracle RDS 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.

  • Reinicie o coletor NRDOT após atualizar a configuração para aplicar as alterações.

(Opcional) Configurar a correlação entre APM e banco de dados

Para correlacionar o desempenho da sua aplicação com as operações de banco de dados, você pode configurar a identificação de serviço de banco de dados. Este recurso permite visualizar exatamente quais aplicativos estão gerando workloads específicas de banco de dados. Para mais informações, consulte configurar a identificação de serviço de banco de dados para obter a correlação APM-banco de dados no New Relic.

Importante

Para visualizar dados de desempenho do banco de dados no APM, ambas as entidades devem estar na mesma conta New Relic. Se as entidades estiverem em contas diferentes da New Relic, você deve ter acesso a ambas as contas para visualizar os dados.

(Opcional) Configurar o gerenciamento de segredos

O recurso de gerenciamento de segredos permite gerenciar com segurança informações confidenciais, como credenciais de banco de dados. Isso ajuda a aprimorar a segurança do seu ambiente de monitoramento ao evitar a inserção direta de dados sensíveis nos arquivos de configuração. Para mais informações, consulte gerenciamento de segredos.

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 usuário do New Relic.

Para encontrar sua entidade de banco de dados Oracle no New Relic:

  1. Vá para https://one.newrelic.com > All Capabilities > Databases.
  2. Defina os critérios de pesquisa como instrumentation.provider = opentelemetry.
  3. Selecione seu banco de dados Oracle na lista de entidades.

Para instalar o NRDOT Collector em ambientes RDS, siga estas etapas:

Método de instalação

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 RDS Oracle.

  1. Faça login no banco de dados raiz como administrador:

    CREATE USER <USERNAME> IDENTIFIED BY "<USER_PASSWORD>";
  2. Conceda privilégios CONNECT ao usuário recém-criado:

    GRANT CONNECT TO <USERNAME>;

Conceder privilégios de monitoramento para o banco de dados RDS

Execute as seguintes instruções SQL para conceder privilégios de monitoramento. Substitua <USERNAME_IN_UPPERCASE> pelo seu nome de usuário em letras maiúsculas:

SET SERVEROUTPUT ON;
BEGIN
FOR r IN (SELECT column_value as view_name FROM table(sys.odcivarchar2list(
'V_$SESSION', 'V_$SYSSTAT', 'V_$SESSTAT', 'V_$STATNAME',
'V_$SYSTEM_EVENT', 'V_$SHARED_SERVER', 'V_$DISPATCHER',
'V_$RESOURCE_LIMIT', 'V_$LOCK', 'V_$DATABASE',
'V_$PARAMETER', 'V_$SQLAREA', 'V_$SQL', 'V_$SQL_PLAN',
'V_$PDBS', 'GV_$INSTANCE', 'GV_$SGA', 'GV_$SESSTAT',
'GV_$STATNAME', 'GV_$SYSSTAT', 'GV_$SQLAREA',
'GV_$LIBRARYCACHE', 'GV_$ROWCACHE', 'GV_$PGASTAT',
'GV_$CONTAINERS', 'GV_$PDBS', 'GV_$CON_SYSMETRIC',
'GV_$SYSMETRIC', 'GV_$FILESTAT', 'GV_$SYSTEM_EVENT',
'GV_$ACTIVE_SERVICES', 'GV_$SESSION', 'GV_$SESSION_WAIT',
'GV_$ROLLSTAT', 'DBA_OBJECTS', 'DBA_TABLESPACES',
'DBA_TABLESPACE_USAGE_METRICS', 'DBA_DATA_FILES', 'DBA_USERS',
'CDB_SERVICES', 'CDB_DATA_FILES', 'CDB_TABLESPACE_USAGE_METRICS',
'CDB_USERS', 'CDB_PDBS', 'ALL_USERS', 'ALL_VIEWS', 'GLOBAL_NAME'
))) LOOP
BEGIN
rdsadmin.rdsadmin_util.grant_sys_object(
p_obj_name => r.view_name,
p_grantee => '<USERNAME_IN_UPPERCASE>',
p_privilege => 'SELECT'
);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('FAILED: ' || r.view_name || ' | Error: ' || SQLERRM);
END;
END LOOP;
END;
/

Configurar o NRDOT Collector

  1. Edite seu arquivo config.yaml disponível em /etc/nrdot-collector-host/ e adicione o seguinte trecho de código:

    Importante

    Se você já é um usuário do NRDOT Collector, certifique-se de mesclar a configuração acima com o seu arquivo config.yaml existente. Isso inclui adicionar os novos receptores, processadores e exportadores para o monitoramento do Oracle Database, mantendo suas configurações atuais.

    receivers:
    newrelicoracledb/pdb:
    endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>"
    username: "<USERNAME>"
    password: "<PASSWORD>"
    service: "<PDB_NAME>"
    collection_interval: 30s
    timeout: 30s
    # pdb_services: ['PDB1','PDB2'] #for multiple pdbs
    # query_monitoring_response_time_threshold: 500
    # query_monitoring_count_threshold: 30
    # enable_query_monitoring: true
    # enable_pdb_scraper: true
    # enable_tablespace_scraper: true
    # enable_core_scraper: true
    # enable_system_scraper: true
    # enable_connection_scraper: true
    # enable_container_scraper: true
    # enable_database_info_scraper: true
    processors:
    transform/clear_metadata:
    metric_statements:
    - context: metric
    statements:
    - set(metric.description, "")
    - set(metric.unit, "")
    log_statements:
    - context: log
    statements:
    - set(log.body, "")
    filter/exec_plan_and_query_details_include:
    metrics:
    include:
    match_type: strict
    metric_names:
    - newrelicoracledb.execution_plan
    - newrelicoracledb.slow_queries.query_details
    filter/exec_plan_and_query_details_exclude:
    metrics:
    exclude:
    match_type: strict
    metric_names:
    - newrelicoracledb.execution_plan
    - newrelicoracledb.slow_queries.query_details
    cumulativetodelta:
    include:
    match_type: strict
    metrics:
    - newrelicoracledb.connection.bytes_received
    - newrelicoracledb.connection.bytes_sent
    - newrelicoracledb.connection.execute_count
    - newrelicoracledb.connection.logons_cumulative
    - newrelicoracledb.connection.parse_count_hard
    - newrelicoracledb.connection.parse_count_total
    - newrelicoracledb.connection.sqlnet_roundtrips
    - newrelicoracledb.connection.user_commits
    - newrelicoracledb.connection.user_rollbacks
    connectors:
    metricsaslogs:
    include_resource_attributes: true
    include_scope_info: true
    exporters:
    otlp:
    endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>"
    headers:
    api-key: "<YOUR_NEWRELIC_API_KEY>"
    compression: gzip
    service:
    pipelines:
    metrics:
    receivers: [newrelicoracledb/pdb]
    processors: [transform/clear_metadata, filter/exec_plan_and_query_details_exclude, cumulativetodelta]
    exporters: [otlp]
    metrics/exec_plan_and_query_details_to_logs:
    receivers: [newrelicoracledb/pdb]
    processors: [filter/exec_plan_and_query_details_include]
    exporters: [metricsaslogs]
    logs/newrelicoracledb:
    receivers: [metricsaslogs]
    processors: [transform/clear_metadata]
    exporters: [otlp]
  2. Defina os seguintes parâmetros obrigatórios no arquivo de configuração:

    Parâmetro

    Descrição

    <YOUR_DB_HOST>

    Insira o nome do host do banco de dados Oracle.

    <YOUR_DB_PORT>

    Insira a porta do seu banco de dados Oracle.

    <USERNAME>

    Insira seu nome de usuário do banco de dados.

    <PASSWORD>

    Insira a senha do seu banco de dados.

    <PDB_NAME>

    Insira o nome do serviço PDB.

    <YOUR_NEWRELIC_OTLP_ENDPOINT>

    Insira o endpoint OTLP da New Relic. Para mais informações, consulte a documentação dos endpoints OTLP da New Relic.

    <YOUR_NEWRELIC_API_KEY>

    Insira sua chave de API da New Relic.

    pdb_services

    Selecione os serviços PDB para monitorar nas opções a seguir:

    • Vazio ou nulo: Coletar apenas dados de serviço especificados
    • ["pdb1", "pdb2"]: Coletar apenas serviços de PDB especificados

    enable_query_monitoring

    Obtenha métricas de monitoramento de consultas, como sessões lentas, ativas, em espera, de bloqueio e plano de execução. O valor padrão é definido como

    false

    query_monitoring_response_time_threshold

    Defina o limite para o tempo de resposta da consulta (em ms). Captura as consultas que ultrapassam este limiar. O valor padrão é definido como 500ms.

    query_monitoring_count_threshold

    O número de registros para cada métrica de desempenho de consulta. O valor padrão é definido como 30

Reiniciar o coletor NRDOT

Após atualizar a configuração, reinicie o coletor NRDOT:

bash
$
sudo systemctl restart nrdot-collector-host
$
sudo systemctl status nrdot-collector-host

Dica

Sempre reinicie o coletor NRDOT após fazer alterações de configuração para garantir que as novas configurações entrem em vigor.

(Opcional) Configuração de multirreceptor

O binário nrdot-collector-host suporta uma configuração de múltiplos receptores em um único config.yaml para monitorar várias instâncias de banco de dados Oracle usando credenciais exclusivas. O exemplo config.yaml abaixo demonstra como configurar vários receptores para diferentes instâncias RDS, compartilhando processadores e exportadores comuns.

receivers:
# First RDS Instance
newrelicoracledb/pdb/rds1:
endpoint: "<YOUR_DB_HOST_1>:<YOUR_DB_PORT_1>"
username: "<USERNAME_1>"
password: "<PASSWORD_1>"
service: "<PDB_NAME_1>"
collection_interval: 30s
timeout: 30s
# query_monitoring_response_time_threshold: 500
# query_monitoring_count_threshold: 30
# enable_query_monitoring: true
# Second RDS Instance
newrelicoracledb/pdb/rds2:
endpoint: "<YOUR_DB_HOST_2>:<YOUR_DB_PORT_2>"
username: "<USERNAME_2>"
password: "<PASSWORD_2>"
service: "<PDB_NAME_2>"
collection_interval: 30s
timeout: 30s
# query_monitoring_response_time_threshold: 500
# query_monitoring_count_threshold: 30
# enable_query_monitoring: true
processors:
transform/clear_metadata:
metric_statements:
- context: metric
statements:
- set(metric.description, "")
- set(metric.unit, "")
log_statements:
- context: log
statements:
- set(log.body, "")
filter/exec_plan_and_query_details_include:
metrics:
include:
match_type: strict
metric_names:
- newrelicoracledb.execution_plan
- newrelicoracledb.slow_queries.query_details
filter/exec_plan_and_query_details_exclude:
metrics:
exclude:
match_type: strict
metric_names:
- newrelicoracledb.execution_plan
- newrelicoracledb.slow_queries.query_details
connectors:
metricsaslogs:
include_resource_attributes: true
include_scope_info: true
exporters:
otlp:
endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>"
headers:
api-key: "<YOUR_NEWRELIC_API_KEY>"
compression: gzip
service:
pipelines:
# Separate metrics pipelines to apply unique resource names
metrics/rds1:
receivers: [newrelicoracledb/pdb/rds1]
processors: [transform/clear_metadata, filter/exec_plan_and_query_details_exclude]
exporters: [otlp]
metrics/rds2:
receivers: [newrelicoracledb/pdb/rds2]
processors: [transform/clear_metadata, filter/exec_plan_and_query_details_exclude]
exporters: [otlp]
# Combined logs pipeline for execution plans and query details
metrics/exec_plan_and_query_details_to_logs:
receivers: [newrelicoracledb/pdb/rds1, newrelicoracledb/pdb/rds2]
processors: [filter/exec_plan_and_query_details_include]
exporters: [metricsaslogs]
logs/newrelicoracledb:
receivers: [metricsaslogs]
processors: [transform/clear_metadata]
exporters: [otlp]

Dica

  • Esta configuração permite monitorar múltiplas instâncias do Oracle RDS 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.

  • Reinicie o coletor NRDOT após atualizar a configuração para aplicar as alterações.

(Opcional) Configurar a correlação entre APM e banco de dados

Para correlacionar o desempenho da sua aplicação com as operações de banco de dados, você pode configurar a identificação de serviço de banco de dados. Este recurso permite visualizar exatamente quais aplicativos estão gerando workloads específicas de banco de dados. Para mais informações, consulte configurar a identificação de serviço de banco de dados para obter a correlação APM-banco de dados no New Relic.

Importante

Para visualizar dados de desempenho do banco de dados no APM, ambas as entidades devem estar na mesma conta da New Relic. Se as entidades estiverem em contas diferentes, você deve ter acesso a ambas as contas para visualizar os dados.

(Opcional) Configurar o gerenciamento de segredos

O recurso de gerenciamento de segredos permite gerenciar com segurança informações confidenciais, como credenciais de banco de dados. Isso ajuda a aprimorar a segurança do seu ambiente de monitoramento ao evitar a inserção direta de dados sensíveis nos arquivos de configuração. Para mais informações, consulte gerenciamento de segredos.

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 usuário do New Relic.

Para encontrar sua entidade de banco de dados Oracle no New Relic:

  1. Vá para https://one.newrelic.com > All Capabilities > Databases.
  2. Defina os critérios de pesquisa como instrumentation.provider = opentelemetry.
  3. Selecione seu banco de dados Oracle na lista de entidades.

Comandos suportados pelo coletor NRDOT

Esta seção fornece uma lista de comandos comuns para gerenciar o serviço NRDOT Collector no seu sistema.

Métricas disponíveis

Monitore o desempenho do banco de dados Oracle com métricas organizadas por flags de configuração. Métricas padrão são coletadas automaticamente para a funcionalidade da interface do New Relic. Você também pode usar as métricas adicionais fornecidas para obter insights avançados e mais profundos ao ativar scrapers específicos.

Métrica padrão

Essas métricas são essenciais para os recursos de monitoramento de banco de dados Oracle da New Relic e são coletadas automaticamente, independentemente da sua configuração.

Métricas adicionais

Ative essas métricas adicionais conforme necessário para obter insights mais profundos sobre o desempenho e a saúde do seu banco de dados Oracle.

Qual é o próximo

Após configurar o monitoramento de banco de dados Oracle com o NRDOT:

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.