Supported telemetry types
The Oracle Database integration supports these telemetry types:Prerequisites
The Oracle Database integration has the following prerequisites:-
Determine whether your database is a container database. Connect to the database
with a SQL client and run the following query:
A value of
YESmeans the database is a container database. Connect the integration to the root container. From there, it reports instance-wide metrics and per-container metrics for the root and each pluggable database, identified by theoracle.db.pdbattribute. Connected to a pluggable database, per-container metrics cover that database only. -
Create a database user for the CXDOT Collector. For a container database, connect to
the root container as
SYSDBAand run the following statements to create a common user that can read every container’s statistics. For more information aboutCONTAINER_DATA, seeALTER USERin the Oracle Database documentation.For a database that isn’t a container database, connect asSYSDBAand run the following statements instead:ReplacePASSWORDwith a password for the user. To reuse an existing monitoring user, run every statement exceptCREATE USERfor that user. -
Make the Oracle Database listener, typically on port
1521, reachable from the CXDOT Collector over TCP. The integration uses a user name and password. It doesn’t support theTCPSprotocol, Oracle wallets, or net service names from atnsnames.orafile.
Configure
The integration is enabled by default and collects metrics from autodiscovery annotations or a static target list. To configure the Oracle Database integration, follow these steps:- For Oracle Database pods and Services, add autodiscovery annotations that supply each target’s endpoint, service name, user, and password. Annotations can also set per-target collection options, such as turning off per-process memory metrics that report one time series per Oracle Database process. For more information, see autodiscovery. Metrics from discovered pods arrive with that pod’s Kubernetes metadata attached.
-
Optional: Configure static targets instead of discovered targets, such as Oracle
Database instances outside your Kubernetes cluster. Supply the password through your
deployment’s secret management and expose it on the cluster-tier CXDOT Collector
through
clusterCollector.extraEnv. For example, add the following to thevalues.yamlfile for the CXDOT Collector Helm chart:This integration instance collects only the listed instances and disables autodiscovery. Every instance uses the sameusernameandpassword; use a separate integration instance for different credentials. One elected cluster-tier CXDOT Collector replica collects static targets. For more information, see architecture. -
Optional: Configure separate integration instances to collect from both discovered
and static targets. For example, add the following to the
values.yamlfile for the CXDOT Collector Helm chart:Theoracle/externalkey holds the static targets. A named instance replaces the implicit default, so the emptyoracle: {}entry keeps autodiscovery enabled. -
Optional: Disable the integration. For example, add the following to the
values.yamlfile for the CXDOT Collector Helm chart:
Validate
To validate the Oracle Database integration, follow these steps:-
In the
Live Telemetry Analyzer,
add the following filters:
__name__=cxdot.integration.target.healthcxdot.integration.name=oracle
1, identified by itsserver.addressandserver.portattributes. Thecxdot.integration.checkattribute separates the connection status,oracle, from the query status,oracle_query. -
In
Metrics Explorer,
run the following query:
Confirm that the query returns time series for each target. For a target connected to a root container, confirm that the query returns a time series for
CDB$ROOTand for each open pluggable database.
Troubleshooting
- Metrics report only
CDB$ROOTin theoracle.db.pdbattribute: the database user can’t read the statistics of other containers. Run theALTER USERstatement from the Prerequisites section, which sets the user’sCONTAINER_DATAtoALL. - Some metrics are missing, such as execution and commit counts or resource limits: the
database user lacks a Prerequisites grant. The CXDOT Collector logs
Error scraping metricswithORA-00942. Theoracle_queryhealth check can report1while these metrics are missing because it doesn’t cover every query. If you reuse a monitoring user from another tool, confirm grants onv_$sysstat,v_$con_sysstat, andv_$resource_limit. - Session counts by type and status, and total Program Global Area (PGA) memory, carry
no
oracle.db.pdbattribute while other per-container metrics, such as tablespace metrics, do: the integration reports instance-wide totals until it confirms it can read each container’s statistics. When the database isn’t open yet, for example right after its pod restarted, the Collector logsfailed to detect Oracle version,failed to detect CDB status, orper-PDB grants probe failedand retries each collection until the database answers. Those first two messages also mean the user lacksSELECTonv_$instanceorv_$database; grant access and the next collection detects the database without a restart. When the user lacksSELECTonv_$con_sysstat, the Collector logsper-PDB grants not availableand stops retrying; grant access and restart the CXDOT Collector. - Tablespace metrics are missing while other metrics arrive: the tablespace queries
timed out, or the user lacks a grant on the
cdb_views. A timed-out tablespace query retries only after a full tablespace collection interval. Raisetimeoutfor static targets, or the annotation query timeout for discovered targets. That timeout can’t exceed the target’s collection interval, which defaults to 15, 30, or 60 seconds.
Configuration reference
Configure one Oracle Database integration instance with the following settings. In Helm values, place these settings underconfig.integrations.oracle. In a Collector configuration file,
place them under cxdot.integrations.oracle.
Optional settings
-
enabledType:boolean. Optional. Default:true. Enables Oracle Database metrics collection. The Collector uses the instances listed ininstances, or targets discovered through annotations when the list is empty. -
usernameType:string. Optional. Oracle Database user for static instances. The Collector requires it wheninstancescontains entries. For a container database, use a common user that can read every container’s statistics. -
passwordType:string. Optional. Password forusername. The Collector requires it to start collecting frominstancesentries, and masks the value in diagnostic output, logs, and errors. -
collection_intervalType:duration. Optional. Default:60s. How often to collect metrics from each static Oracle Database instance. Oracle Database recomputes system metrics, such as hit ratios and rates, every 15 or 60 seconds. Discovered targets use the collection interval in their annotation instead. -
timeoutType:duration. Optional. Default:20s. Maximum time to collect metrics from an Oracle Database instance during one interval. Each of the two tablespace queries gets the same limit, so an interval that includes them can take up to three times this value. A value of0sdisables all time limits. Discovered targets use the query timeout in their annotation, or this default when no timeout is set, limited to their collection interval. -
tablespace_collection_intervalType:duration. Optional. Default:600s. How often the integration collects tablespace metrics from each statically configured instance. The tablespace queries read every container’s data files, so they run less often than the other queries. Between those queries, the integration reports the most recent tablespace values everycollection_interval. Targets discovered through annotations use the tablespace interval in their annotation instead. -
instancesType:array of object. Optional. Default:[]. Oracle Database instances to monitor. When this list contains an instance, the integration monitors only the listed instances and disables discovery through annotations for this integration instance. When the list is empty, the integration monitors targets supplied through Oracle Database annotations. Each discovered target uses the credentials in its annotation. -
instances[].endpointType:string. Required.host:portof the database listener, such asoracle.default.svc:1521. -
instances[].serviceType:string. Required. Minimum length:1. Oracle Database service name. For a container database, use the root container’s service to collect from every pluggable database.