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:
http.client.open_connections
http.client.connection.duration
http.client.request.duration
http.client.request.time_in_queue
http.client.active_requests
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