共用方式為


System.Net 計量

本文說明使用 System.Diagnostics.Metrics API 產生的內建 System.Net 網路計量。 如需以替代 EventCounters API 為基礎的計量清單,請參閱 .NET中的已知 EventCounters

提示

如需如何收集、報告、擴充及測試 System.Net 計量的詳細資訊,請參閱 .NET中的網路計量

System.Net.NameResolution

System.Net.NameResolution 計量會報告來自 Dns 的 DNS 名稱解析:

計量:dns.lookup.duration
名稱 金融工具類型 單位 描述
dns.lookup.duration 長條圖 s 測量執行 DNS 查閱所花費的時間。
屬性 類型 描述 範例 目前狀態
dns.question.name string 要查詢的名稱。 www.example.com; dot.net 永遠
error.type string 已知錯誤字串或所發生例外狀況的完整類型名稱。 host_not_found; System.Net.Sockets.SocketException 如果發生錯誤

此計量會測量發出 DNS 要求所需的時間。 您可以藉由在 Dns 上呼叫方法或間接在 HttpClient 等類型上的較高層級 API 內呼叫方法來產生這些要求。

執行 DNS 查閱時,大部分的錯誤都會擲回 SocketException。 為了更清楚地釐清常見的錯誤案例,具有特定 SocketErrorCode 的通訊端例外狀況在 error.type 中會有明確的錯誤名稱:

SocketErrorCode error.type
HostNotFound host_not_found
TryAgain try_again
AddressFamilyNotSupported address_family_not_supported
NoRecovery no_recovery

具有任何其他 SocketError 值的通訊端例外狀況會回報為 System.Net.Sockets.SocketException

使用 OpenTelemetry 時,此計量的預設貯體會設定為 [ 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 ]。

從此版本開始提供:.NET 8

System.Net.Http

System.Net.Http 計量會報告來自 System.Net.Http 的 HTTP 要求和連線資訊:

計量:http.client.open_connections
名稱 金融工具類型 單位 (UCUM) 描述
http.client.open_connections UpDownCounter {connection} 用戶端上目前作用中或閒置的輸出 HTTP 連線數目
屬性 類型 描述 範例 目前狀態
http.connection.state string HTTP 連線集區中的 HTTP 連線狀態。 active; idle 永遠
network.protocol.version string 所使用的應用層通訊協定版本。 1.1; 2 永遠
server.address string 「URI 來源」HTTP 要求的主機識別碼會傳送至此。 example.com 永遠
server.port int 「URI 來源」HTTP 要求的連接埠識別碼會傳送至此。 80; 8080; 443 如果不是預設值 (針對 http 配置使用 80,針對 https 使用 443)
network.peer.address string 通訊端連線的對等 IP 位址。 10.5.3.2 永遠
url.scheme string 識別已使用通訊協定的 URI 配置元件。 http; https; ftp 永遠

當設定為使用預設的 SocketsHttpHandler 時,HttpClient 會維護用於傳送 HTTP 訊息的網路連線快取集區。 此計量會計算集區中目前有多少連線。 作用中的連線正在處理作用中的要求。 作用中的連線可以傳輸資料或等候用戶端或伺服器。 閒置連線不會處理任何要求,但會保持開啟狀態,以便更快速地處理未來的要求。

從此版本開始提供:.NET 8

計量:http.client.connection.duration
名稱 金融工具類型 單位 (UCUM) 描述
http.client.connection.duration 長條圖 s 成功建立輸出 HTTP 連線的持續時間。
屬性 類型 描述 範例 目前狀態
network.protocol.version string 所使用的應用層通訊協定版本。 1.1; 2 永遠
server.address string 「URI 來源」HTTP 要求的主機識別碼會傳送至此。 example.com 永遠
server.port int 「URI 來源」HTTP 要求的連接埠識別碼會傳送至此。 80; 8080; 443 如果不是預設值 (針對 http 配置使用 80,針對 https 使用 443)
network.peer.address string 通訊端連線的 IP 位址。 10.5.3.2 永遠
url.scheme string 識別已使用通訊協定的 URI 配置元件。 http; https; ftp 永遠

只有在 HttpClient 設定為使用預設 SocketsHttpHandler 時,才會擷取此計量。

由於此計量會追蹤連線持續時間,而且在理想情況下會針對多個要求使用 HTTP 連線,因此貯體應該比要求持續時間所使用的貯體還要長。 例如,使用 [ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300 ] 提供 5 分鐘的貯體上限。

從此版本開始提供:.NET 8

計量:http.client.request.duration
名稱 金融工具類型 單位 (UCUM) 描述
http.client.request.duration 長條圖 s 輸出 HTTP 要求的持續時間。
屬性 類型 描述 範例 目前狀態
error.type string 要求失敗原因:其中 一個 HTTP 要求錯誤,或完整的例外狀況類型,或 HTTP 4xx/5xx 狀態代碼。 System.Threading.Tasks.TaskCanceledException; name_resolution_error; secure_connection_error ; 404 如果要求失敗。
http.request.method string HTTP 要求方法。 GET; POST; HEAD 永遠
http.response.status_code int HTTP 回應狀態碼 200 如果收到的話。
network.protocol.version string 所使用的應用層通訊協定版本。 1.1; 2 如果收到回應。
server.address string 「URI 來源」HTTP 要求的主機識別碼會傳送至此。 example.com 永遠
server.port int 「URI 來源」HTTP 要求的連接埠識別碼會傳送至此。 80; 8080; 443 如果不是預設值 (針對 http 配置使用 80,針對 https 使用 443)
url.scheme string 識別已使用通訊協定的 URI 配置元件。 http; https; ftp 永遠

HTTP 用戶端要求持續時間會測量基礎用戶端處理程式完成要求所需的時間。 完成要求包括從網路資料流讀取回應標頭的時間。 不包含讀取回應本文所花費的時間。

使用 OpenTelemetry 時,此計量的預設貯體會設定為 [ 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 ]。

從此版本開始提供:.NET 8

提示

此計量可進行擴充

計量:http.client.request.time_in_queue
名稱 金融工具類型 單位 (UCUM) 描述
http.client.request.time_in_queue 長條圖 s 要求在等候可用連線之佇列上所花費的時間。
屬性 類型 描述 範例 目前狀態
http.request.method string HTTP 要求方法。 GET; POST; HEAD 永遠
network.protocol.version string 所使用的應用層通訊協定版本。 1.1; 2 永遠
server.address string 「URI 來源」HTTP 要求的主機識別碼會傳送至此。 example.com 永遠
server.port int 「URI 來源」HTTP 要求的連接埠識別碼會傳送至此。 80; 8080; 443 如果不是預設值 (針對 http 配置使用 80,針對 https 使用 443)
url.scheme string 識別已使用通訊協定的 URI 配置元件。 http; https; ftp 永遠

設定為使用預設 SocketsHttpHandler 時,HttpClient 會使用網路連線集區傳送 HTTP 要求。 如果所有連線都忙於處理其他要求,新要求會放在佇列中,直到網路連線可供使用。 這項檢測會測量在透過網路傳送任何項目之前,HTTP 要求在佇列中等候的時間。

從此版本開始提供:.NET 8

計量:http.client.active_requests
名稱 金融工具類型 單位 (UCUM) 描述
http.client.active_requests UpDownCounter {request} 作用中 HTTP 要求的數目。
屬性 類型 描述 範例 目前狀態
http.request.method string HTTP 要求方法。 GET; POST; HEAD 永遠
server.address string 「URI 來源」HTTP 要求的主機識別碼會傳送至此。 example.com 永遠
server.port int 「URI 來源」HTTP 要求的連接埠識別碼會傳送至此。 80; 8080; 443 如果不是預設值 (針對 http 配置使用 80,針對 https 使用 443)
url.scheme string 識別已使用通訊協定的 URI 配置元件。 http; https; ftp 永遠

此計量會計算有多少要求被視為作用中。 在 http.client.request.duration 檢測所測量的相同時間週期內,要求為作用中。

從此版本開始提供:.NET 8