Avance
Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras!
Esta función se proporciona actualmente como parte de una vista previa de conformidad con nuestras políticas de prelanzamiento.
Obtenga información valiosa y completa sobre el rendimiento de la base de datos de Amazon RDS Oracle con el monitoreo de la base de datos, el análisis de consultas y las métricas del estado del sistema mediante el recolector de New Relic Distribution of OpenTelemetry (NRDOT).
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 (OpenTelemetry) . Esta página solo cubre la ruta de instalación de la CLI.
Requisitos previos
Antes de comenzar, cerciorar de tener lo siguiente:
- 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
Inscribirse en la vista previa
Esta integración está disponible como parte del programa de vista previa pública (public preview) de New Relic. Comuníquese con el gerente de la organización para activarla desde la página de Previsualizaciones y pruebas (Previews & Trials).
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 RDS.
Inicie sesión en la base de datos raíz como administrador:
CREATE USER <USERNAME> IDENTIFIED BY "<USER_PASSWORD>";Otorgar privilegios de
CONNECTal usuario recién creado:GRANT CONNECT TO <USERNAME>;
Otorgar privilegios de monitoreo para la base de datos RDS
Ejecute las siguientes sentencias SQL para otorgar privilegios de monitoreo. Reemplace <USERNAME_IN_UPPERCASE> por su nombre de usuario en mayúsculas:
EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SYSMETRIC', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$CON_SYSMETRIC', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$CONTAINERS', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SESSION', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SESSION_EVENT', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SYSSTAT', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$CON_SYSSTAT', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$OSSTAT', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SGAINFO', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SQL', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SQLSTATS', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$SQL_PLAN_STATISTICS_ALL', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$PARAMETER', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$ROWCACHE', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$RESOURCE_LIMIT', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$LOCK', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$INSTANCE', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$DATAFILE', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('V_$PDBS', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_DATA_FILES', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_FREE_SPACE', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_RECYCLEBIN', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_TABLESPACES', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_TABLESPACE_USAGE_METRICS', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_PROCEDURES', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('CDB_TABLESPACE_USAGE_METRICS', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('CDB_TABLESPACES', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);EXEC rdsadmin.rdsadmin_util.grant_sys_object('CDB_SERVICES', '<USERNAME_IN_UPPERCASE>', 'SELECT', false);GRANT CREATE SESSION TO <USERNAME_IN_UPPERCASE>;Configurar el Colector NRDOT
Configure el NRDOT Collector con la configuración específica de RDS.
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 se enfoca únicamente en el monitoreo de la base de datos sin métricas de infraestructura del host. Para habilitar el monitoreo con todas las características, consulte la referencia de configuración.
oracle-config.yaml1receivers:2nroracledb/rds:3endpoint: mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com:15214username: newrelic5password: YOUR_PASSWORD6service: YOUR_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.pdb3839# === Execution & Parse Metrics ===40oracledb.executions:41enabled: true42attributes:43- oracle.db.pdb44oracledb.parse_calls:45enabled: true46attributes:47- oracle.db.pdb48oracledb.hard_parses:49enabled: true50attributes:51- oracle.db.pdb5253# === I/O & Physical Read/Write Metrics ===54oracledb.logical_reads:55enabled: true56attributes:57- oracle.db.pdb58oracledb.physical_reads:59enabled: true60attributes:61- oracle.db.pdb62oracledb.physical_reads_direct:63enabled: true64attributes:65- oracle.db.pdb66oracledb.physical_writes:67enabled: true68attributes:69- oracle.db.pdb70oracledb.physical_writes_direct:71enabled: true72attributes:73- oracle.db.pdb74oracledb.physical_read_io_requests:75enabled: true76attributes:77- oracle.db.pdb78oracledb.physical_write_io_requests:79enabled: true80attributes:81- oracle.db.pdb8283# === New Physical I/O Metrics (detailed) ===84oracledb.physical_io.cache_writes:85enabled: true86attributes:87- oracle.db.pdb88oracledb.physical_io.requests:89enabled: true90attributes:91- disk.io.direction92- disk.io.block_size93- oracle.db.pdb94oracledb.physical_io.transferred:95enabled: true96attributes:97- disk.io.direction98- disk.io.type99- oracle.db.pdb100101# === Network I/O Metrics ===102oracledb.sqlnet.io.transferred:103enabled: true104attributes:105- network.io.direction106- destination.type107- oracle.db.pdb108109# === Buffer & Cache Metrics ===110oracledb.consistent_gets:111enabled: true112attributes:113- oracle.db.pdb114oracledb.db_block_gets:115enabled: true116attributes:117- oracle.db.pdb118oracledb.data_dictionary.hit_ratio:119enabled: true120121# === Memory Metrics ===122oracledb.pga_memory:123enabled: true124attributes:125- oracle.db.pdb126oracledb.sga.limit:127enabled: true128oracledb.sga.usage:129enabled: true130attributes:131- oracledb.sga.component.name132133oracledb.enqueue_deadlocks:134enabled: true135attributes:136- oracle.db.pdb137oracledb.exchange_deadlocks:138enabled: true139attributes:140- oracle.db.pdb141142# KEEP enabled: sessions.usage is sourced from v$session, not v$resource_limit.143oracledb.sessions.usage:144enabled: true145attributes:146- session_type147- session_status148- oracle.db.pdb149oracledb.logons:150enabled: true151attributes:152- oracle.db.pdb153154oracledb.user_commits:155enabled: true156attributes:157- oracle.db.pdb158oracledb.user_rollbacks:159enabled: true160attributes:161- oracle.db.pdb162163# === Tablespace Metrics ===164oracledb.tablespace_size.limit:165enabled: true166attributes:167- tablespace_name168- oracle.db.pdb169oracledb.tablespace_size.usage:170enabled: true171attributes:172- tablespace_name173- oracle.db.pdb174175# === Storage Metrics ===176oracledb.storage.usage:177enabled: true178oracledb.storage.utilization:179enabled: true180oracledb.recycle_bin.limit:181enabled: true182183# === Parallel Operations Metrics ===184oracledb.queries_parallelized:185enabled: true186attributes:187- oracle.db.pdb188oracledb.ddl_statements_parallelized:189enabled: true190attributes:191- oracle.db.pdb192oracledb.dml_statements_parallelized:193enabled: true194attributes:195- oracle.db.pdb196oracledb.parallel_operations_not_downgraded:197enabled: true198attributes:199- oracle.db.pdb200oracledb.parallel_operations_downgraded_1_to_25_pct:201enabled: true202attributes:203- oracle.db.pdb204oracledb.parallel_operations_downgraded_25_to_50_pct:205enabled: true206attributes:207- oracle.db.pdb208oracledb.parallel_operations_downgraded_50_to_75_pct:209enabled: true210attributes:211- oracle.db.pdb212oracledb.parallel_operations_downgraded_75_to_99_pct:213enabled: true214attributes:215- oracle.db.pdb216oracledb.parallel_operations_downgraded_to_serial:217enabled: true218attributes:219- oracle.db.pdb220processors:221batch:222resource/add_event_name:223attributes:224- key: host.address225value: YOUR_DB_HOST226action: upsert227exporters:228otlp/newrelic:229endpoint: https://otlp.nr-data.net:4318230headers:231api-key: YOUR_LICENSE_KEY232compression: gzip233retry_on_failure:234enabled: true235initial_interval: 5s236max_interval: 30s237max_elapsed_time: 300s238service:239pipelines:240metrics/oracledb:241receivers: [nroracledb/rds]242processors: [resource/add_event_name, batch]243exporters: [otlp/newrelic]244logs/oracledb:245receivers: [nroracledb/rds]246processors: [resource/add_event_name, batch]247exporters: [otlp/newrelic]
En la sección de eventos, habilite estos tipos de eventos para recopilar sus métricas:
evento
Descripción
db.server.query_sampleMuestras de consultas activas por sesión que capturan el SQL actual, el estado de espera y los detalles de bloqueo.
db.server.top_queryLas N principales sentencias SQL por CPU o tiempo transcurrido, incluidas las estadísticas de ejecución y los planes de consulta.
db.server.session.wait_sampleRecuentos y duraciones de espera acumulados por sesión de
v$session_event.
Configure los ajustes de recopilación para cada tipo de evento:
Sección de configuración
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
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:
- Configure múltiples receptores: para monitorear múltiples instancias de Oracle Database desde un recolector.
- Configure SQL Query Receiver: para recopilar métricas personalizadas de su Oracle Database.
- 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 workloads de base de datos específicas.
- Configure 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 garantizar 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 bases de datos Oracle 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 RDS en New Relic.
Referencia de métricas
Obtenga información sobre las métricas disponibles recopiladas por NRDOT Collector.
Instrumentación de CDB
Aprenda a configurar la base de datos Oracle para el monitoreo de CDB en New Relic.