Skip to content

Commit

Permalink
Add initial Mainframe Semantic Conventions
Browse files Browse the repository at this point in the history
  • Loading branch information
rrschulze committed Jan 14, 2025
1 parent 294d2db commit ddbce45
Show file tree
Hide file tree
Showing 16 changed files with 1,091 additions and 0 deletions.
3 changes: 3 additions & 0 deletions docs/attributes-registry/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ Currently, the following namespaces exist:
- [K8s](k8s.md)
- [Linux](linux.md)
- [Log](log.md)
- [Mainframe](mainframe.md)
- [Messaging](messaging.md)
- [Network](network.md)
- [NodeJS](nodejs.md)
Expand All @@ -95,11 +96,13 @@ Currently, the following namespaces exist:
- [Test](test.md)
- [Thread](thread.md)
- [TLS](tls.md)
- [Tps](tps.md)
- [URL](url.md)
- [User](user.md)
- [User Agent](user-agent.md)
- [V8js](v8js.md)
- [VCS](vcs.md)
- [Webengine](webengine.md)
- [Zos](zos.md)

[developers recommendations]: ../general/attribute-naming.md#recommendations-for-application-developers
15 changes: 15 additions & 0 deletions docs/attributes-registry/mainframe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<!--- Hugo front matter used to generate the website version of this page:
--->

<!-- NOTE: THIS FILE IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/attribute_namespace.md.j2 -->

# Mainframe

## Mainframe LPAR attributes

This document defines attributes of a Mainframe Logical Partition (LPAR).

| Attribute | Type | Description | Examples | Stability |
|---|---|---|---|---|
| <a id="mainframe-lpar-name" href="#mainframe-lpar-name">`mainframe.lpar.name`</a> | string | Name of the logical partition that hosts a systems with a mainframe operating system. | `LPAR01` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
32 changes: 32 additions & 0 deletions docs/attributes-registry/tps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<!--- Hugo front matter used to generate the website version of this page:
--->

<!-- NOTE: THIS FILE IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/attribute_namespace.md.j2 -->

# Tps

- [Transaction Processing System Attributes](#transaction-processing-system-attributes)
- [IBM Information Management System (IMS) Attributes](#ibm-information-management-system-ims-attributes)

## Transaction Processing System Attributes

This group defines generic attributes for Transaction Processing Systems (TPS).

| Attribute | Type | Description | Examples | Stability |
|---|---|---|---|---|
| <a id="tps-program-name" href="#tps-program-name">`tps.program.name`</a> | string | Program name executed by the task | `PROG123` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| <a id="tps-region-id" href="#tps-region-id">`tps.region.id`</a> | string | Runtime environment within the Transaction Processing System | `PRD1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| <a id="tps-system" href="#tps-system">`tps.system`</a> | string | Type of Transaction Processing System | `jta`; `tuxedo`; `cics`; `ims`; `ztpf` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| <a id="tps-task-id" href="#tps-task-id">`tps.task.id`</a> | string | Identifier of the task created to run the transaction | `1554` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| <a id="tps-transaction-id" href="#tps-transaction-id">`tps.transaction.id`</a> | string | Identifier of the transaction initiated by a user or system request | `TRX1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| <a id="tps-transaction-owner" href="#tps-transaction-owner">`tps.transaction.owner`</a> | string | Identifier of the user owning the transaction | `USER` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| <a id="tps-unit-of-work-id" href="#tps-unit-of-work-id">`tps.unit_of_work.id`</a> | string | Unit of work executed by the program | `DF308CBF385A3C05` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |

## IBM Information Management System (IMS) Attributes

This group defines attributes for IBM Information Management System (IMS) for z/OS

| Attribute | Type | Description | Examples | Stability |
|---|---|---|---|---|
| <a id="tps-ims-commit-mode" href="#tps-ims-commit-mode">`tps.ims.commit_mode`</a> | string | Determines the type of commit mode processing that IMS performs. | `0`; `1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
16 changes: 16 additions & 0 deletions docs/attributes-registry/zos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!--- Hugo front matter used to generate the website version of this page:
--->

<!-- NOTE: THIS FILE IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/attribute_namespace.md.j2 -->

# Zos

## z/OS attributes

This document defines attributes of a z/OS resource.

| Attribute | Type | Description | Examples | Stability |
|---|---|---|---|---|
| <a id="zos-smf-id" href="#zos-smf-id">`zos.smf.id`</a> | string | The System Management Facility (SMF) Identifier uniquely identified a z/OS system within a SYSPLEX or mainframe environment and is used for system and performance analysis. | `SYS1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| <a id="zos-sysplex" href="#zos-sysplex">`zos.sysplex`</a> | string | The name of the SYSPLEX to which the z/OS system belongs too. | `SYSPLEX1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
115 changes: 115 additions & 0 deletions docs/resource/zos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
<!-- semconv resource.zos.software -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->
<!-- markdownlint-capture -->
<!-- markdownlint-disable -->


**Status:** ![Mixed](https://img.shields.io/badge/-mixed-yellow)

**type:** `zos.software`

**Description:** A software resource running on a z/OS system.

| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
| [`os.type`](/docs/attributes-registry/os.md) | string | The operating system type. | `z_os` | `Required` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`process.command`](/docs/attributes-registry/process.md) | string | The command used to launch the process (i.e. the command name). On z/OS, SHOULD be set to the name of the job used to start the z/OS system software. | `CICSSTRT` | `Required` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`process.pid`](/docs/attributes-registry/process.md) | int | Process identifier (PID). [1] | `008A` | `Required` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`service.instance.id`](/docs/attributes-registry/service.md) | string | The string ID of the service instance. [2] | `CICSPROD` | `Required` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`service.name`](/docs/attributes-registry/service.md) | string | Logical name of the service. [3] | `CICS TS`; `Datacom`; `ADABAS` | `Required` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| [`service.namespace`](/docs/attributes-registry/service.md) | string | A namespace for `service.name`. [4] | `CICSPLX2` | `Required` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`service.version`](/docs/attributes-registry/service.md) | string | The version string of the service API or implementation. The format is not defined by these conventions. [5] | `5.6` | `Required` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| [`zos.smf.id`](/docs/attributes-registry/zos.md) | string | The System Management Facility (SMF) Identifier uniquely identified a z/OS system within a SYSPLEX or mainframe environment and is used for system and performance analysis. | `SYS1` | `Required` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`zos.sysplex`](/docs/attributes-registry/zos.md) | string | The name of the SYSPLEX to which the z/OS system belongs too. | `SYSPLEX1` | `Required` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`host.arch`](/docs/attributes-registry/host.md) | string | The CPU architecture the host system is running on. | `s390x` | `Recommended` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`host.name`](/docs/attributes-registry/host.md) | string | Name of the host. On z/OS, SHOULD be the full qualified hostname used to register the z/OS system in DNS. | `SYS1.DOMAIN.COM` | `Recommended` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`mainframe.lpar.name`](/docs/attributes-registry/mainframe.md) | string | Name of the logical partition that hosts a systems with a mainframe operating system. | `LPAR01` | `Recommended` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`os.version`](/docs/attributes-registry/os.md) | string | The version string of the operating system. On z/OS, SHOULD be the release returned by the command `d iplinfo`. | `3.1.0` | `Recommended` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`telemetry.sdk.language`](/docs/attributes-registry/telemetry.md) | string | The language of the telemetry SDK. | `cpp`; `dotnet`; `erlang` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| [`telemetry.sdk.name`](/docs/attributes-registry/telemetry.md) | string | The name of the telemetry SDK as defined above. [6] | `opentelemetry` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| [`telemetry.sdk.version`](/docs/attributes-registry/telemetry.md) | string | The version string of the telemetry SDK. | `1.2.3` | `Recommended` | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| [`host.id`](/docs/attributes-registry/host.md) | string | Unique host ID. On z/OS, SHOULD be the concatenation of sysplex name and SMFID, separated by a dash | `SYSPLEX1-SYS1` | `Opt-In` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`os.description`](/docs/attributes-registry/os.md) | string | Human readable OS version information, e.g., as reported by command `d iplinfo`. | `IBM z/OS 3.1` | `Opt-In` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`os.name`](/docs/attributes-registry/os.md) | string | Human readable operating system name. | `z/OS` | `Opt-In` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`process.owner`](/docs/attributes-registry/process.md) | string | The username of the user that owns the process. [7] | `CICSUSR` | `Opt-In` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`process.runtime.description`](/docs/attributes-registry/process.md) | string | An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment. | `IBM Customer Information Control System (CICS) Transaction Server for z/OS Version 5.6` | `Opt-In` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`process.runtime.name`](/docs/attributes-registry/process.md) | string | The name of the runtime of this process. | `CICS Transaction Server z/OS Version 5.6` | `Opt-In` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| [`process.runtime.version`](/docs/attributes-registry/process.md) | string | The version of the runtime of this process, as returned by the runtime without modification. | `5.6` | `Opt-In` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |

**[1] `process.pid`:** On z/OS, SHOULD be set to the Address Space Identifier.

**[2] `service.instance.id`:** For z/OS system software, SHOULD be set to the identifier representing the current instance of the the z/OS system software, e.g., the CICS region APPLID or IMS region IMSID.

**[3] `service.name`:** For z/OS system software, SHOULD be set to an appreviated name of the z/OS system software.

**[4] `service.namespace`:** For z/OS system software, SHOULD be set to the identifier representing of a grouping of the z/OS system software instances, e.g., the name of the CICSPLEX.

**[5] `service.version`:** For z/OS system software, SHOULD be set to the version of the z/OS system software.

**[6] `telemetry.sdk.name`:** The OpenTelemetry SDK MUST set the `telemetry.sdk.name` attribute to `opentelemetry`.
If another SDK, like a fork or a vendor-provided implementation, is used, this SDK MUST set the
`telemetry.sdk.name` attribute to the fully-qualified class or module name of this SDK's main entry point
or another suitable identifier depending on the language.
The identifier `opentelemetry` is reserved and MUST NOT be used in this case.
All custom identifiers SHOULD be stable across different versions of an implementation.

**[7] `process.owner`:** On z/OS, SHOULD be set to the user under which the z/OS system software is executed.

---

`host.arch` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

| Value | Description | Stability |
|---|---|---|
| `amd64` | AMD64 | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `arm32` | ARM32 | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `arm64` | ARM64 | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `ia64` | Itanium | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `ppc32` | 32-bit PowerPC | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `ppc64` | 64-bit PowerPC | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `s390x` | IBM z/Architecture | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `x86` | 32-bit x86 | ![Experimental](https://img.shields.io/badge/-experimental-blue) |

---

`os.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

| Value | Description | Stability |
|---|---|---|
| `aix` | AIX (Advanced Interactive eXecutive) | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `darwin` | Apple Darwin | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `dragonflybsd` | DragonFly BSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `freebsd` | FreeBSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `hpux` | HP-UX (Hewlett Packard Unix) | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `linux` | Linux | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `netbsd` | NetBSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `openbsd` | OpenBSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `solaris` | SunOS, Oracle Solaris | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `windows` | Microsoft Windows | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `z_os` | IBM z/OS | ![Experimental](https://img.shields.io/badge/-experimental-blue) |

---

`telemetry.sdk.language` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

| Value | Description | Stability |
|---|---|---|
| `cpp` | cpp | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `dotnet` | dotnet | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `erlang` | erlang | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `go` | go | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `java` | java | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `nodejs` | nodejs | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `php` | php | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `python` | python | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `ruby` | ruby | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `rust` | rust | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `swift` | swift | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `webjs` | webjs | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->
12 changes: 12 additions & 0 deletions docs/tps/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Semantic Conventions for Transaction Processing Systems

This document defines semantic conventions for Transaction Processing Systems.

Semantic conventions for Transaction Processing Systems (TPS) are defined for spans.

* [TPS Spans](spans.md): Semantic Conventions for Transactions Processing *spans*.

Technology specific semantic conventions are defined for the following Transaction Processing Systems:

* [CICS](cics-spans.md): Semantic Conventions for IBM CICS Transaction Server for z/OS
* [IMS](ims-spans.md): Semantic Conventions for IBM Information Management System (IMS) for z/OS
Loading

0 comments on commit ddbce45

Please sign in to comment.