Introducción al Trazado de APM

Resumen

El Monitoreo de Rendimiento de Aplicaciones (APM) de Datadog proporciona una profunda visibilidad en tus aplicaciones, permitiéndote identificar cuellos de botella en el rendimiento, solucionar problemas y optimizar tus servicios.

Esta guía demuestra cómo comenzar con APM y enviar tu primera traza a Datadog:

  1. Configura Datadog APM para enviar trazas a Datadog.
  2. Ejecuta tu aplicación para generar datos.
  3. Explora los datos recopilados en Datadog.

Requisitos previos

Para completar esta guía, necesitas lo siguiente:

  1. Crea una cuenta de Datadog si aún no lo has hecho.
  2. Encuentra o crea una clave de API de Datadog.
  3. Inicia un host o VM de Linux.

Crea una aplicación

Para crear una aplicación para observar en Datadog:

  1. En tu host o VM de Linux, crea una nueva aplicación de Python llamada hello.py. Por ejemplo, nano hello.py.

  2. Agrega el siguiente código a hello.py:

    hello.py

      from flask import Flask
      import random
    
      app = Flask(__name__)
      
      quotes = [
          "Strive not to be a success, but rather to be of value. - Albert Einstein",
          "Believe you can and you're halfway there. - Theodore Roosevelt",
          "The future belongs to those who believe in the beauty of their dreams. - Eleanor Roosevelt"
      ]
      
      @app.route('/')
      def index():
          quote = random.choice(quotes)+"\n"
          return quote
      
      if __name__ == '__main__':
          app.run(host='0.0.0.0', port=5050)
      

Configura Datadog APM

Para configurar Datadog APM sin necesidad de modificar el código de tu aplicación o el proceso de implementación, utiliza la instrumentación APM de un solo paso, o alternativamente, puedes configurar APM utilizando las bibliotecas de trazado de Datadog.

  1. Ejecuta el comando de instalación:

     DD_API_KEY=<YOUR_DD_API_KEY> DD_SITE="<YOUR_DD_SITE>" DD_APM_INSTRUMENTATION_ENABLED=host DD_APM_INSTRUMENTATION_LIBRARIES=python:4 DD_ENV=<AGENT_ENV> bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_agent7.sh)"
    

    Replace <YOUR_DD_API_KEY> with your Datadog API key, <YOUR_DD_SITE> with your Datadog site, and <AGENT_ENV> with the environment your Agent is installed on (for example, development).

  2. Reinicia los servicios en tu host o VM.

  3. Verifica que el agente esté en ejecución:

    sudo datadog-agent status
    

Este enfoque instala automáticamente el Agente de Datadog, habilita Datadog APM y instrumenta tu aplicación en tiempo de ejecución.

Ejecuta la aplicación

Cuando configuras Datadog APM con Instrumentación de Un Solo Paso, Datadog instrumenta automáticamente tu aplicación en tiempo de ejecución.

Para ejecutar hello.py:

  1. Crea un entorno virtual de Python en el directorio actual:

    python3 -m venv ./venv
    
  2. Activa el venv entorno virtual:

    source ./venv/bin/activate
    
  3. Instala pip y flask:

    sudo apt-get install python3-pip
    pip install flask
    
  4. Establece el nombre del servicio y ejecuta hello.py:

    export DD_SERVICE=hello
    python3 hello.py
    

Prueba la aplicación

Prueba la aplicación para enviar trazas a Datadog:

  1. En un nuevo símbolo del sistema, ejecuta lo siguiente:

    curl http://0.0.0.0:5050/
    
  2. Confirma que se devuelve una cita aleatoria.

    Believe you can and you're halfway there. - Theodore Roosevelt
    

Cada vez que ejecutes el comando curl, se envía una nueva traza a Datadog.

Explora trazas en Datadog

  1. En Datadog, ve a APM > Servicios. Deberías ver un servicio de Python llamado hello:

    El Catálogo de Software muestra el nuevo servicio de Python.
  2. Selecciona el servicio para ver sus métricas de rendimiento, como latencia, rendimiento y tasas de error.

  3. Ve a APM > Trazas. Deberías ver una traza para el servicio hello:

    El explorador de trazas muestra la traza para el servicio hello.
  4. Selecciona una traza para ver sus detalles, incluyendo el gráfico de llamas, que ayuda a identificar cuellos de botella en el rendimiento.

Configuración avanzada de APM

Hasta este punto, permitiste que Datadog instrumentara automáticamente la hello.py aplicación utilizando Instrumentación de Paso Único. Este enfoque se recomienda si deseas capturar trazas esenciales a través de bibliotecas y lenguajes comunes sin modificar el código o instalar bibliotecas manualmente.

Sin embargo, si necesitas recopilar trazas de código personalizado o requieres un control más detallado, puedes agregar instrumentación personalizada.

Para ilustrar esto, importarás el SDK de Python de Datadog en hello.py y crearás un tramo personalizado y una etiqueta de tramo.

Para agregar instrumentación personalizada:

  1. Instala el SDK de Datadog:

    pip install ddtrace
    
  2. Agrega las líneas resaltadas al código en hello.py para crear una etiqueta de tramo personalizada get_quote y una etiqueta de tramo personalizada quote:

     from flask import Flask
     import random
     from ddtrace import tracer
    
     app = Flask(__name__)
    
     quotes = [
         "Strive not to be a success, but rather to be of value. - Albert Einstein",
         "Believe you can and you're halfway there. - Theodore Roosevelt",
         "The future belongs to those who believe in the beauty of their dreams. - Eleanor Roosevelt"
     ]
    
     @app.route('/')
     def index():
         with tracer.trace("get_quote") as span:
             quote = random.choice(quotes)+"\n"
             span.set_tag("quote", quote)
             return quote
    
     if __name__ == '__main__':
         app.run(host='0.0.0.0', port=5050)
  3. Ejecuta hello.py en el entorno virtual de antes:

    ddtrace-run python hello.py
    
  4. Ejecuta algunos comandos de curl en un símbolo del sistema separado:

    curl http://0.0.0.0:5050/
    
  5. En Datadog, ve a APM > Trazas.

  6. Selecciona la traza hello.

  7. Encuentra el nuevo tramo get_quote personalizado en el gráfico de llamas y pasa el cursor sobre él:

    El tramo personalizado get_quote se muestra en el gráfico de llamas. Al pasar el cursor, se muestra la etiqueta de tramo de la cita.
  8. Observa que la etiqueta de tramo personalizada quote se muestra en la pestaña Info.

¿Qué sigue?

Después de configurar el seguimiento y tu aplicación esté enviando datos a Datadog, explora características adicionales de APM:

Catálogo de Software

Software Catalog proporciona una vista consolidada de sus servicios, combinando metadatos de propiedad, información de rendimiento, análisis de seguridad y asignación de costos en un solo lugar. Configure los metadatos del servicio service metadata utilizando etiquetas, anotaciones o un archivo service.datadog.yaml para enriquecer su servicio con información de propiedad, runbooks y enlaces de documentación.

Rastreo de ingestión y retención

Controle los costos y gestione el volumen de datos configurando controles de ingestión y filtros de retención. Los controles de ingestión le permiten personalizar las tasas de muestreo a nivel del Datadog Agent o SDK, mientras que los filtros de retención determinan qué tramos se indexan para búsqueda y análisis.

Lectura adicional