Get comprehensive insights into your Oracle Autonomous Database (ADB) performance with database monitoring, query analysis, and system health metrics using the New Relic Distribution of OpenTelemetry (NRDOT) collector.
Guided installation
To install through the New Relic UI instead, go to one.newrelic.com > Integrations & Agents > Oracle (OpenTelemetry) . This page covers manual installation only.
Prerequisites
Before you begin, ensure you have the following:
- A valid New Relic license key
- Supported architecture: Linux with AMD64 and ARM64
- Network connectivity to New Relic OTLP endpoint
- Oracle Database
19cor later
Install NRDOT Collector
Select the appropriate installation distribution method for your Linux environment:
Configure database user
Create a monitoring user with the necessary privileges for your ADB Oracle Database instance. Run the following statements as SYS inside your target ADB to create a local monitoring user:
CREATE USER <YOUR_DB_USERNAME> IDENTIFIED BY "<YOUR_DB_PASSWORD>";GRANT CREATE SESSION TO <YOUR_DB_USERNAME>;Grant monitoring privileges for Autonomous Database
Run these commands as an admin inside your ADB. This gives the monitoring tool the basic access it needs to collect metrics, track events, and find your database instances.
GRANT SELECT ON SYS.V_$INSTANCE TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$DATABASE TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$CONTAINERS TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$DATAFILE TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$PDBS TO <YOUR_DB_USERNAME>; GRANT SELECT ON SYS.V_$SYSSTAT TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$SYSMETRIC TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$SESSION TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$RESOURCE_LIMIT TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$OSSTAT TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$SGAINFO TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$ROWCACHE TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$PARAMETER TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.DBA_TABLESPACE_USAGE_METRICS TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.DBA_TABLESPACES TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.DBA_DATA_FILES TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.DBA_FREE_SPACE TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.DBA_RECYCLEBIN TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$SQL TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$SQL_PLAN_STATISTICS_ALL TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$LOCK TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$SESSION_EVENT TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.DBA_PROCEDURES TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.DBA_OBJECTS TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$PROCESS TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.V_$TRANSACTION TO <YOUR_DB_USERNAME>;GRANT SELECT ON SYS.CDB_SERVICES TO <YOUR_DB_USERNAME>;Configure NRDOT Collector
Configure the NRDOT Collector with your ADB-specific settings. Create a configuration file (e.g., adb-config.yaml) with the following content:
full configuration
This configuration captures essential baseline metrics. To see the complete metric catalog, refer to the configuration reference.
1receivers:2 nroracledb/adb:3 datasource: "oracle://newrelic:YOUR_PASSWORD@adb.example.oraclecloud.com:1522/YOUR_SERVICE_NAME?ssl=true&ssl%20verify=true"4 collection_interval: 15s5 events:6 db.server.query_sample:7 enabled: true8 db.server.top_query:9 enabled: true10 db.server.session.wait_sample:11 enabled: true12 db.server.top_procedure:13 enabled: true14 db.server.query_plan:15 enabled: true16
17 top_query_collection:18 max_query_sample_count: 100019 top_query_count: 20020 collection_interval: 60s21 allowed_comment_keys:22 - nr_service_guid23
24 query_sample_collection:25 max_rows_per_query: 10026 allowed_comment_keys:27 - nr_service_guid28
29 session_wait_event_collection:30 max_rows_per_query: 10031
32 top_procedure_collection:33 max_procedure_sample_count: 100034 top_procedure_count: 25035 collection_interval: 60s36
37 # Metrics configuration - This baseline configuration captures essential metrics. To enable advanced monitoring and extended telemetry, refer to the full configuration documentation38 metrics:39 oracledb.buffer_cache.utilization:40 enabled: true41 attributes:42 - oracle.db.pdb43 oracledb.consistent_gets:44 enabled: true45 attributes:46 - oracle.db.pdb47 oracledb.cpu_time:48 enabled: true49 attributes:50 - oracle.db.pdb51 oracledb.database.cpu.utilization:52 enabled: true53 attributes:54 - oracle.db.pdb55 oracledb.database.wait.utilization:56 enabled: true57 attributes:58 - oracle.db.pdb59 oracledb.db_block_gets:60 enabled: true61 attributes:62 - oracle.db.pdb63 oracledb.enqueue_deadlocks:64 enabled: true65 attributes:66 - oracle.db.pdb67 oracledb.execution.utilization:68 enabled: true69 attributes:70 - oracledb.parse.type71 - oracle.db.pdb72 oracledb.executions:73 enabled: true74 attributes:75 - oracle.db.pdb76 oracledb.hard_parses:77 enabled: true78 attributes:79 - oracle.db.pdb80 oracledb.host.cpu.utilization:81 enabled: true82 attributes:83 - oracle.db.pdb84 oracledb.library_cache.utilization:85 enabled: true86 attributes:87 - oracle.db.pdb88 oracledb.logical_reads:89 enabled: true90 attributes:91 - oracle.db.pdb92 oracledb.logons:93 enabled: true94 attributes:95 - oracle.db.pdb96 oracledb.parse.rate:97 enabled: true98 attributes:99 - oracledb.parse.result100 - oracle.db.pdb101 oracledb.parse_calls:102 enabled: true103 attributes:104 - oracle.db.pdb105 oracledb.pga_memory:106 enabled: true107 attributes:108 - oracle.db.pdb109 oracledb.physical_io.requests:110 enabled: true111 attributes:112 - disk.io.direction113 - disk.io.block_size114 - oracle.db.pdb115 oracledb.physical_reads:116 enabled: true117 attributes:118 - oracle.db.pdb119 oracledb.physical_writes:120 enabled: true121 attributes:122 - oracle.db.pdb123 oracledb.processes.usage:124 enabled: true125 oracledb.sessions.usage:126 enabled: true127 attributes:128 - session_type129 - session_status130 - oracle.db.pdb131 oracledb.sga.usage:132 enabled: true133 attributes:134 - oracledb.sga.component.name135 oracledb.shared_pool.utilization:136 enabled: true137 attributes:138 - oracle.db.pdb139 oracledb.sql_service.response.duration:140 enabled: true141 attributes:142 - oracle.db.pdb143 oracledb.sqlnet.io.transferred:144 enabled: true145 attributes:146 - network.io.direction147 - destination.type148 - oracle.db.pdb149 oracledb.tablespace_size.usage:150 enabled: true151 attributes:152 - tablespace_name153 - oracle.db.pdb154 oracledb.transactions.usage:155 enabled: true156 oracledb.user_commits:157 enabled: true158 attributes:159 - oracle.db.pdb160 oracledb.user_rollbacks:161 enabled: true162 attributes:163 - oracle.db.pdb164
165 # Resource attributes attached to all metrics/logs (all enabled by default)166 resource_attributes:167 oracle.db.edition:168 enabled: true169exporters:170 otlp/newrelic:171 endpoint: https://otlp.nr-data.net:4318172 headers:173 api-key: YOUR_LICENSE_KEY174 compression: gzip175 retry_on_failure:176 enabled: true177 initial_interval: 5s178 max_interval: 30s179 max_elapsed_time: 300s180 sending_queue:181 enabled: true182 sizer: bytes183 queue_size: 100_000_000184 num_consumers: 10185 batch:186 sizer: bytes187 max_size: 1_000_000188 min_size: 0189 flush_timeout: 5s190service:191 pipelines:192 metrics/oracledb:193 receivers: [nroracledb/adb]194 exporters: [otlp/newrelic]195 logs/oracledb:196 receivers: [nroracledb/adb]197 exporters: [otlp/newrelic]ヒント
You can also:
- Configure multiple receivers: To monitor multiple Oracle Database instances from one collector.
- Configure SQL Query Receiver: To collect custom metrics from your Oracle Database.
- Link your Oracle Database with APM: To correlate your application performance with database operations. This allows you to see exactly which applications are generating specific database workloads.
- Set up secret management: To securely manage sensitive information, such as database credentials. This helps to enhance the security of your monitoring setup by avoiding hardcoding sensitive data in configuration files.
Restart NRDOT Collector
After configuring the collector, restart the NRDOT Collector service to apply the changes:
$sudo systemctl restart nrdot-collectorTo verify that the collector is running properly, check the service status:
$sudo systemctl status nrdot-collectorヒント
Always restart the NRDOT Collector after making configuration changes to ensure the new settings take effect.
Find and use your data
Once your data is being collected, you can access comprehensive Oracle Database monitoring through the New Relic UI.
To find your Oracle Database entity in New Relic:
- Go to https://one.newrelic.com > All Capabilities > Databases.
- Set the search criteria as
instrumentation.provider = opentelemetry. - Select your Oracle ADB database from the list of entities.