Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial semantic conventions for mainframes #1741

Open
wants to merge 22 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .chloggen/rrschulze_issue1687.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Use this changelog template to create an entry for release notes.
#
# If your change doesn't affect end users you should instead start
# your pull request title with [chore] or use the "Skip Changelog" label.

# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: new_component

# The name of the area of concern in the attributes-registry, (e.g. http, cloud, db)
component: mainframe,tps,zos

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Add initial semantic conventions for mainframes

# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
# The values here must be integers.
issues: [1687]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext:
3 changes: 3 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ body:
- area:k8s
- area:linux
- area:log
- area:mainframe
- area:messaging
- area:network
- area:nodejs
Expand All @@ -81,12 +82,14 @@ body:
- area:test
- area:thread
- area:tls
- area:tps
- area:url
- area:user
- area:user-agent
- area:v8js
- area:vcs
- area:webengine
- area:zos
# End semconv area list
- type: textarea
attributes:
Expand Down
3 changes: 3 additions & 0 deletions .github/ISSUE_TEMPLATE/change_proposal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ body:
- area:k8s
- area:linux
- area:log
- area:mainframe
- area:messaging
- area:network
- area:nodejs
Expand All @@ -73,12 +74,14 @@ body:
- area:test
- area:thread
- area:tls
- area:tps
- area:url
- area:user
- area:user-agent
- area:v8js
- area:vcs
- area:webengine
- area:zos
# End semconv area list
- type: textarea
attributes:
Expand Down
3 changes: 3 additions & 0 deletions .github/ISSUE_TEMPLATE/new-conventions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ body:
- area:k8s
- area:linux
- area:log
- area:mainframe
- area:messaging
- area:network
- area:nodejs
Expand All @@ -82,12 +83,14 @@ body:
- area:test
- area:thread
- area:tls
- area:tps
- area:url
- area:user
- area:user-agent
- area:v8js
- area:vcs
- area:webengine
- area:zos
# End semconv area list
- type: textarea
attributes:
Expand Down
3 changes: 3 additions & 0 deletions docs/attributes-registry/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,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 @@ -96,11 +97,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/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
Loading