この記事は英語の原文を日本語に翻訳したものです。原文: https://opentelemetry.io/docs/specs/semconv/messaging/messaging-exceptions/
翻訳元: open-telemetry/semantic-conventions v1.44.0(コミット e10a930)
メッセージング例外に関するセマンティック規約
ステータス: Development
この文書では、メッセージング操作における例外の記録に関するセマンティック規約を定義します。
メッセージングcreate例外
Status:
イベント名は messaging.create.exception でなければなりません(MUST)。
このイベントは、メッセージングの"Create"操作中に発生した例外を表します。
このイベントは、メッセージングの"Create"操作中に例外が発生した場合に記録すべきです(SHOULD)。
計装は、このイベントを記録する際、重要度をWARN(重要度番号13)に設定すべきです(SHOULD)。
計装は、対応するメッセージングの"Create"スパンで捉えられた属性を例外イベントに設定するための設定オプションを提供してもかまいません(MAY)。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
exception.message | Conditionally Required [1] | string | 例外メッセージ。[2] | Division by zero; Can't convert 'int' object to str implicitly | |
exception.type | Conditionally Required [3] | string | 例外の型(該当する場合はその完全修飾クラス名)。それをサポートする言語では、静的な型よりも例外の動的な型を優先すべきです。[4] | java.net.ConnectException; OSError | |
exception.stacktrace | 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)。
メッセージングsend例外
Status:
イベント名は messaging.send.exception でなければなりません(MUST)。
このイベントは、メッセージングの"Send"操作中に発生した例外を表します。
このイベントは、メッセージングの"Send"操作中に例外が発生した場合に記録すべきです(SHOULD)。
計装は、このイベントを記録する際、重要度をWARN(重要度番号13)に設定すべきです(SHOULD)。
計装は、対応するメッセージングの"Send"スパンで捉えられた属性を例外イベントに設定するための設定オプションを提供してもかまいません(MAY)。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
exception.message | Conditionally Required [1] | string | 例外メッセージ。[2] | Division by zero; Can't convert 'int' object to str implicitly | |
exception.type | Conditionally Required [3] | string | 例外の型(該当する場合はその完全修飾クラス名)。それをサポートする言語では、静的な型よりも例外の動的な型を優先すべきです。[4] | java.net.ConnectException; OSError | |
exception.stacktrace | 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)。
メッセージングreceive例外
Status:
イベント名は messaging.receive.exception でなければなりません(MUST)。
このイベントは、メッセージングの"Receive"操作中に発生した例外を表します。
このイベントは、メッセージングの"Receive"操作中に例外が発生した場合に記録すべきです(SHOULD)。
計装は、このイベントを記録する際、重要度をWARN(重要度番号13)に設定すべきです(SHOULD)。
計装は、対応するメッセージングの"Receive"スパンで捉えられた属性を例外イベントに設定するための設定オプションを提供してもかまいません(MAY)。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
exception.message | Conditionally Required [1] | string | 例外メッセージ。[2] | Division by zero; Can't convert 'int' object to str implicitly | |
exception.type | Conditionally Required [3] | string | 例外の型(該当する場合はその完全修飾クラス名)。それをサポートする言語では、静的な型よりも例外の動的な型を優先すべきです。[4] | java.net.ConnectException; OSError | |
exception.stacktrace | 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)。
メッセージングsettle例外
Status:
イベント名は messaging.settle.exception でなければなりません(MUST)。
このイベントは、メッセージングの"Settle"操作中に発生した例外を表します。
このイベントは、メッセージングの"Settle"操作中に例外が発生した場合に記録すべきです(SHOULD)。
計装は、このイベントを記録する際、重要度をWARN(重要度番号13)に設定すべきです(SHOULD)。
計装は、対応するメッセージングの"Settle"スパンで捉えられた属性を例外イベントに設定するための設定オプションを提供してもかまいません(MAY)。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
exception.message | Conditionally Required [1] | string | 例外メッセージ。[2] | Division by zero; Can't convert 'int' object to str implicitly | |
exception.type | Conditionally Required [3] | string | 例外の型(該当する場合はその完全修飾クラス名)。それをサポートする言語では、静的な型よりも例外の動的な型を優先すべきです。[4] | java.net.ConnectException; OSError | |
exception.stacktrace | 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)。
メッセージングprocess例外
Status:
イベント名は messaging.process.exception でなければなりません(MUST)。
このイベントは、メッセージングの"Process"操作中に発生した例外を表します。
このイベントは、メッセージングの"Process"操作中に例外が発生した場合に記録すべきです(SHOULD)。
計装は、このイベントを記録する際、重要度をERROR(重要度番号17)に設定すべきです(SHOULD)。
計装は、対応するメッセージングの"Process"スパンで捉えられた属性を例外イベントに設定するための設定オプションを提供してもかまいません(MAY)。
Attributes:
| Key | Stability | Requirement Level | Value Type | Description | Example Values |
|---|---|---|---|---|---|
exception.message | Conditionally Required [1] | string | 例外メッセージ。[2] | Division by zero; Can't convert 'int' object to str implicitly | |
exception.type | Conditionally Required [3] | string | 例外の型(該当する場合はその完全修飾クラス名)。それをサポートする言語では、静的な型よりも例外の動的な型を優先すべきです。[4] | java.net.ConnectException; OSError | |
exception.stacktrace | 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)。