Obtenga información valiosa y completa sobre el rendimiento de la base de datos de contenedor (CDB) de Oracle con el monitoreo de base de datos, el análisis de consultas y las métricas de estado del sistema mediante el recolector de New Relic Distribution of OpenTelemetry (NRDOT). Se monitorean todas las bases de datos conectables (PDB) bajo la CDB configurada.
Instalación guiada
Para instalar a través de la UI de New Relic en su lugar, vaya a one.newrelic.com > Integrations & Agents > Oracle (Database 360). Esta página solo cubre la instalación manual.
Requisitos previos
Antes de comenzar, cerciorar de tener lo siguiente:
- Una clave de licenciade New Relic válida
- Arquitectura compatible: Linux con AMD64 y ARM64
- Conectividad de red al extremo OTLP de New Relic
- Oracle Database
19co posterior
Instalar NRDOT Collector
Seleccione el método de distribución de instalación adecuado para su entorno Linux:
Configurar el usuario de la base de datos
Cree un usuario de monitoreo con los privilegios necesarios para su base de datos Oracle multitenant. Esto requiere crear un usuario común con el prefijo C##.
Para establecer el contexto de contenedor activo actual en
CDB$ROOT, ejecute la siguiente sentencia como usuarioSYS:ALTER SESSION SET CONTAINER = CDB$ROOT;Para bases de datos multiinquilino:
Inicie sesión en la base de datos raíz como administrador.
Para crear un nuevo usuario, ejecute la siguiente sentencia
CREATE USER:CREATE USER c##<YOUR_DB_USERNAME> IDENTIFIED BY "<YOUR_DB_PASSWORD>" CONTAINER=ALL;GRANT CREATE SESSION TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;Sugerencia
El usuario recién creado será un usuario común con el prefijo
C##. El prefijoC##es requerido por Oracle para los usuarios comunes.
Para permitir que el usuario de monitoreo vea las filas de cada PDB en las vistas de datos de contenedor, ejecute la siguiente sentencia como
SYSDBAen la raíz de CDB. Esto es necesario para las métricas y eventos por PDB.ALTER USER c##<YOUR_DB_USERNAME> SET CONTAINER_DATA=ALL CONTAINER=CURRENT;Sugerencia
Asegúrese de que su
USER_PASSWORDcumpla con los requisitos de contraseña de nuevo usuario de Oracle.
Otorgar privilegios de monitoreo para la base de datos multiinquilino
Ejecute las siguientes sentencias de GRANT como SYSDBA en la raíz de CDB. Estas cubren la detección de instancia, la recopilación de métricas, el monitoreo por PDB y la recopilación de eventos. Puede ejecutarlas juntas como un solo script o ejecutar cada sentencia individualmente.
GRANT SELECT ON V_$INSTANCE TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$DATABASE TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$CONTAINERS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$DATAFILE TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$SYSSTAT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$CON_SYSSTAT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$SYSMETRIC TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$CON_SYSMETRIC TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$SESSION TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$RESOURCE_LIMIT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$OSSTAT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$SGAINFO TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$ROWCACHE TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$PARAMETER 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_TABLESPACES TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON DBA_DATA_FILES TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON DBA_FREE_SPACE TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON DBA_RECYCLEBIN TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$SQL TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$SQL_PLAN_STATISTICS_ALL TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$LOCK TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$SESSION_EVENT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON DBA_PROCEDURES TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON DBA_OBJECTS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$PDBS 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_PROCEDURES TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON CDB_OBJECTS TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$ASM_DISKGROUP_STAT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;GRANT SELECT ON V_$ASM_DISK_STAT TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;Sugerencia
Los permisos V_$ASM_DISKGROUP_STAT y V_$ASM_DISK_STAT solo son necesarios si desea recopilar métricas de disco y grupo de discos de ASM.
Configurar el Colector NRDOT
Configure el Collector de NRDOT con la configuración específica de CDB.
Cree el archivo de configuración. El nombre del archivo debe ser
oracle-config.yaml.bash$sudo nano /etc/nrdot-collector/oracle-config.yamlAgregue el siguiente contenido de configuración al archivo
oracle-config.yamlque creó en el paso anterior.
configuración completa
Esta configuración captura métricas esenciales de línea de base. Para ver el catálogo completo de métricas, consulte la referencia de configuración.
1receivers:2nroracledb:3 endpoint: oracle.example.com:15214 username: C##newrelic5 password: YOUR_PASSWORD6 service: YOUR_CDB_SERVICE_NAME7 collection_interval: 15s8events:9 db.server.query_sample:10 enabled: true11 db.server.top_query:12 enabled: true13 db.server.session.wait_sample:14 enabled: true15 db.server.top_procedure:16 enabled: true17 db.server.query_plan:18 enabled: true19
20top_query_collection:21 max_query_sample_count: 100022 top_query_count: 20023 collection_interval: 60s24 allowed_comment_keys:25 - nr_service_guid26
27query_sample_collection:28 max_rows_per_query: 10029 allowed_comment_keys:30 - nr_service_guid31
32session_wait_event_collection:33 max_rows_per_query: 10034
35top_procedure_collection:36 max_procedure_sample_count: 100037 top_procedure_count: 25038 collection_interval: 60s39
40 # Metrics configuration - This baseline configuration captures essential metrics. To enable advanced monitoring and extended telemetry, refer to the full configuration documentation41metrics:42 oracledb.buffer_cache.utilization:43 enabled: true44 attributes:45 - oracle.db.pdb46 oracledb.consistent_gets:47 enabled: true48 attributes:49 - oracle.db.pdb50 oracledb.cpu_time:51 enabled: true52 attributes:53 - oracle.db.pdb54 oracledb.database.cpu.utilization:55 enabled: true56 attributes:57 - oracle.db.pdb58 oracledb.database.wait.utilization:59 enabled: true60 attributes:61 - oracle.db.pdb62 oracledb.db_block_gets:63 enabled: true64 attributes:65 - oracle.db.pdb66 oracledb.enqueue_deadlocks:67 enabled: true68 attributes:69 - oracle.db.pdb70 oracledb.execution.utilization:71 enabled: true72 attributes:73 - oracledb.parse.type74 - oracle.db.pdb75 oracledb.executions:76 enabled: true77 attributes:78 - oracle.db.pdb79 oracledb.hard_parses:80 enabled: true81 attributes:82 - oracle.db.pdb83 oracledb.host.cpu.utilization:84 enabled: true85 attributes:86 - oracle.db.pdb87 oracledb.library_cache.utilization:88 enabled: true89 attributes:90 - oracle.db.pdb91 oracledb.logical_reads:92 enabled: true93 attributes:94 - oracle.db.pdb95 oracledb.logons:96 enabled: true97 attributes:98 - oracle.db.pdb99 oracledb.parse.rate:100 enabled: true101 attributes:102 - oracledb.parse.result103 - oracle.db.pdb104 oracledb.parse_calls:105 enabled: true106 attributes:107 - oracle.db.pdb108 oracledb.pga_memory:109 enabled: true110 attributes:111 - oracle.db.pdb112 oracledb.physical_io.requests:113 enabled: true114 attributes:115 - disk.io.direction116 - disk.io.block_size117 - oracle.db.pdb118 oracledb.physical_reads:119 enabled: true120 attributes:121 - oracle.db.pdb122 oracledb.physical_writes:123 enabled: true124 attributes:125 - oracle.db.pdb126 oracledb.processes.usage:127 enabled: true128 oracledb.sessions.usage:129 enabled: true130 attributes:131 - session_type132 - session_status133 - oracle.db.pdb134 oracledb.sga.usage:135 enabled: true136 attributes:137 - oracledb.sga.component.name138 oracledb.shared_pool.utilization:139 enabled: true140 attributes:141 - oracle.db.pdb142 oracledb.sql_service.response.duration:143 enabled: true144 attributes:145 - oracle.db.pdb146 oracledb.sqlnet.io.transferred:147 enabled: true148 attributes:149 - network.io.direction150 - destination.type151 - oracle.db.pdb152 oracledb.tablespace_size.usage:153 enabled: true154 attributes:155 - tablespace_name156 - oracle.db.pdb157 oracledb.transactions.usage:158 enabled: true159 oracledb.user_commits:160 enabled: true161 attributes:162 - oracle.db.pdb163 oracledb.user_rollbacks:164 enabled: true165 attributes:166 - oracle.db.pdb167
168 # Resource attributes attached to all metrics/logs (all enabled by default)169resource_attributes:170 oracle.db.edition:171 enabled: true172exporters:173 otlp/newrelic:174 endpoint: https://otlp.nr-data.net:4318175headers:176 api-key: YOUR_LICENSE_KEY177 compression: gzip178retry_on_failure:179 enabled: true180 initial_interval: 5s181 max_interval: 30s182 max_elapsed_time: 300s183sending_queue:184 enabled: true185 sizer: bytes186 queue_size: 100_000_000187 num_consumers: 10188 batch:189 sizer: bytes190 max_size: 1_000_000191 min_size: 0192 flush_timeout: 5s193service:194pipelines:195 metrics/oracledb:196 receivers: [nroracledb]197 exporters: [otlp/newrelic]198 logs/oracledb:199 receivers: [nroracledb]200 exporters: [otlp/newrelic]- En la sección de eventos, habilite estos tipos de eventos para recopilar sus métricas:
evento | Descripción |
|---|---|
| Muestras de consultas activas por sesión que capturan el SQL actual, el estado de espera y los detalles de bloqueo. |
| Las N principales sentencias SQL por CPU o tiempo transcurrido, incluidas las estadísticas de ejecución y los planes de consulta. |
| Recuentos y duraciones de espera acumulados por sesión de |
| Los N principales procedimientos almacenados clasificados por uso de recursos, incluidas las estadísticas de ejecución. |
| Detalles del plan de ejecución para las consultas principales y muestreadas. |
- Configure los ajustes de recopilación para cada tipo de evento:
Sección de configuración | Parámetro | Valor |
|---|---|---|
|
| 1000 |
|
| 200 |
|
| 60s |
|
| 100 |
|
| 100 |
|
| 1000 |
|
| 250 |
|
| 60s |
Sugerencia
Para obtener información más detallada sobre la configuración del endpoint OTLP de New Relic y las mejores prácticas de OpenTelemetry, consulte la documentación de OTLP de OpenTelemetry.
Actualizar la configuración de NRDOT Collector
Actualice la configuración del NRDOT Collector para utilizar el archivo 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.confSugerencia
Tú también puedes:
- Configurar múltiples receptores: para monitorear múltiples instancias de base de datos Oracle desde un recolector.
- Configurar el receptor de consultas SQL: para recopilar métricas personalizadas de la base de datos Oracle.
- Vincule su Oracle Database con APM: para correlacionar el rendimiento de la aplicación con las operaciones de la base de datos. Esto le permite ver exactamente qué aplicaciones están generando cargas de trabajo de base de datos específicas.
- Configurar la gestión de secretos: para administrar de forma segura información confidencial, como las credenciales de bases de datos. Esto ayuda a mejorar la seguridad de su configuración de monitoreo al evitar la codificación rígida de datos sensibles en los archivos de configuración.
Reiniciar NRDOT Collector
Después de actualizar la configuración, reinicie el NRDOT Collector:
$sudo systemctl restart nrdot-collector.service$sudo systemctl status nrdot-collector.serviceSugerencia
Reinicie siempre el NRDOT Collector después de realizar cambios de configuración para que los nuevos ajustes surtan efecto.
Encuentra y utiliza tus datos
Una vez que se estén recopilando sus datos, puede acceder a un monitoreo integral de Oracle Database a través de la UI de New Relic.
Para encontrar su entidad de base de datos Oracle en New Relic:
- Vaya a https://one.newrelic.com > All Capabilities > Databases.
- Establezca los criterios de búsqueda como
instrumentation.provider = opentelemetry. - Seleccione su base de datos Oracle de la lista de entidades.
Artículos relacionados
Resolución de problemas
Aprenda a solucionar problemas de la configuración de monitoreo de Oracle CDB en New Relic.
Referencia de métricas
Obtenga información sobre las métricas disponibles recopiladas por NRDOT Collector.
Instrumentación de RDS
Aprenda a configurar su Oracle Database para el monitoreo de RDS en New Relic.
Instalación de Docker
Aprenda a ejecutar el NRDOT Collector como un contenedor hermano de una instancia de base de datos de Oracle que ya se ejecuta en Docker.