Compartir vía


Informe server.port de métricas httpClient incondicionalmente

Cuando se agregaron métricas httpClient en .NET 8, server.port se introdujo como un Conditionally Required atributo de acuerdo con el estado del estándar en ese momento. Ser obligatorio condicionalmente significaba que el puerto solo se notificó si no coincide con el puerto predeterminado del protocolo correspondiente (80 para HTTP, 443 para HTTPS). Sin embargo, el nivel de requisito estándar del atributo ha cambiado desde entonces a Required.

Para mantener el cumplimiento del estándar Open Telemetry al tiempo que mantiene los comportamientos del instrumento coherentes entre sí, los instrumentos http.client.request.duration, http.client.connection.durationy http.client.open_connections se han cambiado para notificar incondicionalmente el server.port atributo.

Este cambio puede interrumpir las consultas existentes en el software de supervisión, como Prometheus.

Versión introducida

.NET 9 Versión preliminar 7

Comportamiento anterior

http.client.request.duration, http.client.connection.durationy http.client.open_connections notificó el server.port atributo solo si no coincide con el puerto predeterminado del protocolo correspondiente (80 para HTTP, 443 para HTTPS).

Comportamiento nuevo

El server.port atributo ahora se notifica incondicionalmente por los instrumentos http.client.request.duration, http.client.connection.durationy http.client.open_connections.

Tipo de cambio importante

Este es un cambio de funcionamiento.

Motivo del cambio

El cambio mantiene el cumplimiento de la especificación Open Telemetry al tiempo que mantiene HttpClient los instrumentos coherentes entre sí.

No se necesita ninguna acción si no se basa en las métricas HttpClient. Si usa los http.client.request.durationinstrumentos , http.client.connection.durationo http.client.open_connections , este cambio podría interrumpir las consultas existentes en el software de supervisión como Prometheus.

API afectadas