共用方式為


.NET 中的內建活動

這是分散式追蹤 活動的參考, 由 原生發出。NET 的內建 ActivitySource 實例。

System.Net 活動

HTTP 用戶端要求

SocketsHttpHandlerHttpClientHandler 遵循 OpenTelemetry HTTP 用戶端語意慣例中所定義的建議,回報 HTTP 用戶端要求活動。 它會描述基礎處理程式完成要求的時間間隔期間,由 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 「URI 來源」的埠識別碼, HTTP 要求傳送至 。 80;8080;443 總是
url.full string 根據 RFC3986 描述網路資源的絕對 URL [2] https://www.foo.bar/search?q=* 總是
error.type string 要求失敗原因:snake_case中的其中一個 HTTP 要求錯誤,或完整的例外狀況類型,或 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所列的其中一個已知方法,則值會包含方法名稱;否則,值會 _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 要求錯誤,或完整例外狀況類型。 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 連線,且要求會挑選該連線來提供服務,則檢測會將 ActivityLink 新增至指向 HTTP 連線設定 活動的 HTTP 用戶端要求 活動。 也就是說,每個要求都會連結至服務要求的連線。

注意

如果 HTTP 連線設定 失敗,則不會連結到任何 HTTP 用戶端要求

警告

此活動是實驗性的。 未來版本可能會加以變更或刪除。

屬性(標籤)

屬性 類型 描述 例子 存在
error.type string 連線失敗原因:snake_case中的其中一個 HTTP 要求錯誤,或完整的例外狀況類型。 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 「URI 來源」的埠識別碼, 傳送初始 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 查閱)或包含功能變數名稱的單一元素(用於反向查閱)。 ["10.0.0.1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"] 如果查閱成功,則為 。
dns.question.name string 要查詢的功能變數名稱或IP位址。 example.com 總是

[1]: 此值可以是snake_case中 DNS 相關的 SocketErrorhost_not_foundtry_againno_recoveryaddress_family_not_supported]或完整例外狀況名稱。

套接字連線 (實驗性)

此活動描述透過 SocketConnect建立 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} -或- TLS server handshake

警告

此活動是實驗性的。 未來版本可能會加以變更或刪除。

屬性(標籤)

屬性 類型 描述 例子 存在
error.type string 描述作業以 結尾的錯誤類別。 System.Net.Security.Authentication.AuthenticationException;System.OperationCanceledException 如果交握失敗。
server.address string 在 TLS 交握期間,在 『Client Hello』 訊息中使用的 伺服器名稱指示 (SNI) example.com 當驗證為用戶端時。
tls.protocol.name string 從交涉 SSL/TLS 通訊協定版本原始字串剖析的標準化小寫通訊協定名稱 ssl;tls 當通訊協定資訊可用時。
tls.protocol.version string 從交涉 SSL/TLS 通訊協定版本原始字串剖析的版本數值部分 1.2;1.3 當通訊協定資訊可用時。