open-telemetry / open-telemetry/semantic-conventions

[Proposal] Semantic Conventions for IBM Informix DB (Performance Metrics)

Open
#1,908 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement triage:accepted:needs-sig
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.