> Source: https://www.ymotongpoo.com/works/otel-specs-ja/semconv/http/http-metrics/


# HTTPメトリクスに関するセマンティック規約

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

この節で説明する規約は、HTTP固有のものです。HTTP操作が発生すると、その操作についての洞察を提供するために、メトリクスイベントが生成され報告されます。メトリクスイベントにHTTP属性を追加することで、きめ細かいフィルタリングが可能になります。

**免責事項：** これらは初期のHTTPメトリクスInstrumentと属性であり、将来さらに追加される可能性があります。

> [!IMPORTANT]
> [この文書のv1.20.0](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.20.0/specification/metrics/semantic_conventions/http-metrics.md)
> 以前のバージョンを使っている既存のHTTP計装は、次に従うべきです。
>
> * HTTPセマンティック規約が安定版として宣言されるまで、デフォルトで発行するHTTPまたはネットワーキング規約のバージョンを変更してはなりません（SHOULD NOT）
>   （HTTPの安定化には、HTTP計装で併せて使われる、ネットワーキング規約の中核部分の安定化も含まれます）。
>   規約には、属性、メトリクス名、スパン名、計測単位などが含まれますが、これらに限定されません。
> * 既存のメジャーバージョンにおいて、カテゴリー別の値をカンマ区切りで列挙するリストとして環境変数 `OTEL_SEMCONV_STABILITY_OPT_IN` を導入すべきです（SHOULD）
>   （例: http、databases、messaging）。値の一覧は次のとおりです。
>   * `http` - 新しい安定版のHTTP・ネットワーキング規約を発行し、それまで計装が発行していた古い実験的なHTTP・ネットワーキング規約の発行を停止します。
>   * `http/dup` - 古い規約と安定版の規約の両方を発行し、円滑な移行を可能にします。
>   * これらの値がいずれも指定されていない場合のデフォルトの動作は、その計装がそれまで発行していた古い実験的なHTTP・ネットワーキング規約のバージョンをそのまま発行し続けることです。
>   * 注記: 両方の値が指定されている場合、`http/dup` は `http` よりも優先されます。
> * 両方の規約セットを発行し始めてから少なくとも6か月間は、既存のメジャーバージョンを（少なくともセキュリティパッチの適用という形で）維持すべきです（SHOULD）。
> * 次のメジャーバージョンでは、この環境変数を削除すべきです（SHOULD）。

## HTTPサーバー

### メトリクス: `http.server.request.duration`

このメトリクスは[Recommended][MetricRecommended]です。

このメトリクスがHTTPサーバースパンと合わせて報告される場合、メトリクスの値はHTTPサーバースパンの処理時間と同じにすべきです（SHOULD）。

このメトリクスは、`[ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ]` の[`ExplicitBucketBoundaries` advisoryパラメータ](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.59.0/specification/metrics/api.md#instrument-advisory-parameters)を指定すべきです（SHOULD）。

<!-- semconv metric.http.server.request.duration -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `http.server.request.duration` | Histogram | `s` | HTTPサーバーリクエストの処理時間。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | |

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`http.request.method`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | HTTPリクエストメソッド。[1] | `GET`; `POST`; `HEAD` |
| [`url.scheme`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | 使用されたプロトコルを識別する[URIスキーム](https://www.rfc-editor.org/rfc/rfc3986#section-3.1)コンポーネント。[2] | `http`; `https` |
| [`error.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/error/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` リクエストがエラーで終了した場合。 | string | 操作が終了したエラーのクラスを記述します。[3] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` |
| [`http.response.status_code`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` 送受信された場合に限る。 | int | [HTTPレスポンスステータスコード](https://tools.ietf.org/html/rfc7231#section-6)。 | `200` |
| [`http.route`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` 利用可能な場合に限る | string | リクエストにマッチしたルートテンプレート。これは低カーディナリティでなければならず（MUST）、すべての静的パスセグメントを含め、動的パスセグメントはプレースホルダーで表現しなければなりません（MUST）。[4] | `/users/:userID?`; `my-controller/my-action/{id?}` |
| [`network.protocol.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [5] | string | [OSIアプリケーション層](https://wikipedia.org/wiki/Application_layer)またはそれに相当する非OSI層。[6] | `http`; `spdy` |
| [`network.protocol.version`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | ネットワーク通信で使用されているプロトコルの実際のバージョン。[7] | `1.0`; `1.1`; `2`; `3` |
| [`server.address`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | リクエストを受信したローカルHTTPサーバーの名前。[8] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
| [`server.port`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | int | リクエストを受信したローカルHTTPサーバーのポート。[9] | `80`; `8080`; `443` |
| [`user_agent.synthetic.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/user-agent/) | ![Development](https://img.shields.io/badge/-development-blue) | `Opt-In` | string | 合成トラフィックのカテゴリー（テストやボットなど）を指定します。[10] | `bot`; `test` |

**[1] `http.request.method`:** HTTPリクエストメソッドの値は、計装に「既知」であるべきです（SHOULD）。
デフォルトでは、この規約は[RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)に列挙されているメソッド、[RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)で定義されたPATCHメソッド、[httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1)で定義されたQUERYメソッドを「既知の」メソッドとして定義します。

HTTPリクエストメソッドが計装に既知でない場合、`http.request.method` 属性を `_OTHER` に設定しなければなりません（MUST）。

HTTP計装が有効なHTTPリクエストメソッドを `_OTHER` に変換してしまう可能性がある場合、既知のHTTPメソッドの一覧を上書きする方法を提供しなければなりません（MUST）。
この上書きが環境変数を介して行われる場合、その環境変数は OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS という名前でなければならず（MUST）、大文字小文字を区別する既知のHTTPメソッドをカンマ区切りのリストとしてサポートしなければなりません（MUST）。

![Development](https://img.shields.io/badge/-development-blue)
この上書きが宣言的設定を介して行われる場合、`.instrumentation/development.general.http.client` や `.instrumentation/development.general.http.server` の下にある `known_methods` プロパティ（最小要素数0の、大文字小文字を区別する文字列の配列）でその一覧を設定可能にしなければなりません（MUST）。

いずれの場合も、この一覧は既知のメソッドのデフォルトの完全な上書きでなければならず（MUST）、デフォルトに追加する既知のメソッドの一覧ではありません。

HTTPメソッド名は大文字小文字を区別し、`http.request.method` 属性の値は既知のHTTPメソッド名に正確に一致しなければなりません（MUST）。
HTTPメソッドを大文字小文字を区別しないものとして扱う特定のWebフレームワーク向けの計装は、正規化された等価な値を設定すべきです（SHOULD）。
そのようなトレーシング計装は、`http.request.method_original` にも元の値を設定しなければなりません（MUST）。

**[2] `url.scheme`:** 既知の場合（例えば[Forwarded#proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/Forwarded#proto)、[X-Forwarded-Proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/X-Forwarded-Proto)、または類似のヘッダーから）、元のクライアントリクエストのスキームです。それ以外の場合、直近のピアリクエストのスキームです。

**[3] `error.type`:** レスポンスステータスコードの送受信前にエラーでリクエストが失敗した場合、`error.type` は例外の型（該当する場合はその完全修飾クラス名）またはコンポーネント固有の低カーディナリティなエラー識別子に設定すべきです（SHOULD）。

レスポンスステータスコードが送受信され、かつそのステータスが[HTTPスパンステータスの定義](/works/otel-specs-ja/semconv/http/http-spans/#ステータス)に従ってエラーを示す場合、`error.type` はステータスコード番号（文字列として表現）、（発生していれば）例外の型、またはコンポーネント固有のエラー識別子に設定すべきです（SHOULD）。

`error.type` の値は予測可能であるべきであり（SHOULD）、低カーディナリティであるべきです（SHOULD）。
計装は、報告するエラーの一覧を文書化すべきです（SHOULD）。

1つの計装ライブラリ内での `error.type` のカーディナリティは低くあるべきですが（SHOULD）、複数の計装ライブラリやアプリケーションからのデータを集約するテレメトリーの利用者は、追加のフィルターが適用されないクエリ時には `error.type` が高カーディナリティになることを想定しておくべきです。

リクエストが正常に完了した場合、計装は `error.type` を設定するべきではありません（SHOULD NOT）。

**[4] `http.route`:** HTTPサーバーフレームワークがこれをサポートしない場合、設定してはなりません（MUST NOT）。route属性は低カーディナリティであるべきであり、URIパスはそれに代わることができないためです。
アプリケーションルートがあれば、それを含めるべきです（SHOULD）（[アプリケーションルート](/works/otel-specs-ja/semconv/http/http-spans/#httpサーバーの定義)を参照）。

静的パスセグメントとは、固定された低カーディナリティな値を持つ、ルートテンプレートの一部です。
これには、`/users/` のようなリテラル文字列や、`{controller}` や `{action}` のような、有限かつ事前定義された値の集合に制約されたプレースホルダーが含まれます。

動的パスセグメントとは、静的パスセグメントのような事前定義された一覧に制約されない、高カーディナリティになりうる値のプレースホルダーです。

計装は、対応するWebフレームワークが提供するルーティング情報を使用すべきです（SHOULD）。
最も精度の高いルーティング情報のソースを選択すべきであり（SHOULD）、カスタムのルートフォーマットをサポートしてもかまいません（MAY）。
計装は、使用しているフォーマットとルート文字列を取得するために使用しているAPIを文書化すべきです（SHOULD）。

**[5] `network.protocol.name`:** `http` ではなく、かつ `network.protocol.version` が設定されている場合。

**[6] `network.protocol.name`:** 値は小文字に正規化すべきです（SHOULD）。

**[7] `network.protocol.version`:** プロトコルバージョンが（例えば[ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)を使って）ネゴシエーションされる場合、この属性はネゴシエーションされたバージョンに設定すべきです（SHOULD）。実際のプロトコルバージョンが不明な場合、この属性は設定するべきではありません（SHOULD NOT）。

**[8] `server.address`:** [`server.address` と `server.port` 属性の設定](/works/otel-specs-ja/semconv/http/http-spans/#serveraddress-と-serverport-属性の設定)を参照してください。

> [!WARNING]
> この属性はHTTPヘッダーに基づいているため、オプトインすることで攻撃者がカーディナリティ制限を引き起こし、メトリクスの有用性を低下させる可能性があります。

**[9] `server.port`:** [`server.address` と `server.port` 属性の設定](/works/otel-specs-ja/semconv/http/http-spans/#serveraddress-と-serverport-属性の設定)を参照してください。

> [!WARNING]
> この属性はHTTPヘッダーに基づいているため、オプトインすることで攻撃者がカーディナリティ制限を引き起こし、メトリクスの有用性を低下させる可能性があります。

**[10] `user_agent.synthetic.type`:** この属性は、`user_agent.original` 属性の内容から導出されてもかまいません（MAY）。この属性を設定するコンポーネントは、合成ボットトラフィックまたはテストトラフィックとみなすものを判断する責任を負います。この属性は自己識別のために設定することもできますし、合成リクエストの結果として生成されたと検知されたテレメトリーに設定することもできます。この属性は、正規のクライアントトラフィックとボットまたはテストによって生成された合成トラフィックを区別するのに役立ちます。

---

`error.type` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装がカスタム値を定義していない場合に使用されるフォールバックのエラー値。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

---

`http.request.method` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装が事前に知らないHTTPメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `CONNECT` | CONNECTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `DELETE` | DELETEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `GET` | GETメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `HEAD` | HEADメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `OPTIONS` | OPTIONSメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PATCH` | PATCHメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `POST` | POSTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PUT` | PUTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `QUERY` | QUERYメソッド。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `TRACE` | TRACEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

---

`user_agent.synthetic.type` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `bot` | ボットによるソース。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `test` | テストによる合成ソース。 | ![Development](https://img.shields.io/badge/-development-blue) |

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

### メトリクス: `http.server.active_requests`

このメトリクスは[Opt-In][MetricOptIn]です。

<!-- semconv metric.http.server.active_requests -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `http.server.active_requests` | UpDownCounter | `{request}` | アクティブなHTTPサーバーリクエストの数。 | ![Development](https://img.shields.io/badge/-development-blue) | |

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`http.request.method`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | HTTPリクエストメソッド。[1] | `GET`; `POST`; `HEAD` |
| [`url.scheme`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | 使用されたプロトコルを識別する[URIスキーム](https://www.rfc-editor.org/rfc/rfc3986#section-3.1)コンポーネント。 | `http`; `https` |
| [`server.address`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | リクエストを受信したローカルHTTPサーバーの名前。[2] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
| [`server.port`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | int | リクエストを受信したローカルHTTPサーバーのポート。[3] | `80`; `8080`; `443` |

**[1] `http.request.method`:** HTTPリクエストメソッドの値は、計装に「既知」であるべきです（SHOULD）。
デフォルトでは、この規約は[RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)に列挙されているメソッド、[RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)で定義されたPATCHメソッド、[httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1)で定義されたQUERYメソッドを「既知の」メソッドとして定義します。

HTTPリクエストメソッドが計装に既知でない場合、`http.request.method` 属性を `_OTHER` に設定しなければなりません（MUST）。

HTTP計装が有効なHTTPリクエストメソッドを `_OTHER` に変換してしまう可能性がある場合、既知のHTTPメソッドの一覧を上書きする方法を提供しなければなりません（MUST）。
この上書きが環境変数を介して行われる場合、その環境変数は OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS という名前でなければならず（MUST）、大文字小文字を区別する既知のHTTPメソッドをカンマ区切りのリストとしてサポートしなければなりません（MUST）。

![Development](https://img.shields.io/badge/-development-blue)
この上書きが宣言的設定を介して行われる場合、`.instrumentation/development.general.http.client` や `.instrumentation/development.general.http.server` の下にある `known_methods` プロパティ（最小要素数0の、大文字小文字を区別する文字列の配列）でその一覧を設定可能にしなければなりません（MUST）。

いずれの場合も、この一覧は既知のメソッドのデフォルトの完全な上書きでなければならず（MUST）、デフォルトに追加する既知のメソッドの一覧ではありません。

HTTPメソッド名は大文字小文字を区別し、`http.request.method` 属性の値は既知のHTTPメソッド名に正確に一致しなければなりません（MUST）。
HTTPメソッドを大文字小文字を区別しないものとして扱う特定のWebフレームワーク向けの計装は、正規化された等価な値を設定すべきです（SHOULD）。
そのようなトレーシング計装は、`http.request.method_original` にも元の値を設定しなければなりません（MUST）。

**[2] `server.address`:** [`server.address` と `server.port` 属性の設定](/works/otel-specs-ja/semconv/http/http-spans/#serveraddress-と-serverport-属性の設定)を参照してください。

> [!WARNING]
> この属性はHTTPヘッダーに基づいているため、オプトインすることで攻撃者がカーディナリティ制限を引き起こし、メトリクスの有用性を低下させる可能性があります。

**[3] `server.port`:** [`server.address` と `server.port` 属性の設定](/works/otel-specs-ja/semconv/http/http-spans/#serveraddress-と-serverport-属性の設定)を参照してください。

> [!WARNING]
> この属性はHTTPヘッダーに基づいているため、オプトインすることで攻撃者がカーディナリティ制限を引き起こし、メトリクスの有用性を低下させる可能性があります。

---

`http.request.method` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装が事前に知らないHTTPメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `CONNECT` | CONNECTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `DELETE` | DELETEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `GET` | GETメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `HEAD` | HEADメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `OPTIONS` | OPTIONSメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PATCH` | PATCHメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `POST` | POSTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PUT` | PUTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `QUERY` | QUERYメソッド。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `TRACE` | TRACEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

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

### メトリクス: `http.server.request.body.size`

このメトリクスは[Opt-In][MetricOptIn]です。

<!-- semconv metric.http.server.request.body.size -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `http.server.request.body.size` | Histogram | `By` | HTTPサーバーリクエストボディのサイズ。[1] | ![Development](https://img.shields.io/badge/-development-blue) | |

**[1]:** リクエストのペイロードボディのバイト数。これはヘッダーを除いて転送されたバイト数であり、多くの場合（常にではありませんが）[Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)ヘッダーとして存在します。転送エンコーディングを使用するリクエストの場合、これは圧縮後のサイズであるべきです。

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`http.request.method`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | HTTPリクエストメソッド。[1] | `GET`; `POST`; `HEAD` |
| [`url.scheme`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | 使用されたプロトコルを識別する[URIスキーム](https://www.rfc-editor.org/rfc/rfc3986#section-3.1)コンポーネント。[2] | `http`; `https` |
| [`error.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/error/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` リクエストがエラーで終了した場合。 | string | 操作が終了したエラーのクラスを記述します。[3] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` |
| [`http.response.status_code`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` 送受信された場合に限る。 | int | [HTTPレスポンスステータスコード](https://tools.ietf.org/html/rfc7231#section-6)。 | `200` |
| [`http.route`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` 利用可能な場合に限る | string | リクエストにマッチしたルートテンプレート。これは低カーディナリティでなければならず（MUST）、すべての静的パスセグメントを含め、動的パスセグメントはプレースホルダーで表現しなければなりません（MUST）。[4] | `/users/:userID?`; `my-controller/my-action/{id?}` |
| [`network.protocol.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [5] | string | [OSIアプリケーション層](https://wikipedia.org/wiki/Application_layer)またはそれに相当する非OSI層。[6] | `http`; `spdy` |
| [`network.protocol.version`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | ネットワーク通信で使用されているプロトコルの実際のバージョン。[7] | `1.0`; `1.1`; `2`; `3` |
| [`server.address`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | リクエストを受信したローカルHTTPサーバーの名前。[8] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
| [`server.port`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | int | リクエストを受信したローカルHTTPサーバーのポート。[9] | `80`; `8080`; `443` |
| [`user_agent.synthetic.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/user-agent/) | ![Development](https://img.shields.io/badge/-development-blue) | `Opt-In` | string | 合成トラフィックのカテゴリー（テストやボットなど）を指定します。[10] | `bot`; `test` |

**[1] `http.request.method`:** HTTPリクエストメソッドの値は、計装に「既知」であるべきです（SHOULD）。
デフォルトでは、この規約は[RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)に列挙されているメソッド、[RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)で定義されたPATCHメソッド、[httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1)で定義されたQUERYメソッドを「既知の」メソッドとして定義します。

HTTPリクエストメソッドが計装に既知でない場合、`http.request.method` 属性を `_OTHER` に設定しなければなりません（MUST）。

HTTP計装が有効なHTTPリクエストメソッドを `_OTHER` に変換してしまう可能性がある場合、既知のHTTPメソッドの一覧を上書きする方法を提供しなければなりません（MUST）。
この上書きが環境変数を介して行われる場合、その環境変数は OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS という名前でなければならず（MUST）、大文字小文字を区別する既知のHTTPメソッドをカンマ区切りのリストとしてサポートしなければなりません（MUST）。

![Development](https://img.shields.io/badge/-development-blue)
この上書きが宣言的設定を介して行われる場合、`.instrumentation/development.general.http.client` や `.instrumentation/development.general.http.server` の下にある `known_methods` プロパティ（最小要素数0の、大文字小文字を区別する文字列の配列）でその一覧を設定可能にしなければなりません（MUST）。

いずれの場合も、この一覧は既知のメソッドのデフォルトの完全な上書きでなければならず（MUST）、デフォルトに追加する既知のメソッドの一覧ではありません。

HTTPメソッド名は大文字小文字を区別し、`http.request.method` 属性の値は既知のHTTPメソッド名に正確に一致しなければなりません（MUST）。
HTTPメソッドを大文字小文字を区別しないものとして扱う特定のWebフレームワーク向けの計装は、正規化された等価な値を設定すべきです（SHOULD）。
そのようなトレーシング計装は、`http.request.method_original` にも元の値を設定しなければなりません（MUST）。

**[2] `url.scheme`:** 既知の場合（例えば[Forwarded#proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/Forwarded#proto)、[X-Forwarded-Proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/X-Forwarded-Proto)、または類似のヘッダーから）、元のクライアントリクエストのスキームです。それ以外の場合、直近のピアリクエストのスキームです。

**[3] `error.type`:** レスポンスステータスコードの送受信前にエラーでリクエストが失敗した場合、`error.type` は例外の型（該当する場合はその完全修飾クラス名）またはコンポーネント固有の低カーディナリティなエラー識別子に設定すべきです（SHOULD）。

レスポンスステータスコードが送受信され、かつそのステータスが[HTTPスパンステータスの定義](/works/otel-specs-ja/semconv/http/http-spans/#ステータス)に従ってエラーを示す場合、`error.type` はステータスコード番号（文字列として表現）、（発生していれば）例外の型、またはコンポーネント固有のエラー識別子に設定すべきです（SHOULD）。

`error.type` の値は予測可能であるべきであり（SHOULD）、低カーディナリティであるべきです（SHOULD）。
計装は、報告するエラーの一覧を文書化すべきです（SHOULD）。

1つの計装ライブラリ内での `error.type` のカーディナリティは低くあるべきですが（SHOULD）、複数の計装ライブラリやアプリケーションからのデータを集約するテレメトリーの利用者は、追加のフィルターが適用されないクエリ時には `error.type` が高カーディナリティになることを想定しておくべきです。

リクエストが正常に完了した場合、計装は `error.type` を設定するべきではありません（SHOULD NOT）。

**[4] `http.route`:** HTTPサーバーフレームワークがこれをサポートしない場合、設定してはなりません（MUST NOT）。route属性は低カーディナリティであるべきであり、URIパスはそれに代わることができないためです。
アプリケーションルートがあれば、それを含めるべきです（SHOULD）（[アプリケーションルート](/works/otel-specs-ja/semconv/http/http-spans/#httpサーバーの定義)を参照）。

静的パスセグメントとは、固定された低カーディナリティな値を持つ、ルートテンプレートの一部です。
これには、`/users/` のようなリテラル文字列や、`{controller}` や `{action}` のような、有限かつ事前定義された値の集合に制約されたプレースホルダーが含まれます。

動的パスセグメントとは、静的パスセグメントのような事前定義された一覧に制約されない、高カーディナリティになりうる値のプレースホルダーです。

計装は、対応するWebフレームワークが提供するルーティング情報を使用すべきです（SHOULD）。
最も精度の高いルーティング情報のソースを選択すべきであり（SHOULD）、カスタムのルートフォーマットをサポートしてもかまいません（MAY）。
計装は、使用しているフォーマットとルート文字列を取得するために使用しているAPIを文書化すべきです（SHOULD）。

**[5] `network.protocol.name`:** `http` ではなく、かつ `network.protocol.version` が設定されている場合。

**[6] `network.protocol.name`:** 値は小文字に正規化すべきです（SHOULD）。

**[7] `network.protocol.version`:** プロトコルバージョンが（例えば[ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)を使って）ネゴシエーションされる場合、この属性はネゴシエーションされたバージョンに設定すべきです（SHOULD）。実際のプロトコルバージョンが不明な場合、この属性は設定するべきではありません（SHOULD NOT）。

**[8] `server.address`:** [`server.address` と `server.port` 属性の設定](/works/otel-specs-ja/semconv/http/http-spans/#serveraddress-と-serverport-属性の設定)を参照してください。

> [!WARNING]
> この属性はHTTPヘッダーに基づいているため、オプトインすることで攻撃者がカーディナリティ制限を引き起こし、メトリクスの有用性を低下させる可能性があります。

**[9] `server.port`:** [`server.address` と `server.port` 属性の設定](/works/otel-specs-ja/semconv/http/http-spans/#serveraddress-と-serverport-属性の設定)を参照してください。

> [!WARNING]
> この属性はHTTPヘッダーに基づいているため、オプトインすることで攻撃者がカーディナリティ制限を引き起こし、メトリクスの有用性を低下させる可能性があります。

**[10] `user_agent.synthetic.type`:** この属性は、`user_agent.original` 属性の内容から導出されてもかまいません（MAY）。この属性を設定するコンポーネントは、合成ボットトラフィックまたはテストトラフィックとみなすものを判断する責任を負います。この属性は自己識別のために設定することもできますし、合成リクエストの結果として生成されたと検知されたテレメトリーに設定することもできます。この属性は、正規のクライアントトラフィックとボットまたはテストによって生成された合成トラフィックを区別するのに役立ちます。

---

`error.type` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装がカスタム値を定義していない場合に使用されるフォールバックのエラー値。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

---

`http.request.method` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装が事前に知らないHTTPメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `CONNECT` | CONNECTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `DELETE` | DELETEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `GET` | GETメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `HEAD` | HEADメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `OPTIONS` | OPTIONSメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PATCH` | PATCHメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `POST` | POSTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PUT` | PUTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `QUERY` | QUERYメソッド。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `TRACE` | TRACEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

---

`user_agent.synthetic.type` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `bot` | ボットによるソース。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `test` | テストによる合成ソース。 | ![Development](https://img.shields.io/badge/-development-blue) |

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

### メトリクス: `http.server.response.body.size`

このメトリクスは[Opt-In][MetricOptIn]です。

<!-- semconv metric.http.server.response.body.size -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `http.server.response.body.size` | Histogram | `By` | HTTPサーバーレスポンスボディのサイズ。[1] | ![Development](https://img.shields.io/badge/-development-blue) | |

**[1]:** レスポンスのペイロードボディのバイト数。これはヘッダーを除いて転送されたバイト数であり、多くの場合（常にではありませんが）[Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)ヘッダーとして存在します。転送エンコーディングを使用するリクエストの場合、これは圧縮後のサイズであるべきです。

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`http.request.method`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | HTTPリクエストメソッド。[1] | `GET`; `POST`; `HEAD` |
| [`url.scheme`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | 使用されたプロトコルを識別する[URIスキーム](https://www.rfc-editor.org/rfc/rfc3986#section-3.1)コンポーネント。[2] | `http`; `https` |
| [`error.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/error/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` リクエストがエラーで終了した場合。 | string | 操作が終了したエラーのクラスを記述します。[3] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` |
| [`http.response.status_code`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` 送受信された場合に限る。 | int | [HTTPレスポンスステータスコード](https://tools.ietf.org/html/rfc7231#section-6)。 | `200` |
| [`http.route`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` 利用可能な場合に限る | string | リクエストにマッチしたルートテンプレート。これは低カーディナリティでなければならず（MUST）、すべての静的パスセグメントを含め、動的パスセグメントはプレースホルダーで表現しなければなりません（MUST）。[4] | `/users/:userID?`; `my-controller/my-action/{id?}` |
| [`network.protocol.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [5] | string | [OSIアプリケーション層](https://wikipedia.org/wiki/Application_layer)またはそれに相当する非OSI層。[6] | `http`; `spdy` |
| [`network.protocol.version`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | ネットワーク通信で使用されているプロトコルの実際のバージョン。[7] | `1.0`; `1.1`; `2`; `3` |
| [`server.address`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | リクエストを受信したローカルHTTPサーバーの名前。[8] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
| [`server.port`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | int | リクエストを受信したローカルHTTPサーバーのポート。[9] | `80`; `8080`; `443` |
| [`user_agent.synthetic.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/user-agent/) | ![Development](https://img.shields.io/badge/-development-blue) | `Opt-In` | string | 合成トラフィックのカテゴリー（テストやボットなど）を指定します。[10] | `bot`; `test` |

**[1] `http.request.method`:** HTTPリクエストメソッドの値は、計装に「既知」であるべきです（SHOULD）。
デフォルトでは、この規約は[RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)に列挙されているメソッド、[RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)で定義されたPATCHメソッド、[httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1)で定義されたQUERYメソッドを「既知の」メソッドとして定義します。

HTTPリクエストメソッドが計装に既知でない場合、`http.request.method` 属性を `_OTHER` に設定しなければなりません（MUST）。

HTTP計装が有効なHTTPリクエストメソッドを `_OTHER` に変換してしまう可能性がある場合、既知のHTTPメソッドの一覧を上書きする方法を提供しなければなりません（MUST）。
この上書きが環境変数を介して行われる場合、その環境変数は OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS という名前でなければならず（MUST）、大文字小文字を区別する既知のHTTPメソッドをカンマ区切りのリストとしてサポートしなければなりません（MUST）。

![Development](https://img.shields.io/badge/-development-blue)
この上書きが宣言的設定を介して行われる場合、`.instrumentation/development.general.http.client` や `.instrumentation/development.general.http.server` の下にある `known_methods` プロパティ（最小要素数0の、大文字小文字を区別する文字列の配列）でその一覧を設定可能にしなければなりません（MUST）。

いずれの場合も、この一覧は既知のメソッドのデフォルトの完全な上書きでなければならず（MUST）、デフォルトに追加する既知のメソッドの一覧ではありません。

HTTPメソッド名は大文字小文字を区別し、`http.request.method` 属性の値は既知のHTTPメソッド名に正確に一致しなければなりません（MUST）。
HTTPメソッドを大文字小文字を区別しないものとして扱う特定のWebフレームワーク向けの計装は、正規化された等価な値を設定すべきです（SHOULD）。
そのようなトレーシング計装は、`http.request.method_original` にも元の値を設定しなければなりません（MUST）。

**[2] `url.scheme`:** 既知の場合（例えば[Forwarded#proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/Forwarded#proto)、[X-Forwarded-Proto](https://developer.mozilla.org/docs/Web/HTTP/Headers/X-Forwarded-Proto)、または類似のヘッダーから）、元のクライアントリクエストのスキームです。それ以外の場合、直近のピアリクエストのスキームです。

**[3] `error.type`:** レスポンスステータスコードの送受信前にエラーでリクエストが失敗した場合、`error.type` は例外の型（該当する場合はその完全修飾クラス名）またはコンポーネント固有の低カーディナリティなエラー識別子に設定すべきです（SHOULD）。

レスポンスステータスコードが送受信され、かつそのステータスが[HTTPスパンステータスの定義](/works/otel-specs-ja/semconv/http/http-spans/#ステータス)に従ってエラーを示す場合、`error.type` はステータスコード番号（文字列として表現）、（発生していれば）例外の型、またはコンポーネント固有のエラー識別子に設定すべきです（SHOULD）。

`error.type` の値は予測可能であるべきであり（SHOULD）、低カーディナリティであるべきです（SHOULD）。
計装は、報告するエラーの一覧を文書化すべきです（SHOULD）。

1つの計装ライブラリ内での `error.type` のカーディナリティは低くあるべきですが（SHOULD）、複数の計装ライブラリやアプリケーションからのデータを集約するテレメトリーの利用者は、追加のフィルターが適用されないクエリ時には `error.type` が高カーディナリティになることを想定しておくべきです。

リクエストが正常に完了した場合、計装は `error.type` を設定するべきではありません（SHOULD NOT）。

**[4] `http.route`:** HTTPサーバーフレームワークがこれをサポートしない場合、設定してはなりません（MUST NOT）。route属性は低カーディナリティであるべきであり、URIパスはそれに代わることができないためです。
アプリケーションルートがあれば、それを含めるべきです（SHOULD）（[アプリケーションルート](/works/otel-specs-ja/semconv/http/http-spans/#httpサーバーの定義)を参照）。

静的パスセグメントとは、固定された低カーディナリティな値を持つ、ルートテンプレートの一部です。
これには、`/users/` のようなリテラル文字列や、`{controller}` や `{action}` のような、有限かつ事前定義された値の集合に制約されたプレースホルダーが含まれます。

動的パスセグメントとは、静的パスセグメントのような事前定義された一覧に制約されない、高カーディナリティになりうる値のプレースホルダーです。

計装は、対応するWebフレームワークが提供するルーティング情報を使用すべきです（SHOULD）。
最も精度の高いルーティング情報のソースを選択すべきであり（SHOULD）、カスタムのルートフォーマットをサポートしてもかまいません（MAY）。
計装は、使用しているフォーマットとルート文字列を取得するために使用しているAPIを文書化すべきです（SHOULD）。

**[5] `network.protocol.name`:** `http` ではなく、かつ `network.protocol.version` が設定されている場合。

**[6] `network.protocol.name`:** 値は小文字に正規化すべきです（SHOULD）。

**[7] `network.protocol.version`:** プロトコルバージョンが（例えば[ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)を使って）ネゴシエーションされる場合、この属性はネゴシエーションされたバージョンに設定すべきです（SHOULD）。実際のプロトコルバージョンが不明な場合、この属性は設定するべきではありません（SHOULD NOT）。

**[8] `server.address`:** [`server.address` と `server.port` 属性の設定](/works/otel-specs-ja/semconv/http/http-spans/#serveraddress-と-serverport-属性の設定)を参照してください。

> [!WARNING]
> この属性はHTTPヘッダーに基づいているため、オプトインすることで攻撃者がカーディナリティ制限を引き起こし、メトリクスの有用性を低下させる可能性があります。

**[9] `server.port`:** [`server.address` と `server.port` 属性の設定](/works/otel-specs-ja/semconv/http/http-spans/#serveraddress-と-serverport-属性の設定)を参照してください。

> [!WARNING]
> この属性はHTTPヘッダーに基づいているため、オプトインすることで攻撃者がカーディナリティ制限を引き起こし、メトリクスの有用性を低下させる可能性があります。

**[10] `user_agent.synthetic.type`:** この属性は、`user_agent.original` 属性の内容から導出されてもかまいません（MAY）。この属性を設定するコンポーネントは、合成ボットトラフィックまたはテストトラフィックとみなすものを判断する責任を負います。この属性は自己識別のために設定することもできますし、合成リクエストの結果として生成されたと検知されたテレメトリーに設定することもできます。この属性は、正規のクライアントトラフィックとボットまたはテストによって生成された合成トラフィックを区別するのに役立ちます。

---

`error.type` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装がカスタム値を定義していない場合に使用されるフォールバックのエラー値。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

---

`http.request.method` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装が事前に知らないHTTPメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `CONNECT` | CONNECTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `DELETE` | DELETEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `GET` | GETメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `HEAD` | HEADメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `OPTIONS` | OPTIONSメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PATCH` | PATCHメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `POST` | POSTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PUT` | PUTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `QUERY` | QUERYメソッド。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `TRACE` | TRACEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

---

`user_agent.synthetic.type` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `bot` | ボットによるソース。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `test` | テストによる合成ソース。 | ![Development](https://img.shields.io/badge/-development-blue) |

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

## HTTPクライアント

### メトリクス: `http.client.request.duration`

このメトリクスは[Recommended][MetricRecommended]です。

このメトリクスがHTTPクライアントスパンと合わせて報告される場合、メトリクスの値はHTTPクライアントスパンの処理時間と同じにすべきです（SHOULD）。

このメトリクスは、`[ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ]` の[`ExplicitBucketBoundaries` advisoryパラメータ](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.59.0/specification/metrics/api.md#instrument-advisory-parameters)を指定すべきです（SHOULD）。

<!-- semconv metric.http.client.request.duration -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `http.client.request.duration` | Histogram | `s` | HTTPクライアントリクエストの処理時間。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | |

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`http.request.method`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | HTTPリクエストメソッド。[1] | `GET`; `POST`; `HEAD` |
| [`server.address`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | 利用可能であればリバースDNSルックアップなしのサーバードメイン名。それ以外の場合はIPアドレスまたはUNIXドメインソケット名。[2] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
| [`server.port`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | int | サーバーのポート番号。[3] | `80`; `8080`; `443` |
| [`error.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/error/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` リクエストがエラーで終了した場合。 | string | 操作が終了したエラーのクラスを記述します。[4] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` |
| [`http.response.status_code`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` 送受信された場合に限る。 | int | [HTTPレスポンスステータスコード](https://tools.ietf.org/html/rfc7231#section-6)。 | `200` |
| [`network.protocol.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [5] | string | [OSIアプリケーション層](https://wikipedia.org/wiki/Application_layer)またはそれに相当する非OSI層。[6] | `http`; `spdy` |
| [`network.protocol.version`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | ネットワーク通信で使用されているプロトコルの実際のバージョン。[7] | `1.0`; `1.1`; `2`; `3` |
| [`url.scheme`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | 使用されたプロトコルを識別する[URIスキーム](https://www.rfc-editor.org/rfc/rfc3986#section-3.1)コンポーネント。 | `http`; `https` |
| [`url.template`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Development](https://img.shields.io/badge/-development-blue) | `Opt-In` | string | [絶対パス参照](https://www.rfc-editor.org/rfc/rfc3986#section-4.2)の低カーディナリティなテンプレート。[8] | `/users/{id}`; `/users/:id`; `/users?id={id}` |

**[1] `http.request.method`:** HTTPリクエストメソッドの値は、計装に「既知」であるべきです（SHOULD）。
デフォルトでは、この規約は[RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)に列挙されているメソッド、[RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)で定義されたPATCHメソッド、[httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1)で定義されたQUERYメソッドを「既知の」メソッドとして定義します。

HTTPリクエストメソッドが計装に既知でない場合、`http.request.method` 属性を `_OTHER` に設定しなければなりません（MUST）。

HTTP計装が有効なHTTPリクエストメソッドを `_OTHER` に変換してしまう可能性がある場合、既知のHTTPメソッドの一覧を上書きする方法を提供しなければなりません（MUST）。
この上書きが環境変数を介して行われる場合、その環境変数は OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS という名前でなければならず（MUST）、大文字小文字を区別する既知のHTTPメソッドをカンマ区切りのリストとしてサポートしなければなりません（MUST）。

![Development](https://img.shields.io/badge/-development-blue)
この上書きが宣言的設定を介して行われる場合、`.instrumentation/development.general.http.client` や `.instrumentation/development.general.http.server` の下にある `known_methods` プロパティ（最小要素数0の、大文字小文字を区別する文字列の配列）でその一覧を設定可能にしなければなりません（MUST）。

いずれの場合も、この一覧は既知のメソッドのデフォルトの完全な上書きでなければならず（MUST）、デフォルトに追加する既知のメソッドの一覧ではありません。

HTTPメソッド名は大文字小文字を区別し、`http.request.method` 属性の値は既知のHTTPメソッド名に正確に一致しなければなりません（MUST）。
HTTPメソッドを大文字小文字を区別しないものとして扱う特定のWebフレームワーク向けの計装は、正規化された等価な値を設定すべきです（SHOULD）。
そのようなトレーシング計装は、`http.request.method_original` にも元の値を設定しなければなりません（MUST）。

**[2] `server.address`:** HTTP/1.1において、[リクエストターゲット](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)が[absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2)で渡される場合、`server.address` はリクエストターゲットのホストコンポーネントと一致すべきです（SHOULD）。

その他のすべての場合、`server.address` はHTTP/1.1における `Host` ヘッダーのホストコンポーネント、またはHTTP/2およびHTTP/3における `:authority` 疑似ヘッダーと一致すべきです（SHOULD）。

**[3] `server.port`:** HTTP/1.1において、[リクエストターゲット](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)が[absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2)で渡される場合、`server.port` はリクエストターゲットのポートコンポーネントと一致すべきです（SHOULD）。

その他のすべての場合、`server.port` はHTTP/1.1における `Host` ヘッダーのポートコンポーネント、またはHTTP/2およびHTTP/3における `:authority` 疑似ヘッダーと一致すべきです（SHOULD）。

**[4] `error.type`:** レスポンスステータスコードの送受信前にエラーでリクエストが失敗した場合、`error.type` は例外の型（該当する場合はその完全修飾クラス名）またはコンポーネント固有の低カーディナリティなエラー識別子に設定すべきです（SHOULD）。

レスポンスステータスコードが送受信され、かつそのステータスが[HTTPスパンステータスの定義](/works/otel-specs-ja/semconv/http/http-spans/#ステータス)に従ってエラーを示す場合、`error.type` はステータスコード番号（文字列として表現）、（発生していれば）例外の型、またはコンポーネント固有のエラー識別子に設定すべきです（SHOULD）。

`error.type` の値は予測可能であるべきであり（SHOULD）、低カーディナリティであるべきです（SHOULD）。
計装は、報告するエラーの一覧を文書化すべきです（SHOULD）。

1つの計装ライブラリ内での `error.type` のカーディナリティは低くあるべきですが（SHOULD）、複数の計装ライブラリやアプリケーションからのデータを集約するテレメトリーの利用者は、追加のフィルターが適用されないクエリ時には `error.type` が高カーディナリティになることを想定しておくべきです。

リクエストが正常に完了した場合、計装は `error.type` を設定するべきではありません（SHOULD NOT）。

**[5] `network.protocol.name`:** `http` ではなく、かつ `network.protocol.version` が設定されている場合。

**[6] `network.protocol.name`:** 値は小文字に正規化すべきです（SHOULD）。

**[7] `network.protocol.version`:** プロトコルバージョンが（例えば[ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)を使って）ネゴシエーションされる場合、この属性はネゴシエーションされたバージョンに設定すべきです（SHOULD）。実際のプロトコルバージョンが不明な場合、この属性は設定するべきではありません（SHOULD NOT）。

**[8] `url.template`:** `url.template` は低カーディナリティでなければなりません（MUST）。通常HTTPクライアントでは利用できませんが、アプリケーションや専用のHTTP計装が知っている場合があります。

---

`error.type` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装がカスタム値を定義していない場合に使用されるフォールバックのエラー値。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

---

`http.request.method` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装が事前に知らないHTTPメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `CONNECT` | CONNECTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `DELETE` | DELETEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `GET` | GETメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `HEAD` | HEADメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `OPTIONS` | OPTIONSメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PATCH` | PATCHメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `POST` | POSTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PUT` | PUTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `QUERY` | QUERYメソッド。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `TRACE` | TRACEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

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

### メトリクス: `http.client.request.body.size`

このメトリクスは[Opt-In][MetricOptIn]です。

<!-- semconv metric.http.client.request.body.size -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `http.client.request.body.size` | Histogram | `By` | HTTPクライアントリクエストボディのサイズ。[1] | ![Development](https://img.shields.io/badge/-development-blue) | |

**[1]:** リクエストのペイロードボディのバイト数。これはヘッダーを除いて転送されたバイト数であり、多くの場合（常にではありませんが）[Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)ヘッダーとして存在します。転送エンコーディングを使用するリクエストの場合、これは圧縮後のサイズであるべきです。

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`http.request.method`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | HTTPリクエストメソッド。[1] | `GET`; `POST`; `HEAD` |
| [`server.address`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | 利用可能であればリバースDNSルックアップなしのサーバードメイン名。それ以外の場合はIPアドレスまたはUNIXドメインソケット名。[2] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
| [`server.port`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | int | サーバーのポート番号。[3] | `80`; `8080`; `443` |
| [`error.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/error/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` リクエストがエラーで終了した場合。 | string | 操作が終了したエラーのクラスを記述します。[4] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` |
| [`http.response.status_code`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` 送受信された場合に限る。 | int | [HTTPレスポンスステータスコード](https://tools.ietf.org/html/rfc7231#section-6)。 | `200` |
| [`network.protocol.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [5] | string | [OSIアプリケーション層](https://wikipedia.org/wiki/Application_layer)またはそれに相当する非OSI層。[6] | `http`; `spdy` |
| [`url.template`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Development](https://img.shields.io/badge/-development-blue) | `Conditionally Required` 利用可能な場合。 | string | [絶対パス参照](https://www.rfc-editor.org/rfc/rfc3986#section-4.2)の低カーディナリティなテンプレート。[7] | `/users/{id}`; `/users/:id`; `/users?id={id}` |
| [`network.protocol.version`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | ネットワーク通信で使用されているプロトコルの実際のバージョン。[8] | `1.0`; `1.1`; `2`; `3` |
| [`url.scheme`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | 使用されたプロトコルを識別する[URIスキーム](https://www.rfc-editor.org/rfc/rfc3986#section-3.1)コンポーネント。 | `http`; `https` |

**[1] `http.request.method`:** HTTPリクエストメソッドの値は、計装に「既知」であるべきです（SHOULD）。
デフォルトでは、この規約は[RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)に列挙されているメソッド、[RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)で定義されたPATCHメソッド、[httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1)で定義されたQUERYメソッドを「既知の」メソッドとして定義します。

HTTPリクエストメソッドが計装に既知でない場合、`http.request.method` 属性を `_OTHER` に設定しなければなりません（MUST）。

HTTP計装が有効なHTTPリクエストメソッドを `_OTHER` に変換してしまう可能性がある場合、既知のHTTPメソッドの一覧を上書きする方法を提供しなければなりません（MUST）。
この上書きが環境変数を介して行われる場合、その環境変数は OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS という名前でなければならず（MUST）、大文字小文字を区別する既知のHTTPメソッドをカンマ区切りのリストとしてサポートしなければなりません（MUST）。

![Development](https://img.shields.io/badge/-development-blue)
この上書きが宣言的設定を介して行われる場合、`.instrumentation/development.general.http.client` や `.instrumentation/development.general.http.server` の下にある `known_methods` プロパティ（最小要素数0の、大文字小文字を区別する文字列の配列）でその一覧を設定可能にしなければなりません（MUST）。

いずれの場合も、この一覧は既知のメソッドのデフォルトの完全な上書きでなければならず（MUST）、デフォルトに追加する既知のメソッドの一覧ではありません。

HTTPメソッド名は大文字小文字を区別し、`http.request.method` 属性の値は既知のHTTPメソッド名に正確に一致しなければなりません（MUST）。
HTTPメソッドを大文字小文字を区別しないものとして扱う特定のWebフレームワーク向けの計装は、正規化された等価な値を設定すべきです（SHOULD）。
そのようなトレーシング計装は、`http.request.method_original` にも元の値を設定しなければなりません（MUST）。

**[2] `server.address`:** HTTP/1.1において、[リクエストターゲット](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)が[absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2)で渡される場合、`server.address` はリクエストターゲットのホストコンポーネントと一致すべきです（SHOULD）。

その他のすべての場合、`server.address` はHTTP/1.1における `Host` ヘッダーのホストコンポーネント、またはHTTP/2およびHTTP/3における `:authority` 疑似ヘッダーと一致すべきです（SHOULD）。

**[3] `server.port`:** HTTP/1.1において、[リクエストターゲット](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)が[absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2)で渡される場合、`server.port` はリクエストターゲットのポートコンポーネントと一致すべきです（SHOULD）。

その他のすべての場合、`server.port` はHTTP/1.1における `Host` ヘッダーのポートコンポーネント、またはHTTP/2およびHTTP/3における `:authority` 疑似ヘッダーと一致すべきです（SHOULD）。

**[4] `error.type`:** レスポンスステータスコードの送受信前にエラーでリクエストが失敗した場合、`error.type` は例外の型（該当する場合はその完全修飾クラス名）またはコンポーネント固有の低カーディナリティなエラー識別子に設定すべきです（SHOULD）。

レスポンスステータスコードが送受信され、かつそのステータスが[HTTPスパンステータスの定義](/works/otel-specs-ja/semconv/http/http-spans/#ステータス)に従ってエラーを示す場合、`error.type` はステータスコード番号（文字列として表現）、（発生していれば）例外の型、またはコンポーネント固有のエラー識別子に設定すべきです（SHOULD）。

`error.type` の値は予測可能であるべきであり（SHOULD）、低カーディナリティであるべきです（SHOULD）。
計装は、報告するエラーの一覧を文書化すべきです（SHOULD）。

1つの計装ライブラリ内での `error.type` のカーディナリティは低くあるべきですが（SHOULD）、複数の計装ライブラリやアプリケーションからのデータを集約するテレメトリーの利用者は、追加のフィルターが適用されないクエリ時には `error.type` が高カーディナリティになることを想定しておくべきです。

リクエストが正常に完了した場合、計装は `error.type` を設定するべきではありません（SHOULD NOT）。

**[5] `network.protocol.name`:** `http` ではなく、かつ `network.protocol.version` が設定されている場合。

**[6] `network.protocol.name`:** 値は小文字に正規化すべきです（SHOULD）。

**[7] `url.template`:** `url.template` は低カーディナリティでなければなりません（MUST）。通常HTTPクライアントでは利用できませんが、アプリケーションや専用のHTTP計装が知っている場合があります。

**[8] `network.protocol.version`:** プロトコルバージョンが（例えば[ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)を使って）ネゴシエーションされる場合、この属性はネゴシエーションされたバージョンに設定すべきです（SHOULD）。実際のプロトコルバージョンが不明な場合、この属性は設定するべきではありません（SHOULD NOT）。

---

`error.type` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装がカスタム値を定義していない場合に使用されるフォールバックのエラー値。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

---

`http.request.method` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装が事前に知らないHTTPメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `CONNECT` | CONNECTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `DELETE` | DELETEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `GET` | GETメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `HEAD` | HEADメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `OPTIONS` | OPTIONSメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PATCH` | PATCHメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `POST` | POSTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PUT` | PUTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `QUERY` | QUERYメソッド。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `TRACE` | TRACEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

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

### メトリクス: `http.client.response.body.size`

このメトリクスは[Opt-In][MetricOptIn]です。

<!-- semconv metric.http.client.response.body.size -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `http.client.response.body.size` | Histogram | `By` | HTTPクライアントレスポンスボディのサイズ。[1] | ![Development](https://img.shields.io/badge/-development-blue) | |

**[1]:** レスポンスのペイロードボディのバイト数。これはヘッダーを除いて転送されたバイト数であり、多くの場合（常にではありませんが）[Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)ヘッダーとして存在します。転送エンコーディングを使用するリクエストの場合、これは圧縮後のサイズであるべきです。

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`http.request.method`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | HTTPリクエストメソッド。[1] | `GET`; `POST`; `HEAD` |
| [`server.address`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | 利用可能であればリバースDNSルックアップなしのサーバードメイン名。それ以外の場合はIPアドレスまたはUNIXドメインソケット名。[2] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
| [`server.port`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | int | サーバーのポート番号。[3] | `80`; `8080`; `443` |
| [`error.type`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/error/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` リクエストがエラーで終了した場合。 | string | 操作が終了したエラーのクラスを記述します。[4] | `timeout`; `java.net.UnknownHostException`; `server_certificate_invalid`; `500` |
| [`http.response.status_code`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` 送受信された場合に限る。 | int | [HTTPレスポンスステータスコード](https://tools.ietf.org/html/rfc7231#section-6)。 | `200` |
| [`network.protocol.name`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Conditionally Required` [5] | string | [OSIアプリケーション層](https://wikipedia.org/wiki/Application_layer)またはそれに相当する非OSI層。[6] | `http`; `spdy` |
| [`url.template`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Development](https://img.shields.io/badge/-development-blue) | `Conditionally Required` 利用可能な場合。 | string | [絶対パス参照](https://www.rfc-editor.org/rfc/rfc3986#section-4.2)の低カーディナリティなテンプレート。[7] | `/users/{id}`; `/users/:id`; `/users?id={id}` |
| [`network.protocol.version`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | ネットワーク通信で使用されているプロトコルの実際のバージョン。[8] | `1.0`; `1.1`; `2`; `3` |
| [`url.scheme`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | 使用されたプロトコルを識別する[URIスキーム](https://www.rfc-editor.org/rfc/rfc3986#section-3.1)コンポーネント。 | `http`; `https` |

**[1] `http.request.method`:** HTTPリクエストメソッドの値は、計装に「既知」であるべきです（SHOULD）。
デフォルトでは、この規約は[RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)に列挙されているメソッド、[RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)で定義されたPATCHメソッド、[httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1)で定義されたQUERYメソッドを「既知の」メソッドとして定義します。

HTTPリクエストメソッドが計装に既知でない場合、`http.request.method` 属性を `_OTHER` に設定しなければなりません（MUST）。

HTTP計装が有効なHTTPリクエストメソッドを `_OTHER` に変換してしまう可能性がある場合、既知のHTTPメソッドの一覧を上書きする方法を提供しなければなりません（MUST）。
この上書きが環境変数を介して行われる場合、その環境変数は OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS という名前でなければならず（MUST）、大文字小文字を区別する既知のHTTPメソッドをカンマ区切りのリストとしてサポートしなければなりません（MUST）。

![Development](https://img.shields.io/badge/-development-blue)
この上書きが宣言的設定を介して行われる場合、`.instrumentation/development.general.http.client` や `.instrumentation/development.general.http.server` の下にある `known_methods` プロパティ（最小要素数0の、大文字小文字を区別する文字列の配列）でその一覧を設定可能にしなければなりません（MUST）。

いずれの場合も、この一覧は既知のメソッドのデフォルトの完全な上書きでなければならず（MUST）、デフォルトに追加する既知のメソッドの一覧ではありません。

HTTPメソッド名は大文字小文字を区別し、`http.request.method` 属性の値は既知のHTTPメソッド名に正確に一致しなければなりません（MUST）。
HTTPメソッドを大文字小文字を区別しないものとして扱う特定のWebフレームワーク向けの計装は、正規化された等価な値を設定すべきです（SHOULD）。
そのようなトレーシング計装は、`http.request.method_original` にも元の値を設定しなければなりません（MUST）。

**[2] `server.address`:** HTTP/1.1において、[リクエストターゲット](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)が[absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2)で渡される場合、`server.address` はリクエストターゲットのホストコンポーネントと一致すべきです（SHOULD）。

その他のすべての場合、`server.address` はHTTP/1.1における `Host` ヘッダーのホストコンポーネント、またはHTTP/2およびHTTP/3における `:authority` 疑似ヘッダーと一致すべきです（SHOULD）。

**[3] `server.port`:** HTTP/1.1において、[リクエストターゲット](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)が[absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2)で渡される場合、`server.port` はリクエストターゲットのポートコンポーネントと一致すべきです（SHOULD）。

その他のすべての場合、`server.port` はHTTP/1.1における `Host` ヘッダーのポートコンポーネント、またはHTTP/2およびHTTP/3における `:authority` 疑似ヘッダーと一致すべきです（SHOULD）。

**[4] `error.type`:** レスポンスステータスコードの送受信前にエラーでリクエストが失敗した場合、`error.type` は例外の型（該当する場合はその完全修飾クラス名）またはコンポーネント固有の低カーディナリティなエラー識別子に設定すべきです（SHOULD）。

レスポンスステータスコードが送受信され、かつそのステータスが[HTTPスパンステータスの定義](/works/otel-specs-ja/semconv/http/http-spans/#ステータス)に従ってエラーを示す場合、`error.type` はステータスコード番号（文字列として表現）、（発生していれば）例外の型、またはコンポーネント固有のエラー識別子に設定すべきです（SHOULD）。

`error.type` の値は予測可能であるべきであり（SHOULD）、低カーディナリティであるべきです（SHOULD）。
計装は、報告するエラーの一覧を文書化すべきです（SHOULD）。

1つの計装ライブラリ内での `error.type` のカーディナリティは低くあるべきですが（SHOULD）、複数の計装ライブラリやアプリケーションからのデータを集約するテレメトリーの利用者は、追加のフィルターが適用されないクエリ時には `error.type` が高カーディナリティになることを想定しておくべきです。

リクエストが正常に完了した場合、計装は `error.type` を設定するべきではありません（SHOULD NOT）。

**[5] `network.protocol.name`:** `http` ではなく、かつ `network.protocol.version` が設定されている場合。

**[6] `network.protocol.name`:** 値は小文字に正規化すべきです（SHOULD）。

**[7] `url.template`:** `url.template` は低カーディナリティでなければなりません（MUST）。通常HTTPクライアントでは利用できませんが、アプリケーションや専用のHTTP計装が知っている場合があります。

**[8] `network.protocol.version`:** プロトコルバージョンが（例えば[ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)を使って）ネゴシエーションされる場合、この属性はネゴシエーションされたバージョンに設定すべきです（SHOULD）。実際のプロトコルバージョンが不明な場合、この属性は設定するべきではありません（SHOULD NOT）。

---

`error.type` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装がカスタム値を定義していない場合に使用されるフォールバックのエラー値。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

---

`http.request.method` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装が事前に知らないHTTPメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `CONNECT` | CONNECTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `DELETE` | DELETEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `GET` | GETメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `HEAD` | HEADメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `OPTIONS` | OPTIONSメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PATCH` | PATCHメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `POST` | POSTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PUT` | PUTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `QUERY` | QUERYメソッド。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `TRACE` | TRACEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

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

### メトリクス: `http.client.open_connections`

このメトリクスは[Opt-In][MetricOptIn]です。

<!-- semconv metric.http.client.open_connections -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `http.client.open_connections` | UpDownCounter | `{connection}` | クライアント上で現在アクティブまたはアイドル状態にある、送信方向のHTTP接続の数。 | ![Development](https://img.shields.io/badge/-development-blue) | |

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`http.connection.state`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Development](https://img.shields.io/badge/-development-blue) | `Required` | string | HTTP接続プールにおけるHTTP接続の状態。 | `active`; `idle` |
| [`server.address`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | 利用可能であればリバースDNSルックアップなしのサーバードメイン名。それ以外の場合はIPアドレスまたはUNIXドメインソケット名。[1] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
| [`server.port`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | int | サーバーのポート番号。[2] | `80`; `8080`; `443` |
| [`network.protocol.version`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | ネットワーク通信で使用されているプロトコルの実際のバージョン。[3] | `1.1`; `2` |
| [`network.peer.address`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | ネットワーク接続のピアアドレス。IPアドレスまたはUNIXドメインソケット名。 | `10.1.2.80`; `/tmp/my.sock` |
| [`url.scheme`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | 使用されたプロトコルを識別する[URIスキーム](https://www.rfc-editor.org/rfc/rfc3986#section-3.1)コンポーネント。 | `http`; `https` |

**[1] `server.address`:** クライアント側から観測し、かつ中継者を経由して通信している場合、`server.address` は、利用可能であれば、プロキシなどの中継者の背後にあるサーバーアドレスを表すべきです（SHOULD）。

**[2] `server.port`:** クライアント側から観測し、かつ中継者を経由して通信している場合、`server.port` は、利用可能であれば、プロキシなどの中継者の背後にあるサーバーポートを表すべきです（SHOULD）。

**[3] `network.protocol.version`:** プロトコルバージョンが（例えば[ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)を使って）ネゴシエーションされる場合、この属性はネゴシエーションされたバージョンに設定すべきです（SHOULD）。実際のプロトコルバージョンが不明な場合、この属性は設定するべきではありません（SHOULD NOT）。

---

`http.connection.state` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `active` | アクティブ状態。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `idle` | アイドル状態。 | ![Development](https://img.shields.io/badge/-development-blue) |

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

### メトリクス: `http.client.connection.duration`

このメトリクスは、`[ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300 ]` の[`ExplicitBucketBoundaries` advisoryパラメータ](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.59.0/specification/metrics/api.md#instrument-advisory-parameters)を指定すべきです（SHOULD）。

このメトリクスは[Opt-In][MetricOptIn]です。

<!-- semconv metric.http.client.connection.duration -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `http.client.connection.duration` | Histogram | `s` | 正常に確立された送信方向のHTTP接続の継続時間。 | ![Development](https://img.shields.io/badge/-development-blue) | |

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`server.address`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | 利用可能であればリバースDNSルックアップなしのサーバードメイン名。それ以外の場合はIPアドレスまたはUNIXドメインソケット名。[1] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
| [`server.port`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | int | サーバーのポート番号。[2] | `80`; `8080`; `443` |
| [`network.protocol.version`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | ネットワーク通信で使用されているプロトコルの実際のバージョン。[3] | `1.1`; `2` |
| [`network.peer.address`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/network/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | ネットワーク接続のピアアドレス。IPアドレスまたはUNIXドメインソケット名。 | `10.1.2.80`; `/tmp/my.sock` |
| [`url.scheme`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | 使用されたプロトコルを識別する[URIスキーム](https://www.rfc-editor.org/rfc/rfc3986#section-3.1)コンポーネント。 | `http`; `https` |

**[1] `server.address`:** クライアント側から観測し、かつ中継者を経由して通信している場合、`server.address` は、利用可能であれば、プロキシなどの中継者の背後にあるサーバーアドレスを表すべきです（SHOULD）。

**[2] `server.port`:** クライアント側から観測し、かつ中継者を経由して通信している場合、`server.port` は、利用可能であれば、プロキシなどの中継者の背後にあるサーバーポートを表すべきです（SHOULD）。

**[3] `network.protocol.version`:** プロトコルバージョンが（例えば[ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)を使って）ネゴシエーションされる場合、この属性はネゴシエーションされたバージョンに設定すべきです（SHOULD）。実際のプロトコルバージョンが不明な場合、この属性は設定するべきではありません（SHOULD NOT）。

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

### メトリクス: `http.client.active_requests`

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

このメトリクスは[Opt-In][MetricOptIn]です。

<!-- semconv metric.http.client.active_requests -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `http.client.active_requests` | UpDownCounter | `{request}` | アクティブなHTTPリクエストの数。 | ![Development](https://img.shields.io/badge/-development-blue) | |

**Attributes:**

| Key | Stability | [Requirement Level](/works/otel-specs-ja/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`server.address`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | string | 利用可能であればリバースDNSルックアップなしのサーバードメイン名。それ以外の場合はIPアドレスまたはUNIXドメインソケット名。[1] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
| [`server.port`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/server/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Required` | int | サーバーのポート番号。[2] | `80`; `8080`; `443` |
| [`url.template`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Development](https://img.shields.io/badge/-development-blue) | `Conditionally Required` 利用可能な場合。 | string | [絶対パス参照](https://www.rfc-editor.org/rfc/rfc3986#section-4.2)の低カーディナリティなテンプレート。[3] | `/users/{id}`; `/users/:id`; `/users?id={id}` |
| [`http.request.method`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Recommended` | string | HTTPリクエストメソッド。[4] | `GET`; `POST`; `HEAD` |
| [`url.scheme`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/url/) | ![Stable](https://img.shields.io/badge/-stable-lightgreen) | `Opt-In` | string | 使用されたプロトコルを識別する[URIスキーム](https://www.rfc-editor.org/rfc/rfc3986#section-3.1)コンポーネント。 | `http`; `https` |

**[1] `server.address`:** HTTP/1.1において、[リクエストターゲット](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)が[absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2)で渡される場合、`server.address` はリクエストターゲットのホストコンポーネントと一致すべきです（SHOULD）。

その他のすべての場合、`server.address` はHTTP/1.1における `Host` ヘッダーのホストコンポーネント、またはHTTP/2およびHTTP/3における `:authority` 疑似ヘッダーと一致すべきです（SHOULD）。

**[2] `server.port`:** HTTP/1.1において、[リクエストターゲット](https://www.rfc-editor.org/rfc/rfc9112.html#name-request-target)が[absolute-form](https://www.rfc-editor.org/rfc/rfc9112.html#section-3.2.2)で渡される場合、`server.port` はリクエストターゲットのポートコンポーネントと一致すべきです（SHOULD）。

その他のすべての場合、`server.port` はHTTP/1.1における `Host` ヘッダーのポートコンポーネント、またはHTTP/2およびHTTP/3における `:authority` 疑似ヘッダーと一致すべきです（SHOULD）。

**[3] `url.template`:** `url.template` は低カーディナリティでなければなりません（MUST）。通常HTTPクライアントでは利用できませんが、アプリケーションや専用のHTTP計装が知っている場合があります。

**[4] `http.request.method`:** HTTPリクエストメソッドの値は、計装に「既知」であるべきです（SHOULD）。
デフォルトでは、この規約は[RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)に列挙されているメソッド、[RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)で定義されたPATCHメソッド、[httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1)で定義されたQUERYメソッドを「既知の」メソッドとして定義します。

HTTPリクエストメソッドが計装に既知でない場合、`http.request.method` 属性を `_OTHER` に設定しなければなりません（MUST）。

HTTP計装が有効なHTTPリクエストメソッドを `_OTHER` に変換してしまう可能性がある場合、既知のHTTPメソッドの一覧を上書きする方法を提供しなければなりません（MUST）。
この上書きが環境変数を介して行われる場合、その環境変数は OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS という名前でなければならず（MUST）、大文字小文字を区別する既知のHTTPメソッドをカンマ区切りのリストとしてサポートしなければなりません（MUST）。

![Development](https://img.shields.io/badge/-development-blue)
この上書きが宣言的設定を介して行われる場合、`.instrumentation/development.general.http.client` や `.instrumentation/development.general.http.server` の下にある `known_methods` プロパティ（最小要素数0の、大文字小文字を区別する文字列の配列）でその一覧を設定可能にしなければなりません（MUST）。

いずれの場合も、この一覧は既知のメソッドのデフォルトの完全な上書きでなければならず（MUST）、デフォルトに追加する既知のメソッドの一覧ではありません。

HTTPメソッド名は大文字小文字を区別し、`http.request.method` 属性の値は既知のHTTPメソッド名に正確に一致しなければなりません（MUST）。
HTTPメソッドを大文字小文字を区別しないものとして扱う特定のWebフレームワーク向けの計装は、正規化された等価な値を設定すべきです（SHOULD）。
そのようなトレーシング計装は、`http.request.method_original` にも元の値を設定しなければなりません（MUST）。

---

`http.request.method` には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `_OTHER` | 計装が事前に知らないHTTPメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `CONNECT` | CONNECTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `DELETE` | DELETEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `GET` | GETメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `HEAD` | HEADメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `OPTIONS` | OPTIONSメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PATCH` | PATCHメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `POST` | POSTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `PUT` | PUTメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |
| `QUERY` | QUERYメソッド。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `TRACE` | TRACEメソッド。 | ![Stable](https://img.shields.io/badge/-stable-lightgreen) |

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

[DocumentStatus]: https://opentelemetry.io/docs/specs/otel/document-status
[MetricRecommended]: /works/otel-specs-ja/semconv/general/metric-requirement-level/#recommended
[MetricOptIn]: /works/otel-specs-ja/semconv/general/metric-requirement-level/#opt-in

