Collect data from Oracle Database

Configure the Splunk Distribution of OpenTelemetry Collector to collect metrics and events from your Oracle Database instance.

  • These are the tested combinations for the oracledb receiver; other combinations might work but are untested:

    Oracle Database versionEditionPlatform (where the database is deployed or hosted)Deployment type
    2019 Standard Edition TwoAWSRDS
  • Be aware of the limitations of this release.

  • If you're currently using the deprecated Smart Agent receiver (smartagent/oracledb) to send metrics from Oracle Database to Splunk Observability Cloud, migrate to the Splunk Distribution of the OpenTelemetry Collector oracledb receiver.

  • Upgrade to a supported OpenTelemetry collector:

    • Splunk Distribution of the OpenTelemetry Collector (splunk-otel-collector) v0.140.0 or later
    • Community (OSS) version of the OpenTelemetry Collector (opentelemetry-collector-contrib) v0.140.1 or later
  1. Deploy a supported OpenTelemetry collector if it's not already deployed.
  2. Configure the oracledb receiver to collect infrastructure metrics from your Oracle Database instance. t
  3. Give the following permissions to the Oracle Database user:
    GRANT SELECT ON V_$SQL TO username;
    GRANT SELECT ON V_$SQL_PLAN TO username;
    GRANT SELECT ON DBA_PROCEDURES TO username;
  4. Enable Database Monitoring by modifying your OpenTelemetry Collector configuration.
    1. In your collector's YAML file, add additional configuration to the oracledb receiver:

      The example below shows the minimum required configuration, but you can add other options. See the README for details.

      receivers:
        oracledb:
          ...
          events:
            db.server.query_sample:
              enabled: true
            db.server.top_query:
              enabled: true
    2. Add an additional exporter named dbmon.
      exporters:
        otlphttp/dbmon:
          headers:
            X-SF-Token: your-splunk-observability-cloud-access-token
            X-splunk-instrumentation-library: dbmon
          logs_endpoint: https://ingest.<your-splunk-realm>.signalfx.com/v3/event
          sending_queue:
            batch:
              flush_timeout: 15s
              max_size: 10485760 # 10 MiB
              sizer: bytes
    3. Add a new logs pipeline named dbmon.
      service:
        pipelines:
          logs/dbmon:
            receivers:
              - oracledb
            processors:
              - memory_limiter
              - batch
              - resourcedetection
            exporters:
              - otlphttp/dbmon

      The resourcedetection processor is optional. If you need it, add to the logs/dbmon pipeline in the order shown in the example.

    4. Restart the collector.

      The command to restart the collector varies depending on which collector you deployed, which platform you deployed it on, and what tool you used to deploy it. For the Splunk Distribution of the OpenTelemetry Collector deployed on Kubernetes platforms with Helm, the restart command is:

      helm upgrade <your-splunk-otel-collector> splunk-otel-collector-chart/splunk-otel-collector -f <your-override-values.yaml>
      where splunk-otel-collector-chart is the name you gave to the Helm chart in the helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart command.
    5. Confirm you can see the Oracle Database database service on APM > Database Monitoring Overview.

Your Oracle Database instance should now be visible as a datastore in Splunk IM (Infrastructure > Infrastructure monitoring > Overview)