Monitoring Oracle Real Application Clusters (Open Beta)

After you install the Instana host agent, Oracle Real Application Clusters (RAC) sensor is automatically installed, but you need to configure Oracle RAC sensor as outlined in Configuring section. Then, you can view metrics that are related to Oracle RAC in the Instana UI.

Supported information

Supported operating systems

The Oracle RAC sensor supports the operating system on all the hosts where Instana agent runs. You can refer to the Supported operating systems section of each host agent, such as Supported operating systems for Unix.

Supported versions

See the following supported versions for metrics and configuration data:

  • Oracle Database 19c

Note: Only remote monitoring is supported for Oracle RAC sensor.

Discovering Oracle RAC

Use the remote configuration option to discover and monitor Oracle RAC databases that run on hosts where the Instana agent cannot be installed.

Configuring

Granting database permissions

To connect the sensor to Oracle RAC and monitor the metrics and configuration, you need to have the read permission for the following tables:

#Create a role
create ROLE INSTANAROLE;

#Grant privileges to this role for following tables and views

GV_$SESSION, GV_$BGPROCESS, GV_$ACTIVE_SESSION_HISTORY, GV_$SYSSTAT, GV_$SGASTAT, GV_$ROWCACHE, GV_$RESOURCE_LIMIT, GV_$STATNAME, GV_$SESSTAT, GV_$PROCESS,  GV_$PARAMETER, GV_$SQL, V_$VERSION, GV_$SYS_TIME_MODEL, GV_$INSTANCE,  GV_$LOCK, DBA_HIST_SQLTEXT, DBA_HIST_SQLSTAT, DBA_HIST_SNAPSHOT, DBA_USERS  

eg. GRANT SELECT ON GV_$SESSION to INSTANAROLE;

#Assign this role to a user. Configure the same user in the configuration yaml file. For more information, see the [sensor configuration](#sensor-configuration) section. 
GRANT INSTANAROLE to <user>;


Configuring Oracle RAC sensor

To monitor Oracle RAC, you need to inform the host agent about the credentials to access monitoring information by using the agent configuration file:

Enabling Oracle RAC monitoring

To enable Oracle RAC monitoring, you must set the flag enableRacMonitoring to true.

com.instana.plugin.oracledb:
  remote: # we support listing multiple Oracle RACs here!
    - host: '<ORCL_HOST_1>'
      port: '<ORCL_PORT>'
      user: '<ORCL_USER>' # default is 'sys as sysdba'
      password: '<ORCL_PASSWORD>'
      databaseServiceName: '<ORCL_DB_SERVICE_NAME>' # for Oracle RAC, SID is not required only ServiceName
      availabilityZone: 'Oracle-RAC-AZ' # default is 'Oracle-RAC-AZ
      poll_rate: 1
      enableRacMonitoring: true # default is false. For Oracle RAC set this to true.

The poll rate defines how often the sensor polls Oracle RAC metrics, in seconds. The default is 1 second.

The configured remote Oracle RAC is shown as a separate box in the specified availability zone.

Configuring custom polling

The following table displays the metrics for which you can configure a maximum of three nonzero custom poll rates. Metrics with a poll rate as zero or less than zero is disabled by default. To disable any metric, remove that metric entry from the <instana-agent-dir>/etc/instana/configuration.yamlconfiguration file.

Name Description
TOP_ELAPSED_TIME_QUERIES List of top elapsed time queries.
SQL_ID_CONSUMING_MORE_CPU List of SQLs that consume more CPU.
USER_FOREGROUND_SESSIONS Displays active foreground sessions.
TOP_TEN_CPU_CONSUMING_SESSION List of top CPU consuming sessions.
TOP_CPU_CONSUMING_SESSION_LAST_10_MIN List of top CPU that consumes sessions in the last 10 minutes.
CURRENT_BLOCKING_SESSIONS Used to view information about the blocking sessions.
ACTIVE_SESSIONS_RUNNING_MORE_THAN_600_SECS All active sessions that are running for more than 10 minutes in the Oracle database.
ACTIVE_SESSION_HISTORY Sampled session activity in the database.
TOP_CPU_QUERIES_LAST_24_HRS List of top CPU consuming queries in the last 24 hours.

See the following configuration for custom polling:

com.instana.plugin.oracledb:
  remote: # Instana supports listing of multiple Oracle RACs.
    - host: '<ORCL_HOST_1>'
      port: '<ORCL_PORT>'
      user: '<ORCL_USER>' # default is 'sys as sysdba'
      password: '<ORCL_PASSWORD>'
      databaseServiceName: '<ORCL_DB_SERVICE_NAME>' # for Oracle RAC, SID is not required, requires only ServiceName
      availabilityZone: 'Oracle-RAC-AZ' # default is 'Oracle-RAC-AZ
      poll_rate: 1
      enableRacMonitoring: true
      customPolling:
        - poll_rate: 30
          metrics:
            - TOP_CPU_CONSUMING_SESSION_LAST_10_MIN
            - ACTIVE_SESSIONS_RUNNING_MORE_THAN_600_SECS
            - CURRENT_BLOCKING_SESSIONS
        - poll_rate: 60
          metrics:
            - TOP_ELAPSED_TIME_QUERIES
            - TOP_TEN_CPU_CONSUMING_SESSION
            - SQL_ID_CONSUMING_MORE_CPU
            - USER_FOREGROUND_SESSIONS
            - ACTIVE_SESSION_HISTORY
        - poll_rate: 3600
          metrics:
            - TOP_CPU_QUERIES_LAST_24_HRS

Viewing metrics

To view the metrics, complete the following steps:

  1. Select Infrastructure in the sidebar of the Instana UI.
  2. Click a specific monitored host. You can see a host dashboard with all the collected metrics and monitored processes.

The Oracle sensor monitors and collects the following data:

  • Configuration data (#configuration-data)
  • Performance metrics (#performance-metrics)
  • Health signatures (#health-signatures)

Configuration data

Oracle sensor collects the following configuration data:

  • Version
  • SID
  • Service names
  • Start time
  • CPU count
  • Max sessions
  • DB block size
  • Instance count

Performance metrics

Metric Description Granularity
Running Process Count Number of processes that are running. 1 second
Process Limit Usage Usage of the process resource. Process is displayed in percentage. 1 second
Active Sessions (More Than 10 Mins) All active sessions in the Oracle database for more than 10 minutes. 30 seconds
Process Max Utilization Maximum consumption of process after the last instance start-up. 1 second
Process Current Utilization Number of processes that are used. 1 second
Process Initial Allocation Initial allocation of the process. This allocation is equal to the value that is specified for the process in the initialization parameter file. 1 second
Process Limit Value Maximum limit value of a process. The value of the process must remain within this limit. 1 second
Process Limit Usage The percentage of all the current processes to the limit set. 1 second
DB Time per Second Amount of elapsed time that is spent on performing the database user-level calls. 1 second
DB CPU Time Amount of CPU time that is spent on performing the database user-level calls. 1 second
SQL Execute Time Amount of elapsed time during which the SQL query statements are executing. 1 second
Parse Time Amount of elapsed time that is spent parsing the SQL query statements. It includes both the soft and hard parse time. 1 second
Database CPU Time Ratio Amount of CPU used in the database by the amount of total database time. 1 second
SGA Total Memory Total memory in System Global Area (SGA) in MB. 1 second
SGA Used Memory Memory that is used by SGA in MB. 1 second
SGA Free Memory Free memory in SGA in MB. 1 second
SGA Pool Name Pool name of the System Global Area (SGA). 1 second
SGA Pool Total Memory Total memory in SGA Pool in MB. 1 second
SGA Pool Used Memory Used memory in SGA Pool in MB. 1 second
SQL Execution Count Total number of SQL queries that are executed. 1 second
SQL Execution Average Time Average SQL execution time. 1 second
SQL Parse Count Hard and total parse count. 1 second
SQL Parse Ratios Ratio of SQL executions that are performed with soft parse and without any parses. 1 second
User Calls Number of calls, commits, and rollbacks. 1 second
Buffer Cache Hit Ratio Percentage of pages that are found in the buffer cache without having to read from disk. 1 second
Physical and Logical Session Reads Number of physical and logical reads. 1 second
Sessions Number of user sessions (active and inactive), and the number of background sessions. 1 second
Top CPU Queries (Last 24 Hr) List of top CPU queries in the last 24 hours with CPU time in milliseconds, number of disk reads, and total duration during which the query is executed. 1 hour
Top Elapsed Time Queries List of top elapsed time queries with SQL ID, SQL query, and execution time in minutes. 60 seconds
Active Session History (Last 1 Hr) Sampled session activity in the database for the last one hour with SQL ID, load percentage, and session count. 60 seconds
Top Ten CPU Consuming Sessions List of top ten CPU-consuming sessions with session ID, serial number, CPU time in minutes, and operating system program name. 60 seconds
Top CPU Consuming Sessions (Last 10 Min) List of top CPU-consuming sessions in the last 10 minutes with session ID, serial number, and total duration during which the query is executed. 30 seconds
Current Blocking Sessions Information about the blocking sessions. 30 seconds
Foreground Sessions Active foreground sessions. 60 seconds
SQL Consuming More CPU List of SQL queries that use more CPU. 60 seconds

Health signatures

For each sensor, a curated knowledge base of health signatures is evaluated continuously against the incoming metrics and is used to raise issues or incidents that impact the user.