open-telemetry / open-telemetry/semantic-conventions
[Proposal] Semantic Conventions for IBM Informix DB (Performance Metrics)
Nobody has claimed this yet.
- Dominant language
- Jinja
- Stars
- 651
- Forks
- 394
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 38
Description
Propose new conventions
Proposal:
Introduce New Semantic Conventions for Informix Database in OpenTelemetry
Summary
This proposal introduces semantic conventions for monitoring IBM Informix Database within the OpenTelemetry project.
Informix is a widely used database system known for its efficiency in OLTP (Online Transaction Processing) and time-series data handling. Currently, OpenTelemetry lacks specific semantic attributes for Informix. This proposal aims to standardize the metrics for Informix to ensure better observability, performance monitoring, and interoperability across telemetry data sources.
Proposed Semantic Conventions (Specific to Informix DB)
Performance Metrics
1. Cache hit ratio 2. Lock Count 3. Lock Time 4. Sequential Scan Count 5. Sequential Table Count 6. Overflow Transaction Count 7. Overflow User Count 8. Lock waits 9. Cache Read Ratio 10. Cache Write Ratio 11. LRU writes
Performance Metrics
Metric: db.cache.hit
This metric is recommended.
| Name | Instrument Type | Units (UCUM) | Description |
|---|---|---|---|
db.cache.hit |
Gauge | 1 |
The cache hit ratio/percentage |
| Attribute | Type | Description | Example | Requirement Level |
|---|---|---|---|---|
type |
string | The type of cache. | NORMAL;RECYCLE;FAST;KEEP |
Recommended |
Metric: db.lock.count
This metric is recommended.
| Name | Instrument Type | Units (UCUM) | Description |
|---|---|---|---|
db.lock.count |
UpDownCounter | {lock} |
The number of database locks. |
| Attribute | Type | Description | Example | Requirement Level |
|---|---|---|---|---|
type |
string | The type of lock. | Row-level Lock |
Recommended |
Metric: db.lock.time
This metric is recommended.
| Name | Instrument Type | Units (UCUM) | Description |
|---|---|---|---|
db.lock.time |
UpDownCounter | s |
The lock elapsed time. |
| Attribute | Type | Description | Example | Requirement Level |
|---|---|---|---|---|
lock_id |
string | The lock ID. | 0x987654321 |
Required |
blocking_sess_id |
string | The blocking session identifier. | 28871001 |
Recommended |
blocker_sess_id |
string | The blocker session identifier. | 28871041 |
Recommended |
locked_obj_name |
string | The locked object name. | gv$instance |
Recommended |
Metric: db.seq.scan.count
This metric is optional.
| Name | Instrument Type | Units (UCUM) | Description |
|---|---|---|---|
db.seq.scan.count |
UpDownCounter | {scan} |
Count of Sequential Scans for a table. |
| Attribute | Type | Description | Example | Requirement Level |
|---|---|---|---|---|
table_name |
string | Name of the table. | user ; product |
Required |
Metric: db.seq.scan.table.count
This metric is optional.
| Name | Instrument Type | Units (UCUM) | Description |
|---|---|---|---|
db.seq.scan.table.count |
UpDownCounter | {tableScan} |
Number of tables which is having sequential scan. |
Metric: db.overflow.lock.count
This metric is optional.
| Name | Instrument Type | Units (UCUM) | Description |
|---|---|---|---|
db.overflow.lock.count |
UpDownCounter | {overflowLock} |
Number of times a thread attempted to acquire a lock when no locks were available. |
Metric: db.overflow.transaction.count
This metric is optional.
| Name | Instrument Type | Units (UCUM) | Description |
|---|---|---|---|
db.overflow.transaction.count |
UpDownCounter | {overflowTransaction} |
Number of times a thread attempted to allocate an entry in the transaction table when no entries in the shared-memory table were available. |
Metric: db.overflow.user.count
This metric is optional.
| Name | Instrument Type | Units (UCUM) | Description |
|---|---|---|---|
db.overflow.user.count |
UpDownCounter | {overflowUser} |
Number of times a User thread attempted to acquire a lock when no locks were available. |
Metric: db.lock.waits
This metric is optional.
| Name | Instrument Type | Units (UCUM) | Description |
|---|---|---|---|
db.lock.waits |
UpDownCounter | {lockWaits} |
Number of threads waiting for lock. |
Metric: db.cache.read.ratio
This metric is optional.
| Name | Instrument Type | Units (UCUM) | Description |
|---|---|---|---|
db.cache.read.ratio |
Gauge | 1 |
Percentage of page reads for this buffer pool that were satisfied by a cached page image |
Metric: db.cache.write.ratio
This metric is optional.
| Name | Instrument Type | Units (UCUM) | Description |
|---|---|---|---|
db.cache.write.ratio |
Gauge | 1 |
Percentage of page Writes for this buffer pool that were satisfied by a cached page image |
Metric: db.lru.writes
This metric is optional.
| Name | Instrument Type | Units (UCUM) | Description |
|---|---|---|---|
db.lru.writes |
UpDownCounter | {lruWrites} |
Number of Least Recently Used Writes. |
Notes:
- The database server performs LRU (Least Recently Used) writes as background writes that typically occur when the percentage of dirty buffers (pages that are not accessed) exceeds the percent that is specified for lru_max_dirty in the BUFFERPOOL configuration parameter.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the proposal's metric tables and the linked metric-requirement guidance. Review how this repository represents database semantic conventions before assessing the Informix names, instruments, units, and attributes. Done means the proposal has an accepted, consistent set of conventions for the listed Informix performance metrics.
Written by the indexing model from the issue text.
Assessment
- Domain
- databases, observability
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100