Obtenez des informations détaillées complètes sur les performances de votre base de données conteneur (CDB) Oracle avec le monitoring de base de données, l’analyse des requêtes, et les métriques de santé du système à l’aide du collecteur New Relic Distribution of OpenTelemetry (NRDOT). Toutes les bases de données enfichables (PDB) sous la CDB configurée sont monitorées.
Installation guidée
Pour installer plutôt via l’UI de New Relic, accédez à one.newrelic.com > Integrations & Agents > Oracle (Database 360). Cette page traite uniquement de l’installation manuelle.
Prérequis
Avant de commencer, assurez-vous d’avoir les éléments suivants :
- Une 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
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 multitenant. Cela nécessite de créer un utilisateur commun avec le préfixe C##.
Pour définir votre contexte de conteneur actif actuel sur
CDB$ROOT, exécutez l’instruction suivante en tant qu’utilisateurSYS:ALTER SESSION SET CONTAINER = CDB$ROOT;Pour les bases de données multi-locataires :
Connectez-vous à la base de données racine en tant qu'administrateur.
Pour créer un nouvel utilisateur, exécutez l'instruction
CREATE USERsuivante :CREATE USER c##<YOUR_DB_USERNAME> IDENTIFIED BY "<YOUR_DB_PASSWORD>" CONTAINER=ALL;GRANT CREATE SESSION TO c##<YOUR_DB_USERNAME> CONTAINER=ALL;Conseil
L’utilisateur nouvellement créé sera un utilisateur commun avec le préfixe
C##. Le préfixeC##est requis pour les utilisateurs communs par Oracle.
Pour permettre à l’utilisateur de monitoring de voir les lignes de chaque PDB dans les vues de données de conteneur, exécutez l’instruction suivante en tant que
SYSDBAsur la racine CDB. Ceci est requis pour les métriques et événements par PDB.ALTER USER c##<YOUR_DB_USERNAME> SET CONTAINER_DATA=ALL CONTAINER=CURRENT;Conseil
Assurez-vous que votre
USER_PASSWORDrespecte les exigences d'Oracle en matière de mot de passe du nouvel utilisateur.
Accorder des privilèges de monitoring pour une base de données multitenant
Exécutez les GRANT instructions suivantes en tant que SYSDBA sur la racine CDB. Celles-ci couvrent la détection d’instance, la collecte de métriques, le monitoring par PDB, et la collecte d’événements. Vous pouvez les exécuter ensemble sous forme de script unique, ou exécuter chaque instruction individuellement.
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;Conseil
Les droits V_$ASM_DISKGROUP_STAT et V_$ASM_DISK_STAT ne sont requis que si vous souhaitez collecter les métriques de disque et de groupe de disques ASM.
Configurer le collecteur NRDOT
Configurez le Collector NRDOT avec vos paramètres spécifiques à la CDB.
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 capture les métriques de base de référence essentielles. Pour voir le catalogue complet des métriques, consultez la référence de configuration.
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]- Dans la section Événements, activez ces types d’événements pour collecter leurs métriques :
Événement | Description |
|---|---|
| Échantillons de requêtes actives par session capturant le SQL actuel, l’état d’attente et les détails de blocage. |
| Top N des instructions SQL par CPU ou temps écoulé, y compris les statistiques d’exécution et les plans de requête. |
| Nombres et durées d’attente cumulés par session à partir de |
| Top N des procédures stockées classées par utilisation des ressources, y compris les statistiques d'exécution. |
| Détails du plan d'exécution pour les requêtes principales et échantillonnées. |
- Configurez les paramètres de collecte pour chaque type d’événement :
Section de configuration | paramètres | Valeur |
|---|---|---|
|
| 1000 |
|
| 200 |
|
| 60s |
|
| 100 |
|
| 100 |
|
| 1000 |
|
| 250 |
|
| 60s |
Conseil
Pour plus de détails sur la configuration du point de terminaison OTLP New Relic et les bonnes pratiques OpenTelemetry, consultez la documentation OpenTelemetry OTLP.
Mettre à jour la configuration du Collector NRDOT
Mettez à jour la configuration du Collector NRDOT 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.
- Configurez le Récepteur de requêtes SQL: pour collecter des métriques personnalisées depuis votre base de données Oracle.
- Liez votre base de données Oracle avec 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 que les nouveaux paramètres soient pris en compte.
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'UI 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 CDB dans New Relic.
Référence des métriques
Découvrez les métriques disponibles collectées par le collecteur NRDOT.
Instrumentation RDS
Découvrez comment configurer votre base de données Oracle pour le monitoring RDS dans New Relic.
Installation Docker
Découvrez comment exécuter le Collector NRDOT en tant que conteneur frère d'une instance de base de données Oracle s'exécutant déjà dans Docker.