Métriques runtime compatibles

  • .NET Framework 4.6.1+
  • .NET Core 3.1
  • .NET 5
  • .NET 6
  • .NET 7

Configuration automatique

Activez la collecte de métriques runtime dans le traceur .NET 1.23.0+ avec la variable d’environnement DD_RUNTIME_METRICS_ENABLED=true.

Visualisez vos métriques runtime en corrélation avec vos services .NET. Consultez la page Service dans Datadog.

Par défaut, les métriques runtime de votre application sont envoyées à l’Agent Datadog via DogStatsD sur le port 8125. Vérifiez que DogStatsD est activé pour l’Agent.

Si vous exécutez l’Agent en tant que conteneur, vérifiez que DD_DOGSTATSD_NON_LOCAL_TRAFFIC est définie sur true et que le port 8125 est ouvert sur l’Agent. En outre, pour :

Données collectées

Les métriques suivantes sont recueillies par défaut après l’activation des métriques .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

Datadog fournit non seulement ces métriques sur votre page Service de l’APM, mais également un dashboard de runtime .NET par défaut.

Autorisations supplémentaires pour IIS

Sur .NET Framework, les métriques peuvent être recueillies à l’aide de compteurs de performances. Les utilisateurs avec une session ouverte non interactive (notamment ceux avec des comptes de pool d’applications IIS et certains comptes de service) doivent être ajoutés au groupe Performance Monitoring Users pour accéder aux données des compteurs.

Les pools d’applications IIS utilisent des comptes spéciaux qui n’apparaissent pas dans la liste des utilisateurs. Pour les ajouter au groupe Performance Monitoring Users, recherchez IIS APPPOOL\<nom du pool>. Par exemple, l’utilisateur pour DefaultAppPool est IIS APPPOOL\DefaultAppPool.

Vous pouvez effectuer cette opération depuis l’interface Computer Management, ou depuis l’invite de commandes administrateur :

net localgroup "Performance Monitor Users" "IIS APPPOOL\DefaultAppPool" /add

Pour aller plus loin