Esta función está en fase beta pública.

Configuración automática

La recopilación de métricas de tiempo de ejecución utiliza el gem dogstatsd-ruby para enviar métricas a través de DogStatsD al Agent. Para recopilar métricas de tiempo de ejecución, debes añadir este gem a tu aplicación Ruby y asegurarte de que DogStatsD está habilitado para el Agent.

La recopilación de métricas está desactivada por defecto. Puedes activarla al establecer la variable de entorno DD_RUNTIME_METRICS_ENABLED en true, o con la siguiente configuración en tu aplicación Ruby:

# config/initializers/datadog.rb
require 'datadog/statsd'
require 'datadog' # Use 'ddtrace' if you're using v1.x

Datadog.configure do |c|
  # Para activar la recopilación de métricas de tiempo de ejecución, establece en `true`. Por defecto es `false`
  # También puedes establecer DD_RUNTIME_METRICS_ENABLED=true para configurarlo.
  c.runtime_metrics.enabled = true

  # Opcionalmente, puedes configurar la instancia de DogStatsD utilizada para enviar las métricas de tiempo de ejecución.
  # DogStatsD se configura automáticamente con la configuración automática si `dogstatsd-ruby` está disponible.
  # Puedes configurar con el host y puerto del Datadog agent; por defecto 'localhost:8125'.
  c.runtime_metrics.statsd = Datadog::Statsd.new
end

Las métricas de tiempo de ejecución se pueden ver en correlación con tus servicios de Ruby. 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 en 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 está configurado como true y que el puerto 8125 está abierto en el Agent. En Kubernetes, vincula el puerto de DogStatsD a un puerto host; en ECS, establece los indicadores apropiados en tu definición de tarea.

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 métricas de tiempo de ejecución.

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
runtime.ruby.global_constant_state
(gauge)
Global constant cache generation
Shown as generation
runtime.ruby.global_method_state
(gauge)
Global method cache generation
Shown as generation
runtime.ruby.constant_cache_invalidations
(gauge)
Constant cache invalidations
Shown as resource
runtime.ruby.constant_cache_misses
(gauge)
Constant cache misses
Shown as resource

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 Ruby predeterminado.

Leer más