HttpClient 指标无条件报告
在 .NET 8 中添加 HttpClient 指标时,server.port会根据当时的标准状态作为属性引入Conditionally Required。 有条件地要求意味着仅当端口与相应协议的默认端口不匹配(对于 HTTP,443 表示 HTTPS)时才报告该端口。 但是,属性的标准要求级别已更改为 Required。
为了保持与开放遥测标准的符合性,同时保持检测器的行为彼此一致,仪器http.client.request.durationhttp.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 仅当属性与相应的协议的默认端口(HTTP 为 80,对于 HTTPS 为 443)时,才报告 server.port 该属性。
新行为
该 server.port 属性现在由仪器 http.client.request.duration无条件报告, http.client.connection.duration并且 http.client.open_connections。
中断性变更的类型
此更改为行为更改。
更改原因
此更改保持与 开放遥测规范 的符合性,同时保持 HttpClient 仪器彼此一致。
建议的操作
如果不依赖于 HttpClient 指标,则无需执行任何操作。 如果使用或http.client.request.durationhttp.client.connection.durationhttp.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)