.NET 中的內建活動
這是分散式追蹤 活動的參考, 由 原生發出。NET 的內建 ActivitySource 實例。
System.Net 活動
HTTP 用戶端要求
SocketsHttpHandler 並 HttpClientHandler 遵循 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 上提供,但其 Status、DisplayName和屬性(標籤)只會從 .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中 的其中一個 |
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 要求 |
example.com |
總是 |
server.port |
int |
「URI 來源」的埠識別碼, 傳送初始 HTTP 要求。 | 總是 | |
url.scheme |
string |
識別已使用通訊協定的 URI 配置 元件。 |
http ;https |
總是 |
DNS 查閱 (實驗性)
此活動描述透過 Dns 呼叫執行的 DNS 查閱。 它對應至受控呼叫,而不是基礎OS解析程式所完成的實體 DNS 查閱。 當報告
可用性 | 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 相關的 SocketError(host_not_found
、try_again
、no_recovery
、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} -或- 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 |
當通訊協定資訊可用時。 |