Instrumentar Azure App Service: contenedores de Linux con patrón Sidecar

Para instrumentar tus contenedores de Azure App Service con serverless-init, consulta Instrumentar Azure App Service: contenedor de Linux con serverless-init.

Información general

Este método instrumentación utiliza el patrón Sidecar de Azure para monitorizar cargas de trabajo de Linux Azure App Service en contenedores.

Requisitos previos

Instrumentar tu aplicación

  1. Integra el rastreador de Datadog en tu aplicación en contenedores
  2. Crea tu aplicación web de Linux
  3. Añade variables de entorno de Datadog como configuración de la aplicación
  4. Añade el sidecar de Datadog

Integra el rastreador de Datadog

  1. Añade las siguientes líneas al archivo de Docker de tu aplicación principal:

    RUN mkdir -p /datadog/tracer
    RUN mkdir -p /home/LogFiles/dotnet
    
    ADD https://github.com/DataDog/dd-trace-dotnet/releases/download/v2.51.0/datadog-dotnet-apm-2.49.0.tar.gz /datadog/tracer
    RUN cd /datadog/tracer && tar -zxf datadog-dotnet-apm-2.49.0.tar.gz
    

    Esto instala y configura el rastreador de Datadog dentro de tu contenedor de aplicación.

  2. Crea la imagen y envíala a tu registro preferido de contenedor.

Archivo de Docker de ejemplo completo

# Etapa 1: crear la aplicación
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /app

# Copia el archivo de proyecto y restaura las dependencias
COPY *.csproj ./
RUN dotnet restore

# Copia el código fuente restante
COPY . .

# Crea la aplicación
RUN dotnet publish -c Release -o out

# Etapa 2: crear una imagen de tiempo de ejecución
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
WORKDIR /app

# Copia la salida de compilación desde la Etapa 1
COPY --from=build /app/out ./

# Específico de Datadog
RUN mkdir -p /datadog/tracer
RUN mkdir -p /home/LogFiles/dotnet

ADD https://github.com/DataDog/dd-trace-dotnet/releases/download/v2.49.0/datadog-dotnet-apm-2.49.0.tar.gz /datadog/tracer
RUN cd /datadog/tracer && tar -zxf datadog-dotnet-apm-2.49.0.tar.gz

# Establece el punto de entrada de la aplicación
ENTRYPOINT ["dotnet", "<your dotnet app>.dll"]

Crear tu Linux Web App

  1. En el Portal de Azure, ve a App Services (Servicios de aplicación) y selecciona Create (Crear).
  2. En la pestaña Basics (Datos básicos), introduce los datos necesarios.
    • Para Publish (Publicar), selecciona Container (Contenedor).
    • En Operating System (Sistema operativo), selecciona Linux. A continuación, selecciona Next: Container > (Siguiente: Contenedor).
  3. En la pestaña Container (Contenedor), introduce los datos necesarios.
    • En Sidecar support (Compatibilidad de sidecar), selecciona Enabled (Activado).
    • En Image Source (Fuente de imagen), selecciona el registro que desees.
    • Especifica el Registro, Imagen, Etiqueta y Puerto para tu imagen de contenedor.
  4. Selecciona Review + create (Revisar + crear) y, a continuación, Create (Crear).

Añadir variables de entorno de Datadog

  1. En el portal de Azure, selecciona tu aplicación.

  2. En el menú de la izquierda, selecciona Configuration > Application settings (Configuración > Configuración de la aplicación).

  3. Añade las siguientes variables de entorno como configuración de la aplicación.

    DD_API_KEY (Obligatorio)
    tu clave de API de Datadog.
    Como alternativa, puedes obtener tu clave de API (y otra información confidencial) de Azure Key Vault. Consulta Uso de referencias de Key Vault como configuración de aplicaciones en Azure App Service.
    DD_SITE

    Corresponde a tu sitio de Datadog. Por defecto datadoghq.com.
    DD_SERVICE
    proporciona un nombre de servicio para que aparezca en tu Catálogo de servicios de Datadog. Consulta Etiquetado de servicios unificado.
    DD_ENV
    un nombre para tu entorno, como staging o prod. Consulta etiquetado de servicios unificado.
    DD_SERVERLESS_LOG_PATH
    /home/Logfile/*.log
    Corresponde a la ruta donde escribes tus logs de aplicación. Si has cambiado esta localización, especifica tu localización personalizada en esta configuración.
    DD_DOTNET_TRACER_HOME (Obligatorio)
    /datadog/tracer
    DD_TRACE_LOG_DIRECTORY (Obligatorio)
    /home/Logfiles/dotnet
    CORECLR_ENABLE_PROFILING (Obligatorio)
    1
    CORECLR_PROFILER (Obligatorio)
    {846F5F1C-F9AE-4B07-969E-05C26BC060D8}
    CORECLR_PROFILER_PATH (Obligatorio)
    /datadog/tracer/Datadog.Trace.ClrProfiler.Native.so

Añadir el sidecar de Datadog

  1. En el portal de Azure, selecciona tu aplicación.
  2. En el menú de la izquierda, selecciona Deployment Center (Centro de despliegue).
  3. Selecciona Add (Añadir). En Add container (Añadir contenedor), facilita los siguientes datos:
    • Nombre: datadog
    • Fuente de la imagen: Docker Hub u otro registro
    • Tipo de imagen: Pública
    • URL del servidor de registro: sitecontainerssampleacr.azurecr.io
    • Imagen y etiqueta: datadog-dotnet:2.0
    • Puerto: 8126
  4. Selecciona Aplicar (Solicitar).

Siguientes pasos

Cuando termines de instrumentar tu aplicación, ve a la página Serverless > Azure en Datadog para ver tus datos de observabilidad. Tus logs de aplicación están disponibles en Log Explorer y tus trazas (traces) están disponibles en Trace Explorer.