Métricas de tiempo de ejecución de .NET
Compatibilidad de las métricas de tiempo de ejecución
- .NET Framework 4.6.1 o posterior
- .NET Core 3.1
- .NET 5
- .NET 6
- .NET 7
- .NET 8
Configuración automática
Habilita la recopilación de métricas de tiempo de ejecución en .NET Tracer 1.23.0+ con la variable de entorno DD_RUNTIME_METRICS_ENABLED=true
.
Ve las métricas de tiempo de ejecución en correlación con tus servicios de .NET. Consulta el Catálogo de servicios en Datadog.
Por defecto, las métricas de tiempo de ejecución de tu aplicación se envían al Datadog Agent con DogStatsD por el puerto 8125
. Asegúrate de que DogStatsD está habilitado para el Agent.
Si estás ejecutando el Agent como un contenedor, asegúrate de que DD_DOGSTATSD_NON_LOCAL_TRAFFIC
se establece en true y que el puerto 8125
está abierto en el Agent. Además, para:
Alternativamente, el Agent puede ingerir métricas con un Unix Domain Socket (UDS) como alternativa al transporte UDP. Para más información, lee DogStatsD en Unix Domain Socket.
Datos recopilados
Las siguientes métricas se recopilan por defecto después de activar las metricas de .NET.
runtime.dotnet.cpu.system (gauge) | The number of milliseconds executing in the kernel Shown as millisecond |
runtime.dotnet.cpu.user (gauge) | The number of milliseconds executing outside the kernel Shown as millisecond |
runtime.dotnet.cpu.percent (gauge) | The percentage of total CPU used by the application Shown as percent |
runtime.dotnet.mem.committed (gauge) | Memory usage Shown as byte |
runtime.dotnet.threads.count (gauge) | The number of threads Shown as thread |
runtime.dotnet.threads.workers_count (gauge) | The number of workers in the threadpool (.NET Core 3.1+ only) Shown as thread |
runtime.dotnet.threads.contention_time (gauge) | The cumulated time spent by threads waiting on a lock (.NET Core 3.1+ only) Shown as millisecond |
runtime.dotnet.threads.contention_count (count) | The number of times a thread stopped to wait on a lock |
runtime.dotnet.exceptions.count (count) | The number of first-chance exceptions Shown as exception |
runtime.dotnet.gc.size.gen0 (gauge) | The size of the gen 0 heap Shown as byte |
runtime.dotnet.gc.size.gen1 (gauge) | The size of the gen 1 heap Shown as byte |
runtime.dotnet.gc.size.gen2 (gauge) | The size of the gen 2 heap Shown as byte |
runtime.dotnet.gc.size.loh (gauge) | The size of the large object heap Shown as byte |
runtime.dotnet.gc.memory_load (gauge) | The percentage of the total memory used by the process. The GC changes its behavior when this value gets above 85. (.NET Core 3.1+ only) Shown as percent |
runtime.dotnet.gc.pause_time (gauge) | The amount of time the GC paused the application threads (.NET Core 3.1+ only) Shown as millisecond |
runtime.dotnet.gc.count.gen0 (count) | The number of gen 0 garbage collections Shown as garbage collection |
runtime.dotnet.gc.count.gen1 (count) | The number of gen 1 garbage collections Shown as garbage collection |
runtime.dotnet.gc.count.gen2 (count) | The number of gen 2 garbage collections Shown as garbage collection |
runtime.dotnet.aspnetcore.requests.total (gauge) | The total number of HTTP requests received by the server (.NET Core 3.1+ only) Shown as request |
runtime.dotnet.aspnetcore.requests.failed (gauge) | The number of failed HTTP requests received by the server (.NET Core 3.1+ only) Shown as request |
runtime.dotnet.aspnetcore.requests.current (gauge) | The total number of HTTP requests that have started but not yet stopped (.NET Core 3.1+ only) Shown as request |
runtime.dotnet.aspnetcore.requests.queue_length (gauge) | The current length of the server HTTP request queue (.NET 5+ only) Shown as request |
runtime.dotnet.aspnetcore.connections.total (gauge) | The total number of HTTP connections established to the server (.NET 5+ only) Shown as connection |
runtime.dotnet.aspnetcore.connections.current (gauge) | The current number of active HTTP connections to the server (.NET 5+ only) Shown as connection |
runtime.dotnet.aspnetcore.connections.queue_length (gauge) | The current length of the HTTP server connection queue (.NET 5+ only) Shown as connection |
Además de mostrar estas métricas en tu Página de servicios de APM, Datadog proporciona un dashboard de tiempo de ejecución de .NET predeterminado.
Permisos adicionales para IIS
En .NET Framework, las métricas se recopilan mediante contadores de rendimiento. Los usuarios en sesiones de inicio de sesión no interactivas (que incluyen cuentas de grupos de aplicaciones IIS y algunas cuentas de servicio) deben añadirse al grupo Usuarios de monitorización de rendimiento para acceder a los datos del contador.
Los grupos de aplicaciones IIS utilizan cuentas especiales que no aparecen en lista de usuarios. Para añadirlas al grupo de usuarios de monitorización de rendimiento, busca IIS APPPOOL\<name of the pool>
. Por ejemplo, el usuario para el DefaultAppPool sería IIS APPPOOL\DefaultAppPool
.
Puedes hacer esto desde la interfaz de usuario “Gestión de ordenadores” o desde una acción de comando del administrador:
net localgroup "Performance Monitor Users" "IIS APPPOOL\DefaultAppPool" /add
Leer más
Más enlaces, artículos y documentación útiles: