Aperçu
Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez !
Cette fonctionnalité est actuellement fournie dans le cadre d'un aperçu conformément à nos politiques de pré-sortie.
Obtenez des informations détaillées complètes sur les performances de votre base de données Amazon RDS Oracle grâce au monitoring de base de données, à l'analyse des requêtes, et aux métriques de santé du système à l'aide du collecteur New Relic Distribution of OpenTelemetry (NRDOT).
Installation guidée
Pour installer plutôt via l'UI de New Relic, accédez à one.newrelic.com > Integrations & Agents > Oracle (OpenTelemetry) . Cette page couvre uniquement l'installation via la CLI.
Prérequis
Avant de commencer, assurez-vous d’avoir les éléments suivants :
- Clé de licenceNew Relic valide
- Architecture prise en charge : Linux avec AMD64 et ARM64
- Connectivité réseau vers le point de terminaison OTLP de New Relic
- Oracle Database
19cou version ultérieure
Inscrivez-vous à la préversion
Cette intégration est disponible dans le cadre du programme d'aperçu public de New Relic. Contactez le responsable de votre organisation pour vous inscrire à partir de la page Previews & Trials.
Installer le collecteur NRDOT
Sélectionnez la méthode de distribution de l'installation appropriée pour votre environnement Linux :
Configurer l'utilisateur de la base de données
Créez un utilisateur de monitoring avec les privilèges nécessaires pour votre base de données Oracle RDS.
Connectez-vous à la base de données racine en tant qu'administrateur :
CREATE USER <USERNAME> IDENTIFIED BY "<USER_PASSWORD>";Accorder les privilèges
CONNECTà l'utilisateur nouvellement créé :GRANT CONNECT TO <USERNAME>;
Accorder des privilèges de monitoring pour la base de données RDS
Exécutez les instructions SQL suivantes pour accorder des privilèges de monitoring. Remplacez <USERNAME_IN_UPPERCASE> par votre nom d'utilisateur en majuscules :
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>;Configurer le collecteur NRDOT
Configurez le NRDOT Collector avec vos paramètres spécifiques à RDS.
Créez le fichier de configuration. Le nom du fichier doit être
oracle-config.yaml.bash$sudo nano /etc/nrdot-collector/oracle-config.yamlAjoutez le contenu de configuration ci-dessous au fichier
oracle-config.yamlque vous avez créé à l'étape précédente.configuration complète
Cette configuration se concentre uniquement sur le monitoring de la base de données sans les métriques d’infrastructure de l’hôte. Pour activer le monitoring de toutes les fonctionnalités, consultez la référence de configuration.
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]
Dans la section Événements, activez ces types d’événements pour collecter leurs métriques :
Événement
Description
db.server.query_sampleÉchantillons de requêtes actives par session capturant le SQL actuel, l’état d’attente et les détails de blocage.
db.server.top_queryTop N des instructions SQL par CPU ou temps écoulé, y compris les statistiques d’exécution et les plans de requête.
db.server.session.wait_sampleNombres et durées d’attente cumulés par session à partir de
v$session_event.
Configurez les paramètres de collecte pour chaque type d’événement :
Section de configuration
paramètres
Valeur
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
Mettre à jour la configuration du Collector NRDOT
Mettez à jour la configuration du NRDOT Collector pour utiliser votre fichier 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.confConseil
Vous pouvez également :
- Configurer plusieurs récepteurs: pour monitorer plusieurs instances de base de données Oracle à partir d’un seul collecteur.
- Configurer le Récepteur de requêtes SQL: pour collecter des métriques personnalisées à partir de votre base de données Oracle.
- Lier votre base de données Oracle à l'APM: pour corréler les performances de vos applications avec les opérations de base de données. Cela vous permet de voir exactement quelles applications génèrent des workloads de base de données spécifiques.
- Configurer la gestion des secrets: pour gérer en toute sécurité des informations sensibles, telles que les identifiants de base de données. Cela permet de renforcer la sécurité de votre configuration de monitoring en évitant de coder en dur des données sensibles dans les fichiers de configuration.
Redémarrer NRDOT Collector
Après avoir mis à jour votre configuration, redémarrez le Collector NRDOT :
$sudo systemctl restart nrdot-collector.service$sudo systemctl status nrdot-collector.serviceConseil
Redémarrez toujours le Collector NRDOT après avoir modifié la configuration pour garantir la prise en compte des nouveaux paramètres.
Trouvez et utilisez vos données
Une fois vos données collectées, vous pouvez accéder à un monitoring complet de la base de données Oracle via l'interface utilisateur de New Relic.
Pour trouver votre entité de base de données Oracle dans New Relic :
- Allez à https://one.newrelic.com > All Capabilities > Databases.
- Définissez les critères de recherche comme
instrumentation.provider = opentelemetry. - Sélectionnez votre base de données Oracle dans la liste des entités.
Articles connexes
Dépannage
Découvrez comment dépanner votre configuration de monitoring Oracle RDS dans New Relic.
Référence des métriques
Découvrez les métriques disponibles collectées par le collecteur NRDOT.
Instrumentation CDB
Découvrez comment configurer votre base de données Oracle pour le monitoring CDB dans New Relic.