次の方法で共有


.NET の組み込みアクティビティ

これは、分散トレース アクティビティ ネイティブに出力される場合のリファレンスです。NET の組み込みの ActivitySource インスタンス。

System.Net アクティビティ

HTTP クライアント要求

openTelemetry SocketsHttpHandlerで定義されている推奨事項に従って、HTTP クライアント要求アクティビティを HttpClientHandler および レポートします。 これは、基になるハンドラーが要求を完了する時間間隔の間に、HttpClientの送信オーバーロードによって送信される HTTP 要求を記述します。 要求の完了には、ネットワーク ストリームから応答ヘッダーを読み取るまでの時間が含まれます。 応答本文の読み取りに費やされた時間は含まれません。 SocketsHttpHandler は、接続エラーや HTTP バージョンのダウングレードなど、要求を再試行できます。 再試行は、HTTP クライアント要求 アクティビティ 個別として報告されません。

可用性 ActivitySource OperationName DisplayName
.NET 9 以降 System.Net.Http System.Net.Http.HttpRequestOut {HTTP method}

手記

System.Net.Http.HttpRequestOut アクティビティは、実際には以前のバージョンの .NET で使用できますが、その StatusDisplayName、属性 (タグ) は.NET 9 以降でのみ設定されます。 以前のバージョンでは、組み込みのインストルメンテーションのギャップを埋めるために、OpenTelemetry.Instrumentation.Http パッケージをお勧めします。

属性 (タグ)

属性 種類 形容 出席
http.request.method string HTTP 要求メソッド。 [1] GET;POST;HEAD;_OTHER いつも
server.address string HTTP 要求の送信先 "URI 配信元" のホスト識別子。 example.com;10.1.2.80 いつも
server.port int HTTP 要求の送信先 "URI 配信元" のポート識別子。 80;8080;443 いつも
url.full string RFC3986 に従ってネットワーク リソースを記述する絶対 URL [2] https://www.foo.bar/search?q=* いつも
error.type string 要求エラーの理由: snake_caseで HTTP 要求エラーの 1 つ、完全な例外の種類、または HTTP 4xx/5xx 状態コード。 System.OperationCanceledException;name_resolution_error;secure_connection_error;404 要求が失敗した場合。
http.request.method_original string 要求行でクライアントによって送信された元の HTTP メソッド。 ACL;foo http.request.method が既知の方法でない場合。
http.response.status_code int HTTP 応答状態コードを します。 200 応答が受信された場合。
network.protocol.version string 使用される HTTP プロトコルのバージョン。 1.1;2 応答が受信された場合。

[1] http.request.method: メソッドが RFC9110に記載されている既知のメソッドの 1 つである場合、値にはメソッド名が含まれます。それ以外の場合、値は _OTHER。 ユーザー指定のメソッド名は、大文字と小文字を区別せずに既知の名前にマップされます。 たとえば、ユーザーが名前 GeTを指定した場合、GETにマップされ、http.request.method_original は設定されません。

[2] url.full: シークレットのリークを回避するために、値は既定で編集されます。クエリ全体が * 文字に置き換えられ、フラグメント & ユーザー情報が削除されます。 詳細およびオプトアウト スイッチについては、URI の編集の破壊的変更に関するドキュメントを参照してください。

HTTP クライアント要求: 接続を待機する (試験段階)

このアクティビティは、HTTP クライアント要求 アクティビティの子です。 これは、対応する要求が要求キューで使用可能な接続を待機している時間間隔を表します。 要求が入ったときにプールで空き接続が使用可能な場合、接続 アクティビティが作成されるまで 待機しません。 接続 の待機は、実際の接続確立を表していません。これは、HTTP 接続のセットアップ アクティビティによってモデル化されます。 SocketsHttpHandler は、接続エラーや HTTP バージョンのダウングレードなど、要求を再試行できます。 再試行は、HTTP クライアント要求 アクティビティ 個別として報告されません。ただし、新しい接続を試行するたびに、親要求アクティビティの下で接続 アクティビティを待機する新しい が発生します。

可用性 ActivitySource OperationName DisplayName
.NET 9 以降 Experimental.System.Net.Http.Connections Experimental.System.Net.Http.Connections.WaitForConnection HTTP wait_for_connection {address}:{port}

先端

プールから接続を取得するのにかかる時間も、http.client.request.time_in_queue メトリックによって報告されます。

警告

このアクティビティは試験段階です。 将来のバージョンで変更または削除される可能性があります。

属性 (タグ)

属性 種類 形容 出席
error.type string 接続エラーの理由: snake_caseで HTTP 要求エラーの 1 つ、または完全な例外の種類。 System.OperationCanceledException;name_resolution_error;secure_connection_error 接続試行が失敗した場合。

HTTP 接続のセットアップ (試験段階)

このアクティビティでは、HTTP 接続の確立について説明します。 通常、これには DNS の解決、ソケット接続の確立、TLS ハンドシェイクの実行にかかる時間が含まれます。

可用性 ActivitySource OperationName DisplayName
.NET 9 以降 Experimental.System.Net.Http.Connections Experimental.System.Net.Http.Connections.ConnectionSetup HTTP connection_setup {address}:{port}

HTTP クライアント要求HTTP 接続のセットアップ アクティビティの間に親子関係はありません。後者は常にルート アクティビティになり、別のトレースに存在します。 ただし、HTTP 接続セットアップ によって表される接続試行によって正常な HTTP 接続が発生し、その接続がサービスを提供する要求によって取得された場合、インストルメンテーションは、HTTP 接続のセットアップ アクティビティを指す アクティビティ HTTP クライアント要求に を追加します。 つまり、各要求は、要求を処理した接続にリンクされます。

手記

HTTP 接続 セットアップ 失敗した場合、HTTP クライアント要求にリンクされません。

警告

このアクティビティは試験段階です。 将来のバージョンで変更または削除される可能性があります。

属性 (タグ)

属性 種類 形容 出席
error.type string 接続エラーの理由: snake_caseで HTTP 要求エラーの 1 つ、または完全な例外の種類。 System.Net.Sockets.SocketException;name_resolution_error;secure_connection_error 接続試行が失敗した場合。
network.peer.address string ソケット接続のピア IP アドレス。 10.5.3.2 接続の試行が成功した場合。
server.address string 最初の HTTP 要求の送信先 "URI 配信元" のホスト識別子。 example.com いつも
server.port int 初期 HTTP 要求の送信先 "URI 配信元" のポート識別子。 いつも
url.scheme string URI スキーム 使用されるプロトコルを識別するコンポーネントです。 http;https いつも

DNS 参照 (試験段階)

このアクティビティでは、Dns 呼び出しによって実行される DNS 参照について説明します。 これは、基になる OS リゾルバーによって実行される物理 DNS 参照ではなく、マネージド呼び出しに対応します。 DNS 参照 アクティビティが、HTTP 接続のセットアップ アクティビティと共に報告されると、DNS 参照 は、HTTP 接続セットアップの子になります。

可用性 ActivitySource OperationName DisplayName
.NET 9 以降 Experimental.System.Net.NameResolution Experimental.System.Net.NameResolution.DnsLookup DNS [reverse] lookup {question}

先端

DNS 参照期間は、dns.lookup.duration メトリックによっても報告されます。

警告

このアクティビティは試験段階です。 将来のバージョンで変更または削除される可能性があります。

属性 (タグ)

属性 種類 形容 出席
error.type string エラー コードまたは例外名。 [1] host_not_found 検索が失敗した場合。
dns.answers string[] 解決された IP アドレスの一覧 (DNS 参照用) またはドメイン名を含む 1 つの要素 (逆引き参照用)。 ["10.0.0.1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"] 検索が成功した場合。
dns.question.name string クエリ対象のドメイン名または IP アドレス。 example.com いつも

[1]: 値は、snake_case (SocketErrorhost_not_foundtry_againno_recovery)、または完全な例外名の DNS 関連の address_family_not_supported です。

ソケット接続 (試験段階)

このアクティビティでは、Socket または Connectを介した ConnectAsync 接続の確立について説明します。 ソケット接続 アクティビティが HTTP 接続セットアップ アクティビティと共に報告されると、ソケット接続 は、HTTP 接続セットアップの子 になります。

可用性 ActivitySource OperationName DisplayName
.NET 9 以降 Experimental.System.Net.Sockets Experimental.System.Net.Sockets.Connect socket connect {address}[:{port}]

警告

このアクティビティは試験段階です。 将来のバージョンで変更または削除される可能性があります。

属性 (タグ)

属性 種類 形容 出席
error.type string snake_caseの SocketError address_already_in_use;connection_refused ソケット接続の試行が失敗した場合。
network.peer.address string ネットワーク接続のピア アドレス - IP アドレスまたは Unix ドメイン ソケット名。 10.5.3.2;/tmp/my.sock IP ソケットと UDS ソケット。
network.peer.port int IP 接続のピア ポート番号。 65123 IP ソケット。
network.transport string OSIトランスポート層 またはプロセス間通信方法 tcp;udp;unix IP ソケットと UDS ソケット。
network.type string OSI ネットワーク 層 または非 OSI と同等です。 ipv4;ipv6 IP ソケット。

TLS ハンドシェイク (試験段階)

このアクティビティでは、SslStreamの認証方法を使用して実行される TLS クライアントまたはサーバー ハンドシェイクについて説明します。 TLS ハンドシェイク アクティビティが、HTTP 接続セットアップ アクティビティと共にクライアント側認証のために報告されると、TLS ハンドシェイク は、HTTP 接続セットアップの子になります。

可用性 ActivitySource OperationName DisplayName
.NET 9 以降 Experimental.System.Net.Security Experimental.System.Net.Security.TlsHandshake TLS client handshake {host} -or- TLS server handshake

警告

このアクティビティは試験段階です。 将来のバージョンで変更または削除される可能性があります。

属性 (タグ)

属性 種類 形容 出席
error.type string 操作が終了したエラーのクラスについて説明します。 System.Net.Security.Authentication.AuthenticationException;System.OperationCanceledException ハンドシェイクが失敗した場合。
server.address string サーバー名表示 (SNI) TLS ハンドシェイク中に "Client Hello" メッセージで使用されます。 example.com クライアントとして認証する場合。
tls.protocol.name string ネゴシエートされた SSL/TLS プロトコル バージョンの元の文字列から解析された正規化された小文字のプロトコル名 ssl;tls プロトコル情報が使用可能な場合。
tls.protocol.version string ネゴシエートされた SSL/TLS プロトコル バージョンの元の文字列から解析されたバージョンの数値部分 1.2;1.3 プロトコル情報が使用可能な場合。