.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 で使用できますが、その Status、DisplayName、属性 (タグ) は.NET 9 以降でのみ設定されます。 以前のバージョンでは、組み込みのインストルメンテーションのギャップを埋めるために、OpenTelemetry.Instrumentation.Http パッケージをお勧めします。
属性 (タグ)
属性 | 種類 | 形容 | 例 | 出席 |
---|---|---|---|---|
http.request.method |
string |
HTTP 要求メソッド。 [1] |
GET ;POST ;HEAD ;_OTHER |
いつも |
server.address |
string |
HTTP 要求の送信先 |
example.com ;10.1.2.80 |
いつも |
server.port |
int |
HTTP 要求の送信先 |
80 ;8080 ;443 |
いつも |
url.full |
string |
RFC3986 に従ってネットワーク リソースを記述する絶対 URL [2] | https://www.foo.bar/search?q=* |
いつも |
error.type |
string |
要求エラーの理由: snake_caseで |
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 クライアント要求 アクティビティの子です。 これは、対応する要求が要求キューで使用可能な接続を待機している時間間隔を表します。 要求が入ったときにプールで空き接続が使用可能な場合、接続 アクティビティが作成されるまで
可用性 | 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で |
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 クライアント要求にリンクされません。
警告
このアクティビティは試験段階です。 将来のバージョンで変更または削除される可能性があります。
属性 (タグ)
属性 | 種類 | 形容 | 例 | 出席 |
---|---|---|---|---|
error.type |
string |
接続エラーの理由: snake_caseで |
System.Net.Sockets.SocketException ;name_resolution_error ;secure_connection_error |
接続試行が失敗した場合。 |
network.peer.address |
string |
ソケット接続のピア IP アドレス。 | 10.5.3.2 |
接続の試行が成功した場合。 |
server.address |
string |
最初の HTTP 要求の送信先 |
example.com |
いつも |
server.port |
int |
初期 HTTP 要求の送信先 |
いつも | |
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 (SocketError、host_not_found
、try_again
、no_recovery
)、または完全な例外名の DNS 関連の address_family_not_supported
です。
ソケット接続 (試験段階)
このアクティビティでは、Socket または Connectを介した ConnectAsync 接続の確立について説明します。
可用性 | 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 |
プロトコル情報が使用可能な場合。 |
.NET