Este producto no es compatible con el sitio Datadog seleccionado. ().
El soporte de AAP para Google Cloud Run está en versión preliminar.

Cómo funciona

La serverless-init aplicación envuelve su proceso y lo ejecuta como un subproceso. Inicia un listener de DogStatsD para métricas y un listener de Trace Agent para trazas. Recopila registros envolviendo los flujos stdout/stderr de su aplicación. Después del arranque, serverless-init inicia su comando como un subproceso.

Para obtener una instrumentación completa, asegúrese de llamar a datadog-init como el primer comando que se ejecuta dentro de su contenedor de Docker. Puede hacerlo configurándolo como el punto de entrada o como el primer argumento en CMD.

Compatibilidad

El soporte de Google Cloud Run para la protección de aplicaciones y API sin servidor está en versión preliminar.

Nota: La protección contra amenazas mediante Remote Configuration no es compatible. Utilice Workflows para bloquear direcciones IP en su WAF.

Comience

Instale manualmente el rastreador de Ruby antes de implementar su aplicación. Consulte la aplicación de ejemplo.

Agregue las siguientes instrucciones y argumentos a su Dockerfile.

COPY --from=datadog/serverless-init:1 /datadog-init /app/datadog-init
ENV DD_SERVICE=datadog-demo-run-ruby
ENV DD_ENV=datadog-demo
ENV DD_VERSION=1
ENV DD_APPSEC_ENABLED=1
ENV DD_TRACE_PROPAGATION_STYLE=datadog
ENTRYPOINT ["/app/datadog-init"]
CMD ["rails", "server", "-b", "0.0.0.0"]

Explicación

  1. Copie el serverless-init de Datadog en su imagen de Docker.

    COPY --from=datadog/serverless-init:1 /datadog-init /app/datadog-init
    
  2. (Opcional) agregue etiquetas de Datadog

    ENV DD_SERVICE=datadog-demo-run-ruby
    ENV DD_ENV=datadog-demo
    ENV DD_APPSEC_ENABLED=1
    ENV DD_VERSION=1
    
  3. Esta variable de entorno es necesaria para que la propagación de trazas funcione correctamente en Cloud Run. Asegúrese de configurar esta variable para todos los servicios downstream instrumentados con Datadog.

    ENV DD_TRACE_PROPAGATION_STYLE=datadog
    
  4. Cambie el punto de entrada para envolver su aplicación en el proceso de Datadog serverless-init. Nota: Si ya tiene un punto de entrada definido dentro de su Dockerfile, consulte la configuración alternativa.

    ENTRYPOINT ["/app/datadog-init"]
    
  5. Ejecute su aplicación binaria envuelta en el punto de entrada. Adapte esta línea a sus necesidades.

    CMD ["rails", "server", "-b", "0.0.0.0"]
    

Configuración alternativa

Si ya tiene un punto de entrada definido dentro de su Dockerfile, puede modificar el argumento CMD en su lugar.

COPY --from=datadog/serverless-init:1 /datadog-init /app/datadog-init
ENV DD_SERVICE=datadog-demo-run-ruby
ENV DD_ENV=datadog-demo
ENV DD_VERSION=1
ENV DD_APPSEC_ENABLED=1
ENV DD_TRACE_PROPAGATION_STYLE=datadog
CMD ["/app/datadog-init", "rails", "server", "-b", "0.0.0.0"]

Si también requiere que su punto de entrada sea instrumentado, puede intercambiar sus argumentos de punto de entrada y CMD en su lugar. Para obtener más información, consulte Cómo funciona serverless-init.

COPY --from=datadog/serverless-init:1 /datadog-init /app/datadog-init
ENV DD_SERVICE=datadog-demo-run-ruby
ENV DD_ENV=datadog-demo
ENV DD_VERSION=1
ENV DD_APPSEC_ENABLED=1
ENV DD_TRACE_PROPAGATION_STYLE=datadog
ENTRYPOINT ["/app/datadog-init"]
CMD ["your_entrypoint.sh", "rails", "server", "-b", "0.0.0.0"]

Siempre que su comando de ejecución se pase como argumento a datadog-init, recibirá la instrumentación completa.

Lecturas adicionales