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

PREVIEWING: mervebolat/span-id-preprocessing