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:
Configura Datadog APM para enviar trazas a Datadog.
Para crear una aplicación para observar en Datadog:
En tu host o VM de Linux, crea una nueva aplicación de Python llamada hello.py. Por ejemplo, nano hello.py.
Agrega el siguiente código a hello.py:
hello.py
fromflaskimportFlaskimportrandomapp=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('/')defindex():quote=random.choice(quotes)+"\n"returnquoteif__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.
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).
Reinicia los servicios en tu host o VM.
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:
Crea un entorno virtual de Python en el directorio actual:
Establece el nombre del servicio y ejecuta hello.py:
exportDD_SERVICE=hello
python3 hello.py
Prueba la aplicación
Prueba la aplicación para enviar trazas a Datadog:
En un nuevo símbolo del sistema, ejecuta lo siguiente:
curl http://0.0.0.0:5050/
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
En Datadog, ve a APM > Servicios. Deberías ver un servicio de Python llamado hello:
Selecciona el servicio para ver sus métricas de rendimiento, como latencia, rendimiento y tasas de error.
Ve a APM > Trazas. Deberías ver una traza para el servicio hello:
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:
Instala el SDK de Datadog:
pip install ddtrace
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:
fromflaskimportFlaskimportrandomfromddtraceimporttracerapp=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('/')defindex():withtracer.trace("get_quote")asspan:quote=random.choice(quotes)+"\n"span.set_tag("quote",quote)returnquoteif__name__=='__main__':app.run(host='0.0.0.0',port=5050)
Ejecuta hello.py en el entorno virtual de antes:
ddtrace-run python hello.py
Ejecuta algunos comandos de curl en un símbolo del sistema separado:
Encuentra el nuevo tramo get_quote personalizado en el gráfico de llamas y pasa el cursor sobre él:
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.