Compartir a través de


Métricas de System.Net

En este artículo se describen las métricas de red integradas para System.Net generadas mediante la API de System.Diagnostics.Metrics. Para obtener una lista de métricas basadas en la API de EventCounters alternativa, consulte EventCounters conocidos en .NET.

Sugerencia

Para obtener más información sobre cómo recopilar, notificar, enriquecer y probar métricas de System.Net, consulte Métricas de redes en .NET.

System.Net.NameResolution

La resolución de nombres DNS del informe de métricas System.Net.NameResolution de Dns:

Métrica: dns.lookup.duration
Nombre Tipo de instrumento Unidad Descripción
dns.lookup.duration Histograma s Mide el tiempo necesario para realizar una búsqueda de DNS.
Atributo Tipo Descripción Ejemplos Presencia
dns.question.name cadena Nombre que se está consultando. www.example.com; dot.net Siempre
error.type cadena Cadena de error conocida o nombre de tipo completo de una excepción que se produjo. host_not_found; System.Net.Sockets.SocketException Si se produjo un error

Esta métrica mide el tiempo necesario para realizar solicitudes DNS. Estas solicitudes pueden ocurrir llamando a métodos en Dns o indirectamente dentro de API de nivel superior en tipos como HttpClient.

La mayoría de los errores al realizar una búsqueda DNS producen una SocketException. Para desambiguar mejor los casos de error comunes, las excepciones de socket con SocketErrorCode específicos reciben nombres de error explícitos en error.type:

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

Las excepciones de socket con cualquier otro valor de SocketError se notifican como System.Net.Sockets.SocketException.

Cuando se usa OpenTelemetry, los cubos predeterminados para esta métrica se establecen en [ 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 ].

Disponible a partir de: .NET 8

System.Net.Http

La información de conexión y solicitud HTTP del informe de métricas System.Net.Http de System.Net.Http:

Métrica: http.client.open_connections
Nombre Tipo de instrumento Unidad (UCUM) Descripción
http.client.open_connections UpDownCounter {connection} Número de conexiones HTTP salientes que están activas o inactivas actualmente en el cliente
Atributo Tipo Descripción Ejemplos Presencia
http.connection.state cadena Estado de la conexión HTTP en el grupo de conexiones HTTP. active; idle Siempre
network.protocol.version cadena Versión del protocolo de capa de aplicación usado. 1.1; 2 Siempre
server.address cadena Identificador de host al que se envía la solicitud HTTP de "Origen URI". example.com Siempre
server.port int Identificador de puerto al que se envía la solicitud HTTP de "Origen URI". 80; 8080; 443 Si no es predeterminado (80 para el esquema de http, 443 para https)
network.peer.address cadena Dirección IP del mismo nivel de la conexión de socket. 10.5.3.2 Siempre
url.scheme cadena Componente de esquema de URI que identifica el protocolo usado. http; https; ftp Siempre

HttpClient, cuando está configurado para usar el SocketsHttpHandlerpredeterminado, mantiene un grupo almacenado en caché de conexiones de red para enviar mensajes HTTP. Esta métrica cuenta cuántas conexiones están actualmente en el grupo. Las conexiones activas controlan las solicitudes activas. Las conexiones activas podrían transmitir datos o esperar al cliente o servidor. Las conexiones inactivas no controlan ninguna solicitud, pero se dejan abiertas para que las solicitudes futuras se puedan controlar más rápidamente.

Disponible a partir de: .NET 8

Métrica: http.client.connection.duration
Nombre Tipo de instrumento Unidad (UCUM) Descripción
http.client.connection.duration Histograma s La duración de las conexiones HTTP salientes establecidas correctamente.
Atributo Tipo Descripción Ejemplos Presencia
network.protocol.version cadena Versión del protocolo de capa de aplicación usado. 1.1; 2 Siempre
server.address cadena Identificador de host al que se envía la solicitud HTTP de "Origen URI". example.com Siempre
server.port int Identificador de puerto al que se envía la solicitud HTTP de "Origen URI". 80; 8080; 443 Si no es predeterminado (80 para el esquema de http, 443 para https)
network.peer.address cadena Dirección IP de la conexión de socket. 10.5.3.2 Siempre
url.scheme cadena Componente de esquema de URI que identifica el protocolo usado. http; https; ftp Siempre

Esta métrica solo se captura cuando HttpClient está configurada para usar el valor predeterminado SocketsHttpHandler.

Dado que esta métrica realiza un seguimiento de la duración de la conexión e, idealmente, las conexiones HTTP se usan para varias solicitudes, los cubos deben ser más largos que los usados durante las solicitudes. Por ejemplo, el uso de [ 0,01, 0,02, 0,05, 0,1, 0,2, 0,5, 1, 2, 5, 10, 30, 60, 120, 300 ] proporciona un cubo superior de 5 minutos.

Disponible a partir de: .NET 8

Métrica: http.client.request.duration
Nombre Tipo de instrumento Unidad (UCUM) Descripción
http.client.request.duration Histograma s La duración de las solicitudes HTTP salientes.
Atributo Tipo Descripción Ejemplos Presencia
error.type string Motivo del error de solicitud: uno de los errores de solicitud HTTP, o un tipo de excepción completo, o un código de estado HTTP 4xx/5xx. System.Threading.Tasks.TaskCanceledException; name_resolution_error; secure_connection_error ; 404 Si se ha producido un error en la solicitud.
http.request.method cadena Método de solicitud HTTP. GET; POST; HEAD Siempre
http.response.status_code int Código de estado de respuesta HTTP. 200 Si se recibió uno.
network.protocol.version cadena Versión del protocolo de capa de aplicación usado. 1.1; 2 Si se recibió la respuesta.
server.address string Identificador de host al que se envía la solicitud HTTP de "Origen URI". example.com Siempre
server.port int Identificador de puerto al que se envía la solicitud HTTP de "Origen URI". 80; 8080; 443 Si no es predeterminado (80 para el esquema de http, 443 para https)
url.scheme cadena Componente de esquema de URI que identifica el protocolo usado. http; https; ftp Siempre

La duración de la solicitud del cliente HTTP mide el tiempo que tarda el controlador de cliente subyacente en completar la solicitud. Completar la solicitud incluye el tiempo de lectura de los encabezados de respuesta de la secuencia de red. No incluye el tiempo dedicado a leer el cuerpo de la respuesta.

Cuando se usa OpenTelemetry, los cubos predeterminados para esta métrica se establecen en [ 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 ].

Disponible a partir de: .NET 8

Sugerencia

El enriquecimiento es posible para esta métrica.

Métrica: http.client.request.time_in_queue
Nombre Tipo de instrumento Unidad (UCUM) Descripción
http.client.request.time_in_queue Histograma s La cantidad de tiempo que las solicitudes pasan en una cola esperando una conexión disponible.
Atributo Tipo Descripción Ejemplos Presencia
http.request.method cadena Método de solicitud HTTP. GET; POST; HEAD Siempre
network.protocol.version cadena Versión del protocolo de capa de aplicación usado. 1.1; 2 Siempre
server.address cadena Identificador de host al que se envía la solicitud HTTP de "Origen URI". example.com Siempre
server.port int Identificador de puerto al que se envía la solicitud HTTP de "Origen URI". 80; 8080; 443 Si no es predeterminado (80 para el esquema de http, 443 para https)
url.scheme cadena Componente de esquema de URI que identifica el protocolo usado. http; https; ftp Siempre

HttpClient, cuando se configura para usar el SocketsHttpHandlerpredeterminado, envía solicitudes HTTP mediante un grupo de conexiones de red. Si todas las conexiones están ocupadas manejando otras solicitudes, las nuevas solicitudes se colocan en una cola y esperan hasta que una conexión de red esté disponible para su uso. Este instrumento mide la cantidad de tiempo que las solicitudes HTTP pasan esperando en esa cola, antes de que se envíe algo a través de la red.

Disponible a partir de: .NET 8

Métrica: http.client.active_requests
Nombre Tipo de instrumento Unidad (UCUM) Descripción
http.client.active_requests UpDownCounter {request} Número de solicitudes HTTP activas.
Atributo Tipo Descripción Ejemplos Presencia
http.request.method cadena Método de solicitud HTTP. GET; POST; HEAD Siempre
server.address cadena Identificador de host al que se envía la solicitud HTTP de "Origen URI". example.com Siempre
server.port int Identificador de puerto al que se envía la solicitud HTTP de "Origen URI". 80; 8080; 443 Si no es predeterminado (80 para el esquema de http, 443 para https)
url.scheme cadena Componente de esquema de URI que identifica el protocolo usado. http; https; ftp Siempre

Esta métrica cuenta cuántas solicitudes se consideran activas. Las solicitudes están activas durante el mismo período de tiempo medido por el instrumento http.client.request.duration.

Disponible a partir de: .NET 8