• /
  • EnglishEspañolFrançais日本語한국어Português
  • Log inStart now

Install & configure NRDOT for Oracle monitoring with Helm

|View as Markdown

You can install and configure Oracle Database monitoring on Kubernetes using the oracle-otel Helm chart. Optionally, the chart can also run a setup job that creates the monitoring database user for you.

Prerequisites

  • A valid New Relic license key.
  • Helm 3.0 or later, and kubectl configured to access your Kubernetes cluster.
  • Network connectivity from your Kubernetes cluster to the Oracle Database host and listener port.
  • Either a monitoring database user you've already created, or Oracle Database admin credentials (RDS master user, SYS, or ADMIN) so the chart's setup job can create one for you. See Configure monitoring credentials below.

Create the namespace

Create the namespace you'll install into. It must exist before you create any secrets in the next step, since helm install --create-namespace only creates the namespace during the final install step:

bash
$
kubectl create namespace newrelic

Tip

Set it as the default namespace for your current kubectl context so you don't need to pass -n on every command below:

bash
$
kubectl config set-context --current --namespace=newrelic

Configure monitoring credentials

Decide whether you want the chart's setup job to create the Oracle Database monitoring user for you, and if not, how you'll supply its credentials:

Configure the Helm values

Set oracle.topology to match your environment:

Value

Description

cdb

On-host, multitenant CDB. All PDBs under this CDB are monitored.

pdb

On-host, single PDB.

rds

Oracle Database on AWS RDS.

adb

Oracle Autonomous Database.

Use the values.yaml that matches the credential method you chose in the previous step:

Parameter

Description

licenseKey

Your New Relic license key.

otlpEndpoint

Your region's OTLP/gRPC endpoint, as a bare host:port with no scheme: otlp.nr-data.net:4317 (US) or otlp.eu01.nr-data.net:4317 (EU). For more information, refer to New Relic OTLP endpoints documentation.

oracle.endpoint

Your Oracle Database host (or RDS endpoint) and listener port, reachable from the cluster.

oracle.service

Your CDB, PDB, RDS, or ADB service name for the collector connection.

setupJob.image.repository / setupJob.image.tag

An Oracle Instant Client + sqlplus image used by the setup job. There's no default: pulling from container-registry.oracle.com requires accepting Oracle's license terms first, so you must supply your own image. Only required for secret-based credentials, where the setup job is enabled.

(Optional) Monitor multiple instances from one release

Instead of oracle.*, set oracleMulti.enabled: true to monitor several Oracle Database instances from a single collector pod in one release. The two modes are mutually exclusive: don't set oracle.endpoint and oracleMulti.enabled: true in the same release. Every instance in a release must share the same oracleMulti.topology (cdb, pdb, rds, or adb): mixing topologies, for example an RDS instance and a self-hosted CDB, isn't supported in one release; use a separate release for each topology instead.

Multi-instance mode has no plain-username/password path: every instance needs its own Kubernetes secret with monitoring credentials. Decide whether you also want the setup job to create each monitoring user for you:

Parameter

Description

oracleMulti.enabled

Set to true to monitor multiple instances from one release instead of oracle.*. Defaults to false.

oracleMulti.topology

cdb, pdb, rds, or adb (same meaning as oracle.topology), shared by every instance in this release.

oracleMulti.collectionInterval

Default scrape interval for every entry. Defaults to 15s. Override it for a specific instance with that entry's own collectionInterval.

oracleMulti.databases

List of instances to monitor. Each entry requires a unique name, endpoint (host:port), service, and existingSecret; add oracleAdmin.existingSecret per entry only when setupJob.enabled is true.

Tip

Unlike the other NRDOT Helm charts, Oracle lets you override collectionInterval per instance. Every other scrape setting still applies identically to every instance. Use additionalReceiverConfig for anything else that needs to differ. The setup job runs once per instance (<release>-setup-<name>) rather than once per release.

Install the Helm chart

  1. Add the New Relic Helm repository:

    bash
    $
    helm repo add newrelic https://helm-charts.newrelic.com
    $
    helm repo update
  2. Install the chart using your values.yaml file:

    bash
    $
    helm upgrade --install oracle-otel newrelic/oracle-otel \
    >
    -n newrelic \
    >
    --create-namespace \
    >
    -f values.yaml

Verify the installation

  1. Check that the setup job completed and the collector pod is running:

    bash
    $
    kubectl get jobs,pods -n newrelic --watch
  2. Run this query in the query builder to confirm data is arriving:

    SELECT count(*) FROM Metric
    WHERE metricName LIKE 'oracledb.%'
    AND instrumentation.provider = 'opentelemetry'
    SINCE 10 minutes ago

To find your Oracle Database entity in New Relic, see Find and use your data.

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.