> Source: https://www.ymotongpoo.com/works/otel-specs-ja/semconv/messaging/messaging-exceptions/


# メッセージング例外に関するセマンティック規約

**ステータス**: [Development][DocumentStatus]

この文書では、メッセージング操作における例外の記録に関するセマンティック規約を定義します。

## メッセージングcreate例外

<!-- semconv event.messaging.create.exception -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

イベント名は `messaging.create.exception` でなければなりません（MUST）。

このイベントは、メッセージングの`"Create"`操作中に発生した例外を表します。

このイベントは、メッセージングの`"Create"`操作中に例外が発生した場合に記録すべきです（SHOULD）。
計装は、このイベントを記録する際、重要度をWARN（重要度番号13）に設定すべきです（SHOULD）。
計装は、対応するメッセージングの`"Create"`スパンで捉えられた属性を例外イベントに設定するための設定オプションを提供してもかまいません（MAY）。

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`exception.message`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [1] | string | 例外メッセージ。[2] | `Division by zero`; `Can't convert 'int' object to str implicitly` |
| [`exception.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [3] | string | 例外の型（該当する場合はその完全修飾クラス名）。それをサポートする言語では、静的な型よりも例外の動的な型を優先すべきです。[4] | `java.net.ConnectException`; `OSError` |
| [`exception.stacktrace`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | 言語ランタイムにおける自然な表現形式での、文字列としてのスタックトレース。その表現形式は、各言語のSIGが決定し文書化します。 | `Exception in thread "main" java.lang.RuntimeException: Test exception\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)` |

**[1] `exception.message`:** `exception.type` が設定されていない場合は必須であり、それ以外の場合は推奨されます。

**[2] `exception.message`:**

> [!WARNING]
>
> この属性には機密情報が含まれる可能性があります。

**[3] `exception.type`:** `exception.message` が設定されていない場合は必須であり、それ以外の場合は推奨されます。

**[4] `exception.type`:** 記録された例外の型が、失敗の分類にとって意味のないラッパーである場合、計装は代わりに内部の例外の型を使用してもかまいません（MAY）。例えば、Goでは、`%w` を使って `fmt.Errorf` で作成されたエラーは、ラッパー型が失敗の分類に役立たない場合、ラップが解除されてもかまいません（MAY）。

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## メッセージングsend例外

<!-- semconv event.messaging.send.exception -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

イベント名は `messaging.send.exception` でなければなりません（MUST）。

このイベントは、メッセージングの`"Send"`操作中に発生した例外を表します。

このイベントは、メッセージングの`"Send"`操作中に例外が発生した場合に記録すべきです（SHOULD）。
計装は、このイベントを記録する際、重要度をWARN（重要度番号13）に設定すべきです（SHOULD）。
計装は、対応するメッセージングの`"Send"`スパンで捉えられた属性を例外イベントに設定するための設定オプションを提供してもかまいません（MAY）。

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`exception.message`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [1] | string | 例外メッセージ。[2] | `Division by zero`; `Can't convert 'int' object to str implicitly` |
| [`exception.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [3] | string | 例外の型（該当する場合はその完全修飾クラス名）。それをサポートする言語では、静的な型よりも例外の動的な型を優先すべきです。[4] | `java.net.ConnectException`; `OSError` |
| [`exception.stacktrace`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | 言語ランタイムにおける自然な表現形式での、文字列としてのスタックトレース。その表現形式は、各言語のSIGが決定し文書化します。 | `Exception in thread "main" java.lang.RuntimeException: Test exception\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)` |

**[1] `exception.message`:** `exception.type` が設定されていない場合は必須であり、それ以外の場合は推奨されます。

**[2] `exception.message`:**

> [!WARNING]
>
> この属性には機密情報が含まれる可能性があります。

**[3] `exception.type`:** `exception.message` が設定されていない場合は必須であり、それ以外の場合は推奨されます。

**[4] `exception.type`:** 記録された例外の型が、失敗の分類にとって意味のないラッパーである場合、計装は代わりに内部の例外の型を使用してもかまいません（MAY）。例えば、Goでは、`%w` を使って `fmt.Errorf` で作成されたエラーは、ラッパー型が失敗の分類に役立たない場合、ラップが解除されてもかまいません（MAY）。

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## メッセージングreceive例外

<!-- semconv event.messaging.receive.exception -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

イベント名は `messaging.receive.exception` でなければなりません（MUST）。

このイベントは、メッセージングの`"Receive"`操作中に発生した例外を表します。

このイベントは、メッセージングの`"Receive"`操作中に例外が発生した場合に記録すべきです（SHOULD）。
計装は、このイベントを記録する際、重要度をWARN（重要度番号13）に設定すべきです（SHOULD）。
計装は、対応するメッセージングの`"Receive"`スパンで捉えられた属性を例外イベントに設定するための設定オプションを提供してもかまいません（MAY）。

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`exception.message`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [1] | string | 例外メッセージ。[2] | `Division by zero`; `Can't convert 'int' object to str implicitly` |
| [`exception.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [3] | string | 例外の型（該当する場合はその完全修飾クラス名）。それをサポートする言語では、静的な型よりも例外の動的な型を優先すべきです。[4] | `java.net.ConnectException`; `OSError` |
| [`exception.stacktrace`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | 言語ランタイムにおける自然な表現形式での、文字列としてのスタックトレース。その表現形式は、各言語のSIGが決定し文書化します。 | `Exception in thread "main" java.lang.RuntimeException: Test exception\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)` |

**[1] `exception.message`:** `exception.type` が設定されていない場合は必須であり、それ以外の場合は推奨されます。

**[2] `exception.message`:**

> [!WARNING]
>
> この属性には機密情報が含まれる可能性があります。

**[3] `exception.type`:** `exception.message` が設定されていない場合は必須であり、それ以外の場合は推奨されます。

**[4] `exception.type`:** 記録された例外の型が、失敗の分類にとって意味のないラッパーである場合、計装は代わりに内部の例外の型を使用してもかまいません（MAY）。例えば、Goでは、`%w` を使って `fmt.Errorf` で作成されたエラーは、ラッパー型が失敗の分類に役立たない場合、ラップが解除されてもかまいません（MAY）。

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## メッセージングsettle例外

<!-- semconv event.messaging.settle.exception -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

イベント名は `messaging.settle.exception` でなければなりません（MUST）。

このイベントは、メッセージングの`"Settle"`操作中に発生した例外を表します。

このイベントは、メッセージングの`"Settle"`操作中に例外が発生した場合に記録すべきです（SHOULD）。
計装は、このイベントを記録する際、重要度をWARN（重要度番号13）に設定すべきです（SHOULD）。
計装は、対応するメッセージングの`"Settle"`スパンで捉えられた属性を例外イベントに設定するための設定オプションを提供してもかまいません（MAY）。

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`exception.message`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [1] | string | 例外メッセージ。[2] | `Division by zero`; `Can't convert 'int' object to str implicitly` |
| [`exception.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [3] | string | 例外の型（該当する場合はその完全修飾クラス名）。それをサポートする言語では、静的な型よりも例外の動的な型を優先すべきです。[4] | `java.net.ConnectException`; `OSError` |
| [`exception.stacktrace`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | 言語ランタイムにおける自然な表現形式での、文字列としてのスタックトレース。その表現形式は、各言語のSIGが決定し文書化します。 | `Exception in thread "main" java.lang.RuntimeException: Test exception\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)` |

**[1] `exception.message`:** `exception.type` が設定されていない場合は必須であり、それ以外の場合は推奨されます。

**[2] `exception.message`:**

> [!WARNING]
>
> この属性には機密情報が含まれる可能性があります。

**[3] `exception.type`:** `exception.message` が設定されていない場合は必須であり、それ以外の場合は推奨されます。

**[4] `exception.type`:** 記録された例外の型が、失敗の分類にとって意味のないラッパーである場合、計装は代わりに内部の例外の型を使用してもかまいません（MAY）。例えば、Goでは、`%w` を使って `fmt.Errorf` で作成されたエラーは、ラッパー型が失敗の分類に役立たない場合、ラップが解除されてもかまいません（MAY）。

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## メッセージングprocess例外

<!-- semconv event.messaging.process.exception -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

**Status:** ![Development](https://img.shields.io/badge/-development-blue)

イベント名は `messaging.process.exception` でなければなりません（MUST）。

このイベントは、メッセージングの`"Process"`操作中に発生した例外を表します。

このイベントは、メッセージングの`"Process"`操作中に例外が発生した場合に記録すべきです（SHOULD）。
計装は、このイベントを記録する際、重要度をERROR（重要度番号17）に設定すべきです（SHOULD）。
計装は、対応するメッセージングの`"Process"`スパンで捉えられた属性を例外イベントに設定するための設定オプションを提供してもかまいません（MAY）。

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`exception.message`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [1] | string | 例外メッセージ。[2] | `Division by zero`; `Can't convert 'int' object to str implicitly` |
| [`exception.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [3] | string | 例外の型（該当する場合はその完全修飾クラス名）。それをサポートする言語では、静的な型よりも例外の動的な型を優先すべきです。[4] | `java.net.ConnectException`; `OSError` |
| [`exception.stacktrace`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | 言語ランタイムにおける自然な表現形式での、文字列としてのスタックトレース。その表現形式は、各言語のSIGが決定し文書化します。 | `Exception in thread "main" java.lang.RuntimeException: Test exception\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)` |

**[1] `exception.message`:** `exception.type` が設定されていない場合は必須であり、それ以外の場合は推奨されます。

**[2] `exception.message`:**

> [!WARNING]
>
> この属性には機密情報が含まれる可能性があります。

**[3] `exception.type`:** `exception.message` が設定されていない場合は必須であり、それ以外の場合は推奨されます。

**[4] `exception.type`:** 記録された例外の型が、失敗の分類にとって意味のないラッパーである場合、計装は代わりに内部の例外の型を使用してもかまいません（MAY）。例えば、Goでは、`%w` を使って `fmt.Errorf` で作成されたエラーは、ラッパー型が失敗の分類に役立たない場合、ラップが解除されてもかまいません（MAY）。

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

[DocumentStatus]: https://opentelemetry.io/docs/specs/otel/document-status

