Hi,
I want to introduce you to The kPerf for Oracle, a Monitoring and Diagnosis tool for Oracle that helps you understand what is going on in your database.
The kPerf for Oracle is available on GitHub:: https://github.com/krotovks/kPerf_for_Oracle

The kPerf for Oracle uses Prometheus and Grafana for storing and visualizing data. The core of kPerf is written in Python, which collects and calculates data.
In my opinion, the most powerful feature of kPerf for Oracle is the combination of historically captured data and relevant multidimensional metrics, which you can aggregate, analyze, compare, etc.
In the current release 2.1.0, The kPerf for Oracle has core features such as SQL Level Statistics, where related statistics are collected for every SQL ID and plan hash value. Additionally, as a basic feature, kPerf processes Instance Level Statistics, Wait Events and DBSize.
Support Metrics:
- Instance Level:
You can filter or aggregate Wait Events and Instance Level Statistics:

Available metric names:
- lSYSTEM_EVENT_CLASS- SUM(TOTAL_WAITS) group by WAIT_CLASS from V_$SYSTEM_EVENT.
- lSYSTEM_EVENT_CLASS_TIME- SUM(TIME_WAITED_MICRO) group by WAIT_CLASS from V_$SYSTEM_EVENT and V_$SYS_TIME_MODEL.
- lSYSSTAT — Statistics from V_$sysstat.
- lSYSTEM_EVENT_WAIT_COUNT- Wait Event Count per Event from V_$system_event.
- lSYSTEM_EVENT_WAIT_TIME — Wait Event Time per Event from V_$system_event.

2. SQL Level(V_$sqlarea):
You can filter or aggregate SQL statements by SQLID and Plan Hash Value . labelnames=[‘SQLID’,’PHV’]

Available metric names:
- ELA_PER_EXEC — Elapsed time per execution (μs) for SQL ID and specific plan hash value.
- CPU_PER_EXEC — CPU Time per execution (μs) for SQL ID and specific plan hash value.
- APPWAIT_PER_EXEC — APPLICATION_WAIT_TIME per execution (μs) for SQL ID and specific plan hash value.
- CONCURRENTCY_PER_EXEC — CONCURRENCY_WAIT_TIME per execution (μs) for SQL ID and specific plan hash value.
- USERIOWAIT_PER_EXEC — USER_IO_WAIT_TIME per execution (μs) for SQL ID and specific plan hash value.
- SQL_EXECUTIONS_PER_SEC — SQL executions per second for a specific plan hash value.
- SQL_BG_PER_SEC — Buffer gets per SECOND for SQL ID and specific plan hash value.
- SQL_BG_PER_EXEC — Buffer gets per SQL execution for SQL ID and specific plan hash value.


3. DBSIZE Level:
This module collects data about database segment sizes and assigns to them the following parameters:
- TABLESPACE
- OWNER
- SEGMENT_NAME
- SEGMENT_TYPE
- PARTITION_NAME
You can filter or aggregate using five parameters on the DBSIZE dashboard: labelnames=[‘TABLESPACE’,’OWNER’,’SEGMENT_NAME’,’SEGMENT_TYPE’,’PARTITION_NAME’]
for Multitenant labelnames=[‘CONID’,’TABLESPACE’,’OWNER’,’SEGMENT_NAME’,’SEGMENT_TYPE’,’PARTITION_NAME’]
Available metric names:
- DB_OBJECT_SIZE- Database objects size in bytes
- DB_DATAFILE_SIZE- Database Data File size in byte



Full description of The kPerf for Oracle is available on GitHub: https://github.com/krotovks/kPerf_for_Oracle
Additional features will be available in the next release.