HttpClient 計量無條件報告server.port
在 .NET 8 中新增 HttpClient 計量時,server.port
會根據當時的標準狀態來引進為Conditionally Required
屬性。 有條件地需要表示只有在埠不符合對應通訊協定的預設埠時才會報告埠(HTTP 為 80,HTTPS 為 443)。 不過,屬性的標準需求層級已變更為 Required
。
為了維持與 Open Telemetry 標準的合規性,同時讓檢測的行為彼此保持一致,儀器 http.client.request.duration
、 http.client.connection.duration
和 http.client.open_connections
已變更為無條件地報告 server.port
屬性。
這項變更可能會中斷監視軟體中的現有查詢,例如 Prometheus。
導入的版本
.NET 9 預覽 7
先前的行為
http.client.request.duration
、 http.client.connection.duration
和 http.client.open_connections
只有在屬性不符合對應通訊協議的預設埠時,才會報告 server.port
屬性(HTTPS 為 80,HTTPS 為 443)。
新的行為
屬性 server.port
現在會無條件地由工具 http.client.request.duration
、 http.client.connection.duration
和 http.client.open_connections
報告。
中斷性變更的類型
此變更為行為變更。
變更原因
此變更會維持與開放式遙測規格的合規性,同時讓HttpClient
儀器彼此保持一致。
建議的動作
如果您不依賴 HttpClient 計量,則不需要採取任何動作。 如果您使用 http.client.request.duration
、 http.client.connection.duration
或 http.client.open_connections
工具,這項變更可能會中斷監視軟體中的現有查詢,例如 Prometheus。
受影響的 API
System.Net.Http.SocketsHttpHandler.Send(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
System.Net.Http.SocketsHttpHandler.SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)
- System.Net.Http.HttpClientHandler.Send(HttpRequestMessage, CancellationToken)
- System.Net.Http.HttpClientHandler.SendAsync(HttpRequestMessage, CancellationToken)