Azure App Service: código de Linux
Este método de instrumentación ofrece las siguientes capacidades de monitorización adicionales para las cargas de trabajo de Azure App Service en Linux:
- Rastreo totalmente distribuido de APM mediante la instrumentación automática.
- Vistas personalizadas de servicios y trazas (traces) de APM que incluyen las métricas y los metadatos pertinentes de Azure App Service.
- Compatibilidad con la instrumentación manual de APM para personalizar tramos (spans).
- Inyección del
Trace_ID
en los logs de aplicación. - Compatibilidad con el envío de métricas personalizadas mediante DogStatsD.
Esta solución utiliza el parámetro del comando de inicio y los parámetros de aplicación de Azure App Service de Linux para instrumentar la aplicación y gestionar la configuración. Se admiten Java, Node, .NET, PHP y Python.
Configuración
Configurar los parámetros de la aplicación
Para instrumentar tu aplicación, comienza por añadir los siguientes pares de clave-valor en los Application Settings (Parámetros de la aplicación) de tu configuración de Azure.
DD_API_KEY
es tu clave de la API de Datadog.DD_CUSTOM_METRICS_ENABLED
(opcional) habilita las métricas personalizadas.DD_SITE
es el parámetro del sitio de Datadog. Tu sitio es
. Por defecto, este valor es datadoghq.com
.DD_SERVICE
es el nombre del servicio utilizado para este programa. Por defecto, es el valor del campo de nombre en package.json
.DD_START_APP
es el comando utilizado para iniciar la aplicación. Por ejemplo, node ./bin/www
(no es necesario para aplicaciones que se ejecutan en Tomcat).DD_PROFILING_ENABLED
(opcional) habilita el Continuous Profiler, específico para .NET.
Identificación del comando de inicio
Las aplicaciones web de Azure App Service de Linux creadas mediante la opción de despliegue de código en tiempos de ejecución integrados dependen de un comando de inicio que varía según el lenguaje. Los valores predeterminados se describen en la documentación de Azure. A continuación se incluyen algunos ejemplos.
Configura estos valores en la variable de entorno DD_START_APP
. Los siguientes ejemplos corresponden a una aplicación llamada datadog-demo
.
Tiempo de ejecución | Valor de ejemplo de DD_START_APP | Descripción |
---|
Node.js | node ./bin/www | Ejecuta el archivo de configuración PM2 de Node o tu archivo de script. |
.NET Core | dotnet datadog-demo.dll | Ejecuta un archivo .dll que utiliza por defecto el nombre de tu aplicación web.
Nota: El nombre del archivo .dll del comando debe coincidir con el nombre de tu archivo .dll . En algunos casos, es posible que no coincida con tu aplicación web. |
PHP | cp /home/site/wwwroot/default /etc/nginx/sites-available/default && service nginx reload | Copia el script en la localización correcta e inicia la aplicación. |
Python | gunicorn --bind=0.0.0.0 --timeout 600 quickstartproject.wsgi | Personaliza el script de inicio. En este ejemplo, se muestra un comando Gunicorn para iniciar una aplicación de Django. |
Java | java -jar /home/site/wwwroot/datadog-demo.jar | El comando para iniciar tu aplicación. Esto no es necesario para las aplicaciones que se ejecutan en Tomcat. |
Nota: La aplicación se reinicia cuando se guardan los parámetros nuevos.
Configurar los parámetros generales
Ve a General settings (Configuración general) y añade lo siguiente al campo Startup Command (Comando de inicio):
curl -s https://raw.githubusercontent.com/DataDog/datadog-aas-linux/v1.10.6/datadog_wrapper | bash
Descarga el archivo datadog_wrapper
de las versiones y cárgalo en tu aplicación con el comando de la Azure CLI:
az webapp deploy --resource-group <group-name> --name <app-name> --src-path <path-to-datadog-wrapper> --type=startup
Visualización de trazas
Cuando se guardan parámetros de aplicación nuevos, Azure reinicia la aplicación. Sin embargo, si se añade y guarda un comando de inicio, puede ser necesario reiniciar.
Después de reiniciar la aplicación, puedes ver las trazas si buscas el nombe del servicio (DD_SERVICE
) en la Página de servicios de APM de Datadog.
Métricas personalizadas
Para habilitar las métricas personalizadas para tu aplicación con DogStatsD, añade DD_CUSTOM_METRICS_ENABLED
y defínelo como true
en “Application Settings” (Parámetros de la aplicación).
Para configurar tu aplicación para enviar métricas, sigue los pasos relacionados con tu tiempo de ejecución.
Despliegue
To update your Datadog instrumentation with zero downtime, use deployment slots. You can create a workflow that uses GitHub Action for Azure CLI.
See the sample GitHub workflow.
Solucionar problemas
Si no recibes datos de trazas o métricas personalizadas como esperabas, habilita App Service logs (Logs de App Service) para recibir logs de depuración.
Comparte el contenido del Log stream (Flujo de logs) con el servicio de asistencia de Datadog.
Referencias adicionales
Más enlaces, artículos y documentación útiles: