El generador de perfiles se incluye en las bibliotecas de rastreo de Datadog. Si ya estás utilizando APM para recopilar trazas (traces) para tu aplicación, puedes omitir la instalación de biblioteca e ir directamente a habilitar el generador de perfiles.

Requisitos

Para obtener un resumen de las versiones mínimas y recomendadas del tiempo de ejecución y del rastreador en todos los lenguajes, consulta Versiones de lenguaje y rastreadores compatibles.

Datadog Profiler requiere Ruby 2.5+. JRuby y TruffleRuby no son compatibles.

Se admiten los siguientes sistemas operativos y arquitecturas:

  • Linux (GNU libc) x86-64, aarch64
  • Alpine Linux (musl libc) x86-64, aarch64

También necesitas tener instalada la utilidad de sistema pkg-config o pkgconf. Esta utilidad está disponible en los repositorios de software de la mayoría de las distribuciones de Linux. Por ejemplo:

  • El paquete pkg-config está disponible para Homebrew, y Debian- y Linux basado en Ubuntu
  • El paquete pkgconf está disponible para Linux basado en Arch y Linux basado en Alpine.
  • El paquete pkgconf-pkg-config está disponible para Linux basados en Fedora- y Red-Hat-.

Continuous Profiler no es compatible con las plataformas serverless, como AWS Lambda.

La instrumentación de un solo paso no es compatible con hosts de Linux, máquinas virtuales, o Docker. La instrumentación de un solo paso es compatible con Kubernetes (usando el Datadog Helm chart), pero necesitas configurar manualmente la variable de entorno DD_PROFILING_ENABLED=true para habilitar la generación de perfiles.

Instalación

Para empezar a crear perfiles de aplicaciones:

  1. Asegúrate de que Datadog Agent v6+ está instalado y en funcionamiento. Datadog recomienda utilizar Datadog Agent v7+.

  2. Añada el gem datadog a tu archivo Gemfile o gems.rb:

    gem 'datadog', '~> 2.0'
    
  3. Instala los gems con bundle install.

  4. Activa el generador de perfiles:

    export DD_PROFILING_ENABLED=true
    export DD_ENV=prod
    export DD_SERVICE=my-web-app
    export DD_VERSION=1.0.3
    
    Datadog.configure do |c|
      c.profiling.enabled = true
      c.env = 'prod'
      c.service = 'my-web-app'
      c.version = '1.0.3'
    end
    

    Nota: Para aplicaciones Rails, crea un archivo config/initializers/datadog.rb con la configuración de código anterior.

  5. Añade el comando ddprofrb exec al comando de inicio de tu aplicación Ruby:

    bundle exec ddprofrb exec ruby myapp.rb
    

    Ejemplo de Rails:

    bundle exec ddprofrb exec bin/rails s
    

    Si utilizas una versión de ddtrace anterior a la 1.21.0, sustituye ddprofrb exec por ddtracerb exec.

    Nota

    Si iniciar la aplicación con ddprofrb exec no es una opción (por ejemplo, cuando se utiliza el servidor web Phusion Passenger), puedes iniciar alternativamente el generador de perfiles añadiendo lo siguiente al punto de entrada de tu aplicación (como config.ru, para una aplicación web):

    require 'datadog/profiling/preload'
    
  6. Opcional: configura la integración de código fuente para conectar tus datos de perfiles con tus repositorios Git.

  7. Uno o dos minutos después de iniciar tu aplicación de Ruby, tus perfiles aparecerán en la página Datadog APM > Generador de perfiles.

¿No sabes qué hacer a continuación?

La guía Empezando con el generador de perfiles toma un ejemplo de servicio con un problema de rendimiento y te muestra cómo utilizar Continuous Profiler para comprender y solucionar el problema.

Referencias adicionales