---
title: Install & configure NRDOT Collector for AWS RDS monitoring
source: https://docs.newrelic.com/docs/opentelemetry/database/oracle/rds
---

> #### 💡 PREVIEW
>
> We're still working on this feature, but we'd love for you to try it out!
>
> This feature is currently provided as part of a preview pursuant to our [pre-release policies](https://docs.newrelic.com/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy/).

Get comprehensive insights into your Amazon RDS Oracle Database 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](https://one.newrelic.com) > Integrations & Agents > Oracle (OpenTelemetry)** . This page covers the CLI install path only.

## Prerequisites [#prerequisites]

Before you begin, ensure you have the following:

-   Valid New Relic [license key](https://docs.newrelic.com/docs/apis/intro-apis/new-relic-api-keys/#ingest-license-key)
-   Supported architecture: Linux with AMD64 and ARM64
-   Network connectivity to [New Relic OTLP endpoint](https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlp)
-   Oracle Database `19c` or later

### Enroll to preview [#enroll]

This integration is available as part of the New Relic public preview program. Contact your Organization Manager to opt in from the [Previews & Trials](https://one.newrelic.com/admin-portal/promotion-management/home) page.

## Install NRDOT Collector [#installation]

Select the appropriate installation distribution method for your Linux environment:

**For AMD64 architecture**

-   For Debian/Ubuntu system, run:

    ```bash
    NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_amd64.deb" --output nrdot-collector.deb && sudo dpkg -i nrdot-collector.deb
    ```

-   For RHEL/CentOS/OEL system, run:

    ```bash
    NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_x86_64.rpm" --output nrdot-collector.rpm && sudo rpm -ivh nrdot-collector.rpm
    ```

**For ARM64 architecture**

-   For Debian/Ubuntu system, run:

    ```bash
    NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_arm64.deb" --output nrdot-collector.deb && sudo dpkg -i nrdot-collector.deb
    ```
-   For RHEL/CentOS/OEL system, run:

    ```bash
    NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_arm64.rpm" --output nrdot-collector.rpm && sudo rpm -ivh nrdot-collector.rpm
    ```

## Configure database user [#database-user]

Create a monitoring user with necessary privileges for your RDS Oracle Database.

1.  Log in to the root database as an administrator:

    ```sql
    CREATE USER <USERNAME> IDENTIFIED BY "<USER_PASSWORD>";
    ```

2.  Grant `CONNECT` privileges to newly created user:

    ```sql
    GRANT CONNECT TO <USERNAME>;
    ```

## Grant monitoring privileges for RDS database [#grant-privileges]

Execute the following SQL statements to grant monitoring privileges. Replace `<USERNAME_IN_UPPERCASE>` with your username in uppercase:

```sql
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>;
```

## Configure NRDOT Collector [#configure-collector]

Configure the NRDOT Collector with your RDS-specific settings.

Create the configuration file. The filename must be `oracle-config.yaml`.

````bash
sudo nano /etc/nrdot-collector/oracle-config.yaml
```


````

Add the configuration content below to the `oracle-config.yaml` file you created in the previous step.

> #### 💡 FULL CONFIGURATION
>
> This configuration focuses only on database monitoring without host infrastructure metrics. To enable full-feature monitoring, refer to the [configuration reference](https://docs.newrelic.com/docs/opentelemetry/database/oracle/config-reference/#rds-full).

3.  Under the Events section, enable these event types to collect their metrics:

    | Event                           | Description                                                                               |
    | ------------------------------- | ----------------------------------------------------------------------------------------- |
    | `db.server.query_sample`        | Per-session active query samples capturing current SQL, wait state, and blocking details. |
    | `db.server.top_query`           | Top N SQL statements by CPU or elapsed time, including execution stats and query plans.   |
    | `db.server.session.wait_sample` | Per-session cumulative wait counts and durations from `v$session_event`.                  |

4.  Configure the collection settings for each event type:

    | Configuration Section           | Parameter                | Value |
    | ------------------------------- | ------------------------ | ----- |
    | `top_query_collection`          | `max_query_sample_count` | 1000  |
    | `top_query_collection`          | `top_query_count`        | 200   |
    | `top_query_collection`          | `collection_interval`    | 60s   |
    | `query_sample_collection`       | `max_rows_per_query`     | 100   |
    | `session_wait_event_collection` | `max_rows_per_query`     | 100   |

## Update NRDOT Collector configuration [#update-config]

Update the NRDOT Collector configuration to use your `oracle-config.yaml` file.

```bash
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.conf
```

> #### 💡 TIP
>
> You can also:
>
> -   [Configure multiple receivers](https://docs.newrelic.com/docs/opentelemetry/database/oracle/multi-receiver): To monitor multiple Oracle Database instances from one collector.
> -   [Configure SQL Query Receiver](https://docs.newrelic.com/docs/opentelemetry/database/capabilities/sql-query-receiver/): To collect custom metrics from your Oracle Database.
> -   [Link your Oracle Database with APM](https://docs.newrelic.com/docs/opentelemetry/database/capabilities/db-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](https://docs.newrelic.com/docs/opentelemetry/database/capabilities/db-apm/#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 [#restart-collector]

After updating your configuration, restart the NRDOT Collector:

```bash
sudo systemctl restart nrdot-collector.service
sudo systemctl status nrdot-collector.service
```

> #### 💡 TIP
>
> Always restart the NRDOT Collector after making configuration changes to ensure the new settings take effect.

## Find and use your data [#find-use-data]

Once your data is being collected, you can access comprehensive Oracle Database monitoring through New Relic's UI.

To find your Oracle Database entity in New Relic:

1.  Go to **<https://one.newrelic.com> > All Capabilities > Databases**.
2.  Set the search criteria as `instrumentation.provider = opentelemetry`.
3.  Select your Oracle Database from the list of entities.

## Related articles [#related-articles]

[Troubleshooting](https://docs.newrelic.com/docs/opentelemetry/database/oracle/troubleshooting)

Learn how to troubleshoot your Oracle RDS monitoring setup in New Relic.

[Metrics reference](https://docs.newrelic.com/docs/opentelemetry/database/oracle/metrics-reference)

Learn about the available metrics collected by the NRDOT Collector.

[CDB instrumentation](https://docs.newrelic.com/docs/opentelemetry/database/oracle/host-cdb)

Learn how to set up your Oracle Database for CDB monitoring in New Relic.
