Métricas de tiempo de ejecución de Python
Configuración automática
La recopilación de métricas de tiempo de ejecución puede activarse con el parámetro de entorno DD_RUNTIME_METRICS_ENABLED=true
cuando se ejecuta con ddtrace-run
.
Si no utilizas ddtrace-run
, puedes activar la recopilación de métricas de tiempo de ejecución en el código:
from ddtrace.runtime import RuntimeMetrics
RuntimeMetrics.enable()
Las métricas de tiempo de ejecución se pueden ver en correlación con tus servicios de Python. Consulta el Catálogo de servicios en Datadog.
Nota: Para la interfaz de usuario de tiempo de ejecución, se admite ddtrace
>= 0.24.0
.
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.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 |
Además de mostrar estas métricas en tu Página de servicios de APM, Datadog proporciona un dashboard de métricas de tiempo de ejecución de Python predeterminado.
Referencias adicionales
Más enlaces, artículos y documentación útiles: