OracleDB

Metrics, Dashboards, Alerts and more for OracleDB Integration in Sysdig Monitor.
OracleDB

This integration is enabled by default.

Versions supported: > 12.1.0.2

This integration uses a standalone exporter that is available in UBI or scratch base image.

This integration has 33 metrics.

Timeseries generated: ~500 timeseries

List of Alerts

AlertDescriptionFormat
[OracleDB] Exporter Process DownExporter process is not serving metrics.Prometheus
[OracleDB] Low UpTimeThe OracleDB instance has an UpTime of less than 1 hour.Prometheus
[OracleDB] Low Cache Hit RateLow cache hit rate.Prometheus
[OracleDB] High Tablespace UsageHigh Tablespace Usage.Prometheus
[OracleDB] Tablespace Full In 12hTablespace will be full within 12 hours.Prometheus
[OracleDB] Tablespace Full In 48hTablespace will be full within 48 hours.Prometheus

List of Dashboards

Oracle DB

The dashboard provides information on the Oracle DB integration. Oracle DB

List of Metrics

Metric name
oracledb_activity_execute_count
oracledb_activity_parse_count_total
oracledb_activity_user_commits
oracledb_activity_user_rollbacks
oracledb_big_queries_p95_rows
oracledb_big_queries_p99_rows
oracledb_cache_hit_ratio_percentage
oracledb_process_count
oracledb_resource_current_utilization
oracledb_resource_limit_value
oracledb_sessions_value
oracledb_size_dba_segments_top100_cluster_bytes
oracledb_size_dba_segments_top100_table_bytes
oracledb_size_dba_segments_top100_table_partition_bytes
oracledb_size_user_segments_top100_table_bytes
oracledb_size_user_segments_top100_table_partition_bytes
oracledb_slow_queries_p95_time_usecs
oracledb_slow_queries_p99_time_usecs
oracledb_startup_time_seconds
oracledb_tablespace_bytes
oracledb_tablespace_free
oracledb_tablespace_used_percent
oracledb_up
oracledb_wait_time_administrative
oracledb_wait_time_application
oracledb_wait_time_commit
oracledb_wait_time_concurrency
oracledb_wait_time_configuration
oracledb_wait_time_network
oracledb_wait_time_other
oracledb_wait_time_scheduler
oracledb_wait_time_system_io
oracledb_wait_time_user_io

Prerequisites

Create OracleDB user and grant permission

Create a user for monitoring in Oracle Database.

Make sure you grant SELECT permission for the monitoring user on the following tables:

dba_tablespace_usage_metrics
dba_tablespaces
v$system_wait_class
v$asm_diskgroup_stat
v$datafile
v$sysstat
v$process
v$waitclassmetric
v$session
v$resource_limit

Create Credentials for OracleDB Exporter

Create the secret with the Oracle Datasource in the namespace where the exporter will be deployed:

kubectl create secret -n 'EXPORTER-NAMESPACE' generic oracledb-exporter-secret --from-literal=datasource="YOUR_CONNECTION_STRING"

YOUR_CONNECTION_STRING should be like: oracle://user:password@hostname:1521/DB_SID

Installation

An automated wizard is present in the Monitoring Integrations in Sysdig Monitor. Expert users can also use the Helm chart for installation: https://github.com/sysdiglabs/integrations-charts/tree/main/charts/oracledb-exporter

Monitoring and Troubleshooting OracleDB exporter

This document describes important metrics and queries that you can use to monitor and troubleshoot OracleDB.

OracleDB Activity

Executions

Use the following query to determine the number of executions per second:

rate(oracledb_activity_user_commits[5m])

Commits

Use the following query to determine the number of commits per second:

rate(oracledb_activity_user_commits[5m])

Rollbacks

Use the following query to determine the number of rollbacks per second:

rate(oracledb_activity_user_rollbacks[5m])

Processes

Use the following query to determine the number of processes in OracleDB:

oracledb_process_count

Cache Hit Ratio

Use the following query to determine the Hit Ratio in OracleDB:

oracledb_cache_hit_ratio_percentage

OracleDB Sessions

Active sessions

Use the following query to determine the number of active sessions:

sum(oracledb_sessions_value{status="ACTIVE"}) by (status)

Inactive sessions

Use the following query to determine the number of inactive sessions:

sum(oracledb_sessions_value{status="INACTIVE"}) by (status)

OracleDB Tables

Table Size

Use the following query to determine the top 10 dba tables ordered by size:

topk(10,sum(oracledb_size_dba_segments_top100_table_bytes) by (segment_name, owner))

Use the following query to determine the top 10 user tables ordered by size:

topk(10,sum(oracledb_size_user_segments_top100_table_bytes) by (segment_name, owner))

Partition Size

Use the following query to determine the top 10 dba partitions ordered by size:

topk(10,sum(oracledb_size_dba_segments_top100_table_partition_bytes) by (segment_name))

Use the following query to determine the top 10 user partitions ordered by size:

topk(10,sum(oracledb_size_user_segments_top100_table_partition_bytes) by (segment_name))

Agent Configuration

The default agent job for this integration is as follows:

- job_name: oracledb-exporter-default
  tls_config:
    insecure_skip_verify: true
  kubernetes_sd_configs:
  - role: pod
  relabel_configs:
  - action: keep
    source_labels: [__meta_kubernetes_pod_host_ip]
    regex: __HOSTIPS__
  - action: keep
    source_labels:
    - __meta_kubernetes_pod_annotation_promcat_sysdig_com_integration_type
    regex: "oracledb"
  - action: replace
    source_labels: [__address__, __meta_kubernetes_pod_annotation_promcat_sysdig_com_port]
    regex: ([^:]+)(?::\d+)?;(\d+)
    replacement: $1:$2
    target_label: __address__
  - action: replace
    source_labels: [__meta_kubernetes_pod_uid]
    target_label: sysdig_k8s_pod_uid
  - action: replace
    source_labels: [__meta_kubernetes_pod_container_name]
    target_label: sysdig_k8s_pod_container_name