Skip to content

Commit 92912db

Browse files
committed
[receiver/oracledb] Add session, JVM, and OS resource metrics
Surfaces session non-idle activity, in-database JVM (OJVM) call-heap, and OS CPU/swap statistics already returned by the existing system-statistics query as seven opt-in metrics. No new SQL queries are introduced.
1 parent d119753 commit 92912db

10 files changed

Lines changed: 1447 additions & 2 deletions

File tree

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Use this changelog template to create an entry for release notes.
2+
3+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
4+
change_type: enhancement
5+
6+
# The name of the component, or a single word describing the area of concern, (e.g. receiver/filelog)
7+
component: receiver/oracledb
8+
9+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
10+
note: Add session, in-database JVM, and OS resource metrics sourced from the existing v$sysstat query.
11+
12+
# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
13+
issues: [49065]
14+
15+
# (Optional) One or more lines of additional information to render under the primary note.
16+
# These lines will be padded with 2 spaces and then inserted directly into the document.
17+
# Use pipe (|) for multiline entries.
18+
subtext: |
19+
Adds oracledb.session.non_idle.waits, oracledb.session.non_idle.time,
20+
oracledb.session.stored_procedure.usage, oracledb.process.last_non_idle.time,
21+
oracledb.java.heap.usage (attribute oracledb.java.heap.state), oracledb.os.cpu.time
22+
(attribute oracledb.os.cpu.state), and oracledb.os.swaps. All are disabled by default and
23+
add no new database queries.
24+
25+
# If your change doesn't affect end users or the exported elements of any package,
26+
# you should instead start your pull request title with [chore] or use the "Skip Changelog" label.
27+
# Optional: The change log or logs in which this entry should be included.
28+
# e.g. '[user]' or '[user, api]'
29+
# Include 'user' if the change is relevant to end users.
30+
# Include 'api' if there is a change to a library API.
31+
# Default: '[user]'
32+
change_logs: [user]

receiver/oracledbreceiver/documentation.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,20 @@ Fraction of host CPU time in use, as computed by Oracle V$SYSMETRIC (% Busy/(Idl
327327
| ---- | ----------- | ---------- | --------- |
328328
| % | Gauge | Double | Development |
329329
330+
### oracledb.java.heap.usage
331+
332+
Size of Oracle's in-database JVM (OJVM) call heap in bytes. Sourced from v$sysstat names java call heap live size (oracledb.java.heap.state=live), java call heap total size (oracledb.java.heap.state=total), and java call heap used size (oracledb.java.heap.state=used).
333+
334+
| Unit | Metric Type | Value Type | Stability |
335+
| ---- | ----------- | ---------- | --------- |
336+
| By | Gauge | Int | Development |
337+
338+
#### Attributes
339+
340+
| Name | Description | Values | Requirement Level | Semantic Convention |
341+
| ---- | ----------- | ------ | ----------------- | ------------------- |
342+
| oracledb.java.heap.state | Which portion of the in-database JVM call heap the measurement reports (live, total, or used). | Str: ``live``, ``total``, ``used`` | Recommended | - |
343+
330344
### oracledb.library_cache.utilization
331345
332346
Fraction of library cache pin requests that found the object already cached, as computed by Oracle V$SYSMETRIC (% Hits/Pins).
@@ -343,6 +357,28 @@ Number of logon operations
343357
| ---- | ----------- | ---------- | ----------------------- | --------- | --------- |
344358
| {operation} | Sum | Int | Cumulative | true | Development |
345359
360+
### oracledb.os.cpu.time
361+
362+
Cumulative OS CPU time consumed, in seconds (converted from centiseconds), as accounted by Oracle. Sourced from v$sysstat names OS System time used (oracledb.os.cpu.state=system) and OS User time used (oracledb.os.cpu.state=user).
363+
364+
| Unit | Metric Type | Value Type | Aggregation Temporality | Monotonic | Stability |
365+
| ---- | ----------- | ---------- | ----------------------- | --------- | --------- |
366+
| s | Sum | Double | Cumulative | true | Development |
367+
368+
#### Attributes
369+
370+
| Name | Description | Values | Requirement Level | Semantic Convention |
371+
| ---- | ----------- | ------ | ----------------- | ------------------- |
372+
| oracledb.os.cpu.state | Whether the OS CPU time was consumed in system (kernel) or user mode, as accounted by Oracle. Mirrors the semconv system.cpu.state value set. | Str: ``system``, ``user`` | Recommended | - |
373+
374+
### oracledb.os.swaps
375+
376+
Number of OS swap operations, as accounted by Oracle. Sourced from v$sysstat name OS Swaps.
377+
378+
| Unit | Metric Type | Value Type | Aggregation Temporality | Monotonic | Stability |
379+
| ---- | ----------- | ---------- | ----------------------- | --------- | --------- |
380+
| {swaps} | Sum | Int | Cumulative | true | Development |
381+
346382
### oracledb.parallel_operations_downgraded_1_to_25_pct
347383
348384
Number of times parallel execution was requested and the degree of parallelism was reduced down to 1-25% because of insufficient parallel execution servers
@@ -491,6 +527,14 @@ Number of writes directly to disk, bypassing the buffer cache
491527
| ---- | ----------- | ---------- | ----------------------- | --------- | --------- |
492528
| {writes} | Sum | Int | Cumulative | true | Development |
493529
530+
### oracledb.process.last_non_idle.time
531+
532+
Epoch time in seconds at which the process was last active (non-idle), as reported by Oracle. Sourced from v$sysstat name process last non-idle time.
533+
534+
| Unit | Metric Type | Value Type | Stability |
535+
| ---- | ----------- | ---------- | --------- |
536+
| s | Gauge | Int | Development |
537+
494538
### oracledb.queries_parallelized
495539
496540
Number of SELECT statements executed in parallel
@@ -515,6 +559,30 @@ Fraction of redo allocations that succeeded without space contention, as compute
515559
| ---- | ----------- | ---------- | --------- |
516560
| % | Gauge | Double | Development |
517561
562+
### oracledb.session.non_idle.time
563+
564+
Cumulative time sessions spent in non-idle waits, in seconds (converted from centiseconds). Sourced from v$sysstat name non-idle wait time.
565+
566+
| Unit | Metric Type | Value Type | Aggregation Temporality | Monotonic | Stability |
567+
| ---- | ----------- | ---------- | ----------------------- | --------- | --------- |
568+
| s | Sum | Double | Cumulative | true | Development |
569+
570+
### oracledb.session.non_idle.waits
571+
572+
Cumulative number of non-idle waits across sessions. Sourced from v$sysstat name non-idle wait count.
573+
574+
| Unit | Metric Type | Value Type | Aggregation Temporality | Monotonic | Stability |
575+
| ---- | ----------- | ---------- | ----------------------- | --------- | --------- |
576+
| {waits} | Sum | Int | Cumulative | true | Development |
577+
578+
### oracledb.session.stored_procedure.usage
579+
580+
Memory in bytes currently allocated for stored procedures in the session. Sourced from v$sysstat name session stored procedure space.
581+
582+
| Unit | Metric Type | Value Type | Stability |
583+
| ---- | ----------- | ---------- | --------- |
584+
| By | Gauge | Int | Development |
585+
518586
### oracledb.shared_pool.utilization
519587
520588
Fraction of the shared pool that is currently free, as computed by Oracle V$SYSMETRIC (% Free/Total). Low values indicate shared pool pressure.

0 commit comments

Comments
 (0)