Instala la Serverless Monitoring para Azure Functions

Información general

En esta page (página), se explica cómo recopilar traces (trazas), métricas de traces (trazas), métricas de tiempo de ejecución y métricas personalizadas de tus Azure Functions. Para recopilar métricas adicionales, instala la Integración de Datadog y Azure.

Configuración

Si aún no lo has hecho, instala la Integración de Datadog y Azure para recopilar métricas y logs. A continuación, instrumenta tu aplicación con los siguientes steps (UI) / pasos (generic):

  1. Instalar dependencias. Ejecuta los siguientes comandos:

    npm install @datadog/serverless-compat
    npm install dd-trace
    

    Datadog recomienda anclar las versiones de paquete y actualizar periódicamente a las últimas versiones de @datadog/serverless-compat y de dd-trace para asegurarte de tener acceso a las mejoras y correcciones de errores.

  2. Iniciar la capa de compatibilidad serverless de Datadog e inicializar el rastreador de Node.js de Datadog. Añade las siguientes líneas al archivo de punto de entrada de tu aplicación principal (por ejemplo, app.js):

    require('@datadog/serverless-compat').start();
    
    // This line must come before importing any instrumented module.
    const tracer = require('dd-trace').init()
    
  3. Configurar el rastreador de Node.js de Datadog

    Configuración de la biblioteca de rastreo de Node.js

  1. Instalar dependencias. Ejecuta los siguientes comandos:

    pip install datadog-serverless-compat
    pip install ddtrace
    

    Datadog recomienda utilizar las últimas versiones de datadog-serverless-compat y de ddtrace para asegurarte de tener acceso a las mejoras y correcciones de errores.

  2. Iniciar la capa de compatibilidad serverless de Datadog e inicializar el rastreador de Python de Datadog. Añade las siguientes líneas al archivo de punto de entrada de tu aplicación principal:

    from datadog_serverless_compat import start
    import ddtrace.auto
    
    start()
    
  3. **Configurar el rastreador de Python de Datadog **

    Configuración de la biblioteca de rastreo de Python

  1. Instalar dependencias. Descarga los JAR de Datadog y despliégalos con tu función:

    wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'
    wget -O dd-serverless-compat-java-agent.jar 'https://dtdg.co/latest-serverless-compat-java-agent'
    

    Consulta el Repositorio de Maven de Datadog para cualquier versión específica de la capa de compatibilidad serverless de Datadog.

    Datadog recomienda actualizar periódicamente las versiones más recientes de dd-serverless-compat-java-agent y dd-java-agent para garantizar el acceso a las mejoras y correcciones de errores.

  2. Iniciar la capa de compatibilidad serverless de Datadog e inicializar el rastreador Java de Datadog. Añade los siguientes argumentos -javaagent a las opciones de JVM:

    -javaagent:/path/to/dd-serverless-compat-java-agent.jar -javaagent:/path/to/dd-java-agent.jar
    

    Nota: La variable de entorno para configurar las opciones de JVM depende del plan de alojamiento (por ejemplo, Consumo, Elastic Premium, Dedicado). Consulta la guía para el desarrollador de Java de Azure Functions para obtener más detalles sobre la variable de entorno adecuada para tu plan de alojamiento.

  3. Configurar el rastreador de Java de Datadog

    Configuración de la biblioteca de rastreo de Java

  1. Instalar dependencias. Ejecuta los siguientes comandos:

    dotnet package add Datadog.AzureFunctions
    

    Datadog recomienda actualizar periódicamente a la última versión de Datadog.AzureFunctions para asegurarte de tener acceso a las mejoras y correcciones de errores.

  2. Iniciar la capa de compatibilidad serverless de Datadog.

    Si tu aplicación de Azure Function utiliza el modelo Isolated Worker, añade las siguientes líneas a tu archivo de punto de entrada de la aplicación principal:

    Datadog.Serverless.CompatibilityLayer.Start();
    

    Si tu aplicación de Azure Function utiliza el modelo en contenedor, añade una referencia de paquete de NuGet a Microsoft.Azure.Functions.Extensions:

    dotnet package add Microsoft.Azure.Functions.Extensions
    

    Y añade el siguiente archivo .cs a tu aplicación:

    using Datadog.Serverless;
    using Microsoft.Azure.Functions.Extensions.DependencyInjection;
    
    [assembly: FunctionsStartup(typeof(MyFunctionApp.Startup))]
    
    namespace MyFunctionApp
    {
       public class Startup : FunctionsStartup
       {
          public override void Configure(IFunctionsHostBuilder builder)
          {
                Datadog.Serverless.CompatibilityLayer.Start();
          }
       }
    }
    
  3. Configurar instrumentación automática

    Si tu aplicación de Azure Function se ejecuta en Windows, añade las siguientes variables de entorno a tu aplicación de Function:

    CORECLR_ENABLE_PROFILING=1
    
    CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
    
    CORECLR_PROFILER_PATH_64=
    C:\home\site\wwwroot\datadog\win-x64\Datadog.Trace.ClrProfiler.Native.dll
    
    CORECLR_PROFILER_PATH_32=
    C:\home\site\wwwroot\datadog\win-x86\Datadog.Trace.ClrProfiler.Native.dll
    
    DD_DOTNET_TRACER_HOME=C:\home\site\wwwroot\datadog
    

    Si tu aplicación de Azure Function se ejecuta en Linux, añade las siguientes variables de entorno a tu aplicación de Function:

    CORECLR_ENABLE_PROFILING=1
    
    CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
    
    CORECLR_PROFILER_PATH=
       /home/site/wwwroot/datadog/linux-x64/Datadog.Trace.ClrProfiler.Native.so
    
    DD_DOTNET_TRACER_HOME=/home/site/wwwroot/datadog
    
  4. Configurar el rastreador de .NET de Datadog

  1. Desplegar tu función.

  2. Configurar la entrada de Datadog. Añade las siguientes variables de entorno a la configuración de la aplicación de tus funciones:

    NombreValor
    DD_API_KEYTu clave de API de Datadog.
    DD_SITETu sitio Datadog. Por ejemplo, .
    DD_AZURE_RESOURCE_GROUPTu grupo de recursos de Azure. Solo es necesario para Azure Functions en el plan Flex Consumption.
  3. Configurar el etiquetado de servicios unificados. Puedes recopilar métricas de tus funciones de Azure mediante la instalación de la integración de Datadog y Azure. Para correlacionar estas métricas con tus traces (trazas), primero configura las etiquetas env, service y version en tu recurso en Azure. A continuación, configura las siguientes variables de entorno.

    NombreValor
    DD_ENVCómo deseas etiquetar tu variable de entorno para el Etiquetado de servicios unificados. Por ejemplo, prod.
    DD_SERVICECómo deseas etiquetar tu servicio para el Etiquetado de servicios unificados.
    DD_VERSIONCómo deseas etiquetar tu versión para el Etiquetado de servicios unificados.

¿Qué toca hacer ahora?

Solucionar problemas

Activa logs de depuración

Puedes recopilar logs de depuración para solucionar problemas. Para configurar los logs de depuración, utiliza las siguientes variables de entorno:

DD_TRACE_DEBUG
Activa (true) o desactiva (false) el registro de depuración para la biblioteca de Datadog Tracing. El valor predeterminado es false.

Valores: true, false

DD_LOG_LEVEL
Configura el nivel de registro para la capa de compatibilidad serverless de Datadog. El valor predeterminado es info.

Valores: trace, debug, info, warn, error, critical, off