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.
oracle-config.yaml1receivers:2nroracledb:3endpoint: oracle.example.com:15214username: C##newrelic5password: YOUR_PASSWORD6service: YOUR_CDB_SERVICE_NAME7collection_interval: 15s8events:9db.server.query_sample:10enabled: true11db.server.top_query:12enabled: true13db.server.session.wait_sample:14enabled: true15db.server.top_procedure:16enabled: true17db.server.query_plan:18enabled: true1920top_query_collection:21max_query_sample_count: 100022top_query_count: 20023collection_interval: 60s24allowed_comment_keys:25- nr_service_guid2627query_sample_collection:28max_rows_per_query: 10029allowed_comment_keys:30- nr_service_guid3132session_wait_event_collection:33max_rows_per_query: 1003435top_procedure_collection:36max_procedure_sample_count: 100037top_procedure_count: 25038collection_interval: 60s3940# Metrics configuration - This baseline configuration captures essential metrics. To enable advanced monitoring and extended telemetry, refer to the full configuration documentation41metrics:42oracledb.buffer_cache.utilization:43enabled: true44attributes:45- oracle.db.pdb46oracledb.consistent_gets:47enabled: true48attributes:49- oracle.db.pdb50oracledb.cpu_time:51enabled: true52attributes:53- oracle.db.pdb54oracledb.database.cpu.utilization:55enabled: true56attributes:57- oracle.db.pdb58oracledb.database.wait.utilization:59enabled: true60attributes:61- oracle.db.pdb62oracledb.db_block_gets:63enabled: true64attributes:65- oracle.db.pdb66oracledb.enqueue_deadlocks:67enabled: true68attributes:69- oracle.db.pdb70oracledb.execution.utilization:71enabled: true72attributes:73- oracledb.parse.type74- oracle.db.pdb75oracledb.executions:76enabled: true77attributes:78- oracle.db.pdb79oracledb.hard_parses:80enabled: true81attributes:82- oracle.db.pdb83oracledb.host.cpu.utilization:84enabled: true85attributes:86- oracle.db.pdb87oracledb.library_cache.utilization:88enabled: true89attributes:90- oracle.db.pdb91oracledb.logical_reads:92enabled: true93attributes:94- oracle.db.pdb95oracledb.logons:96enabled: true97attributes:98- oracle.db.pdb99oracledb.parse.rate:100enabled: true101attributes:102- oracledb.parse.result103- oracle.db.pdb104oracledb.parse_calls:105enabled: true106attributes:107- oracle.db.pdb108oracledb.pga_memory:109enabled: true110attributes:111- oracle.db.pdb112oracledb.physical_io.requests:113enabled: true114attributes:115- disk.io.direction116- disk.io.block_size117- oracle.db.pdb118oracledb.physical_reads:119enabled: true120attributes:121- oracle.db.pdb122oracledb.physical_writes:123enabled: true124attributes:125- oracle.db.pdb126oracledb.processes.usage:127enabled: true128oracledb.sessions.usage:129enabled: true130attributes:131- session_type132- session_status133- oracle.db.pdb134oracledb.sga.usage:135enabled: true136attributes:137- oracledb.sga.component.name138oracledb.shared_pool.utilization:139enabled: true140attributes:141- oracle.db.pdb142oracledb.sql_service.response.duration:143enabled: true144attributes:145- oracle.db.pdb146oracledb.sqlnet.io.transferred:147enabled: true148attributes:149- network.io.direction150- destination.type151- oracle.db.pdb152oracledb.tablespace_size.usage:153enabled: true154attributes:155- tablespace_name156- oracle.db.pdb157oracledb.transactions.usage:158enabled: true159oracledb.user_commits:160enabled: true161attributes:162- oracle.db.pdb163oracledb.user_rollbacks:164enabled: true165attributes:166- oracle.db.pdb167168# Resource attributes attached to all metrics/logs (all enabled by default)169resource_attributes:170oracle.db.edition:171enabled: true172exporters:173otlp/newrelic:174endpoint: https://otlp.nr-data.net:4318175headers:176api-key: YOUR_LICENSE_KEY177compression: gzip178retry_on_failure:179enabled: true180initial_interval: 5s181max_interval: 30s182max_elapsed_time: 300s183sending_queue:184enabled: true185sizer: bytes186queue_size: 100_000_000187num_consumers: 10188batch:189sizer: bytes190max_size: 1_000_000191min_size: 0192flush_timeout: 5s193service:194pipelines:195metrics/oracledb:196receivers: [nroracledb]197exporters: [otlp/newrelic]198logs/oracledb:199receivers: [nroracledb]200exporters: [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.
db.server.top_procedureTop N des procédures stockées classées par utilisation des ressources, y compris les statistiques d'exécution.
db.server.query_planDé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
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
top_procedure_collectionmax_procedure_sample_count1000
top_procedure_collectiontop_procedure_count250
top_procedure_collectioncollection_interval60s
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.