Nouvelles annonces sur les technologies sans serveur et réseau ainsi que sur le RUM (Real-User Monitoring) dévoilées à la conférence Dash ! Nouvelles annonces dévoilées à la conférence Dash !

Métriques de runtime

Activez la collecte des métriques de runtime dans le client de tracing pour obtenir davantage de détails sur les performances d’une application. Les métriques de runtime peuvent être consultées au sein du contexte d’un service, corrélées dans la vue Trace lors de l’exécution d’une requête donnée et exploitées sur l’ensemble de la plateforme.

Configuration automatique

La collecte de métriques JVM est activée par défaut pour le traceur Java v0.29.0+. Elle peut être désactivée en définissant un paramètre de configuration dans le client de tracing, soit via la propriété système -Ddd.jmxfetch.enabled=false, soit via la variable d’environnement DD_JMXFETCH_ENABLED=false.

Les métriques JVM peuvent être visualisées conjointement à vos services Java. Consultez la page Service dans Datadog.

Remarque : pour l’IU de runtime, dd-trace-java >= 0.24.0 est pris en charge.

Par défaut, les métriques de runtime de votre application sont envoyées à l’Agent Datadog par le biais de DogStatsD sur le port 8125. Veillez à ce que DogStatsD soit activé pour l’Agent. Si vous exécutez l’Agent en tant que conteneur, assurez-vous que DD_DOGSTATSD_NON_LOCAL_TRAFFIC est défini sur true et que le port 8125 est ouvert sur l’Agent. Dans Kubernetes, associez le port DogstatsD à un port de host ; dans ECS, indiquez les flags pertinents dans la définition de votre tâche.

Cette fonction est actuellement en version bêta privée. Contactez l'assistance afin d'activer cette fonctionnalité pour votre compte.

Il est possible d’activer la collecte de métriques de runtime avec le paramètre d’environnement DD_RUNTIME_METRICS_ENABLED=true pour une exécution avec ddtrace-run :

Les métriques de runtime peuvent être visualisées conjointement à vos services Python. Consultez la page Service dans Datadog.

Remarque : pour l’IU de runtime, ddtrace >= 0.24.0 est pris en charge.

Par défaut, les métriques de runtime de votre application sont envoyées à l’Agent Datadog par le biais de DogStatsD sur le port 8125. Veillez à ce que DogStatsD soit activé pour l’Agent. Si vous exécutez l’Agent en tant que conteneur, assurez-vous que DD_DOGSTATSD_NON_LOCAL_TRAFFIC est défini sur true et que le port 8125 est ouvert sur l’Agent. Dans Kubernetes, associez le port DogstatsD à un port de host ; dans ECS, indiquez les flags pertinents dans la définition de votre tâche.

Cette fonction est actuellement en version bêta privée. Contactez l'assistance afin d'activer cette fonctionnalité pour votre compte.

La collecte de métriques de runtime utilise le gem dogstatsd-ruby pour envoyer des métriques à l’Agent via DogStatsD. Pour recueillir des métriques de runtime, vous devez ajouter ce gem à votre application Ruby et vous assurer que DogStatsD est activé pour l’Agent.

La collecte de métriques est désactivée par défaut. Vous pouvez l’activer en définissant la variable d’environnement DD_RUNTIME_METRICS_ENABLED sur true ou en définissant la configuration suivante dans votre application Ruby :

# config/initializers/datadog.rb
require 'datadog/statsd'
require 'ddtrace'

Datadog.configure do |c|
  # Pour activer la collecte de métriques, définir sur `true`. Valeur par défaut : `false`
  # Vous pouvez aussi définir DD_RUNTIME_METRICS_ENABLED=true pour configurer ce paramètre.
  c.runtime_metrics_enabled = true

  # Facultatif : vous pouvez configurer l'instance DogStatsD utilisée pour envoyer les métriques de runtime.
  # DogStatsD est automatiquement configuré avec les paramètres par défaut si `dogstatsd-ruby` est disponible.
  # Vous pouvez utiliser le host et le port de l'Agent Datadog pour la configuration. Valeur par défaut : 'localhost:8125'.
  c.runtime_metrics statsd: Datadog::Statsd.new
end

Les métriques de runtime peuvent être visualisées conjointement à vos services Ruby. Consultez la page Service dans Datadog.

Par défaut, les métriques de runtime de votre application sont envoyées à l’Agent Datadog par le biais de DogStatsD sur le port 8125. Veillez à ce que DogStatsD soit activé pour l’Agent. Si vous exécutez l’Agent en tant que conteneur, assurez-vous que DD_DOGSTATSD_NON_LOCAL_TRAFFIC est défini sur true et que le port 8125 est ouvert sur l’Agent. Dans Kubernetes, associez le port DogstatsD à un port de host ; dans ECS, indiquez les flags pertinents dans la définition de votre tâche.

Prochainement disponible. Contactez l’assistance Datadog pour participer à la bêta.

Cette fonction est actuellement en version bêta privée. Contactez l'assistance afin d'activer cette fonctionnalité pour votre compte.

Il est possible d’activer la collecte de métriques de runtime en définissant un paramètre de configuration dans le client de tracing, soit via l’option de traceur tracer.init({ runtimeMetrics: true }), soit via la variable d’environnement DD_RUNTIME_METRICS_ENABLED=true

Les métriques de runtime peuvent être visualisées conjointement à vos services Node. Consultez la page Service dans Datadog.

Par défaut, les métriques de runtime de votre application sont envoyées à l’Agent Datadog par le biais de DogStatsD sur le port 8125. Veillez à ce que DogStatsD soit activé pour l’Agent. Si vous exécutez l’Agent en tant que conteneur, assurez-vous que DD_DOGSTATSD_NON_LOCAL_TRAFFIC est défini sur true et que le port 8125 est ouvert sur l’Agent. Dans Kubernetes, associez le port DogstatsD à un port de host ; dans ECS, indiquez les flags pertinents dans la définition de votre tâche.

Prochainement disponible. Contactez l’assistance Datadog pour participer à la bêta.

Prochainement disponible. Contactez l’assistance Datadog pour participer à la bêta.

Données collectées

Les métriques suivantes sont recueillies par défaut après l’activation des métriques JVM.

jvm.heap_memory
(gauge)
The total Java heap memory used.
Shown as byte
jvm.heap_memory_committed
(gauge)
The total Java heap memory committed to be used.
Shown as byte
jvm.heap_memory_init
(gauge)
The initial Java heap memory allocated.
Shown as byte
jvm.heap_memory_max
(gauge)
The maximum Java heap memory available.
Shown as byte
jvm.non_heap_memory
(gauge)
The total Java non-heap memory used.
Shown as byte
jvm.non_heap_memory_committed
(gauge)
The total Java non-heap memory committed to be used.
Shown as byte
jvm.non_heap_memory_init
(gauge)
The initial Java non-heap memory allocated.
Shown as byte
jvm.non_heap_memory_max
(gauge)
The maximum Java non-heap memory available.
Shown as byte
jvm.thread_count
(count)
The number of live threads.
Shown as thread
jvm.gc.cms.count
(count)
The total number of garbage collections that have occurred.
jvm.gc.major_collection_count
(count)
The number of major garbage collections that have occurred. Set `new_gc_metrics: true` to receive this metric.
jvm.gc.minor_collection_count
(count)
The number of minor garbage collections that have occurred. Set `new_gc_metrics: true` to receive this metric.
jvm.gc.parnew.time
(gauge)
The approximate accumulated garbage collection time elapsed.
Shown as millisecond
jvm.gc.major_collection_time
(gauge)
The approximate major garbage collection time elapsed. Set `new_gc_metrics: true` to receive this metric.
Shown as millisecond
jvm.gc.minor_collection_time
(gauge)
The approximate minor garbage collection time elapsed. Set `new_gc_metrics: true` to receive this metric.
Shown as millisecond

Datadog fournit non seulement ces métriques sur votre page Service de l’APM, mais également un dashboard de runtime JVM par défaut comportant les tags service et runtime-id appliqués à ces métriques.

En outre, vous pouvez ajouter des métriques JMX à l’aide de fichiers de configuration qui sont transmis à jmxfetch.metrics-configs. Il est également possible d’activer chaque intégration JMX de Datadog à l’aide du paramètre dd.integration.<nom>. Cela intègre automatiquement la configuration des fichiers de configuration JMX existants. Consultez l’intégration JMX pour en savoir plus sur la configuration.

runtime.python.cpu.time.sys
(gauge)
Number of seconds executing in the kernel
Shown as second
runtime.python.cpu.time.user
(gauge)
Number of seconds executing outside the kernel
Shown as second
runtime.python.cpu.percent
(gauge)
CPU utilization percentage
Shown as percent
runtime.python.cpu.ctx_switch.voluntary
(gauge)
Number of voluntary context switches
Shown as invocation
runtime.python.cpu.ctx_switch.involuntary
(gauge)
Number of involuntary context switches
Shown as invocation
runtime.python.gc.count.gen0
(gauge)
Number of generation 0 objects
Shown as resource
runtime.python.gc.count.gen1
(gauge)
Number of generation 1 objects
Shown as resource
runtime.python.gc.count.gen2
(gauge)
Number of generation 2 objects
Shown as resource
runtime.python.mem.rss
(gauge)
Resident set memory
Shown as byte
runtime.python.thread_count
(gauge)
Number of threads
Shown as thread

Datadog fournit non seulement ces métriques sur votre page Service de l’APM, mais également un dashboard de métriques de runtime Python par défaut comportant les tags service et runtime-id appliqués à ces métriques.

Les métriques suivantes sont recueillies par défaut après l’activation des métriques de runtime.

runtime.ruby.class_count
(gauge)
Total number of classes loaded
Shown as resource
runtime.ruby.gc.remembered_wb_unprotected_objects
(gauge)
Number of write-barrier unprotected objects in the remembered set
Shown as resource
runtime.ruby.gc.remembered_wb_unprotected_objects_limit
(gauge)
Limit on write-barrier unprotected objects allowed in the remembered set
Shown as resource
runtime.ruby.gc.oldmalloc_increase_bytes
(gauge)
Total bytes allocated to old objects
Shown as byte
runtime.ruby.gc.oldmalloc_increase_bytes_limit
(gauge)
Bytes limit that will trigger garbage collection of old objects
Shown as byte
runtime.ruby.gc.malloc_increase_bytes
(gauge)
Total bytes allocated to objects
Shown as byte
runtime.ruby.gc.malloc_increase_bytes_limit
(gauge)
Bytes limit that will trigger garbage collection of objects
Shown as byte
runtime.ruby.gc.total_allocated_objects
(gauge)
Total number of allocated objects over the lifetime of this process
Shown as resource
runtime.ruby.gc.total_freed_objects
(gauge)
Total number of freed objects over the lifetime of this process
Shown as resource
runtime.ruby.gc.total_allocated_pages
(gauge)
Total number of allocated pages over the lifetime of this process
Shown as page
runtime.ruby.gc.total_freed_pages
(gauge)
Total number of freed pages over the lifetime of this process
Shown as page
runtime.ruby.gc.heap_live_slots
(gauge)
Number of live objects slots
Shown as resource
runtime.ruby.gc.heap_final_slots
(gauge)
Number of object slots with finalizers attached to them
Shown as resource
runtime.ruby.gc.heap_marked_slots
(gauge)
Count of old objects which survived more than 3 GC cycles and number of write-barrier unprotected objects
Shown as resource
runtime.ruby.gc.heap_available_slots
(gauge)
Total number of slots in heap pages
Shown as resource
runtime.ruby.gc.heap_free_slots
(gauge)
Number of free slots in heap pages
Shown as resource
runtime.ruby.thread_count
(gauge)
Total number of threads
Shown as thread
runtime.ruby.gc.old_objects
(gauge)
Total number of old objects
Shown as resource
runtime.ruby.gc.old_objects_limit
(gauge)
Limit on number of old objects
Shown as resource

Datadog fournit non seulement ces métriques sur votre page Service de l’APM, mais également un dashboard de runtime Ruby par défaut comportant les tags service et runtime-id appliqués à ces métriques.

Prochainement disponible. Contactez l’assistance Datadog pour participer à la bêta.

Les métriques suivantes sont recueillies par défaut après l’activation des métriques de runtime.

runtime.node.cpu.user
(gauge)
CPU usage in user code
Shown as percent
runtime.node.cpu.system
(gauge)
CPU usage in system code
Shown as percent
runtime.node.cpu.total
(gauge)
Total CPU usage
Shown as percent
runtime.node.mem.rss
(gauge)
Resident set size
Shown as byte
runtime.node.mem.heap_total
(gauge)
Total heap memory
Shown as byte
runtime.node.mem.heap_used
(gauge)
Heap memory usage
Shown as byte
runtime.node.mem.external
(gauge)
External memory
Shown as byte
runtime.node.heap.total_heap_size
(gauge)
Total heap size
Shown as byte
runtime.node.heap.total_heap_size_executable
(gauge)
Total executable heap size
Shown as byte
runtime.node.heap.total_physical_size
(gauge)
Total physical heap size
Shown as byte
runtime.node.heap.used_heap_size
(gauge)
Used heap size
Shown as byte
runtime.node.heap.heap_size_limit
(gauge)
Heap size limit
Shown as byte
runtime.node.heap.malloced_memory
(gauge)
Malloced memory
Shown as byte
runtime.node.heap.peak_malloced_memory
(gauge)
Peak allocated memory
Shown as byte
runtime.node.heap.size.by.space
(gauge)
Heap space size
Shown as byte
runtime.node.heap.used_size.by.space
(gauge)
Heap space used size
Shown as byte
runtime.node.heap.available_size.by.space
(gauge)
Heap space available size
Shown as byte
runtime.node.heap.physical_size.by.space
(gauge)
Heap space physical size
Shown as byte
runtime.node.process.uptime
(gauge)
Process uptime
Shown as second
runtime.node.event_loop.delay.max
(gauge)
Maximum event loop delay
Shown as nanosecond
runtime.node.event_loop.delay.min
(gauge)
Minimum event loop delay
Shown as nanosecond
runtime.node.event_loop.delay.avg
(gauge)
Average event loop delay
Shown as nanosecond
runtime.node.event_loop.delay.sum
(rate)
Total event loop delay
Shown as nanosecond
runtime.node.event_loop.delay.median
(gauge)
Median event loop delay
Shown as nanosecond
runtime.node.event_loop.delay.95percentile
(gauge)
95th percentile event loop delay
Shown as nanosecond
runtime.node.event_loop.delay.count
(rate)
Event loop iterations count
Shown as execution
runtime.node.gc.pause.max
(gauge)
Maximum garbage collection pause
Shown as nanosecond
runtime.node.gc.pause.min
(gauge)
Minimum garbage collection pause
Shown as nanosecond
runtime.node.gc.pause.avg
(gauge)
Average garbage collection pause
Shown as nanosecond
runtime.node.gc.pause.sum
(rate)
Total garbage collection pause
Shown as nanosecond
runtime.node.gc.pause.median
(gauge)
Median garbage collection pause
Shown as nanosecond
runtime.node.gc.pause.95percentile
(gauge)
95th percentile garbage collection pause
Shown as nanosecond
runtime.node.gc.pause.count
(rate)
Number of garbage collections
Shown as garbage collection
runtime.node.gc.pause.by.type.max
(gauge)
Maximum garbage collection pause by type
Shown as nanosecond
runtime.node.gc.pause.by.type.min
(gauge)
Minimum garbage collection pause by type
Shown as nanosecond
runtime.node.gc.pause.by.type.avg
(gauge)
Average garbage collection pause by type
Shown as nanosecond
runtime.node.gc.pause.by.type.sum
(rate)
Total garbage collection pause by type
Shown as nanosecond
runtime.node.gc.pause.by.type.median
(gauge)
Median garbage collection pause by type
Shown as nanosecond
runtime.node.gc.pause.by.type.95percentile
(gauge)
95th percentile garbage collection pause by type
Shown as nanosecond
runtime.node.gc.pause.by.type.count
(rate)
Number of garbage collections by type
Shown as garbage collection
runtime.node.spans.finished
(gauge)
Number of finished spans held in memory
Shown as instance
runtime.node.spans.finished.by.name
(gauge)
Number of finished spans held in memory by span name
Shown as instance
runtime.node.spans.unfinished
(gauge)
Number of unfinished spans held in memory
Shown as instance
runtime.node.spans.unfinished.by.name
(gauge)
Number of unfinished spans held in memory by span name
Shown as instance
runtime.node.async.resources
(gauge)
Number of asynchronous resources held in memory
Shown as resource
runtime.node.async.resources.by.type
(gauge)
Number of asynchronous resources held in memory
Shown as resource

Datadog fournit non seulement ces métriques sur votre page Service de l’APM, mais également un dashboard de runtime Node par défaut comportant les tags service et runtime-id appliqués à ces métriques.

Prochainement disponible. Contactez l’assistance Datadog pour participer à la bêta.

Prochainement disponible. Contactez l’assistance Datadog pour participer à la bêta.

Pour aller plus loin