Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().
La prise en charge d'AAP pour Google Cloud Run est en version préliminaire.

Fonctionnement

L’application serverless-init encapsule votre processus et l’exécute en tant que sous-processus. Il démarre un DogStatsD listener pour les métriques et un Trace Agent listener pour les traces. Il collecte les logs en encapsulant les flux stdout/stderr de votre application. Après l’amorçage, serverless-init lance ensuite votre commande en tant que sous-processus.

Pour obtenir une instrumentation complète, assurez-vous d’appeler datadog-init comme première commande exécutée dans votre conteneur Docker. Vous pouvez le faire en le définissant comme point d’entrée, ou en le définissant comme premier argument dans CMD.

Compatibilité

La prise en charge de Google Cloud Run pour la protection sans serveur des applications et des API est en version préliminaire.

Remarque : la protection contre les menaces via Remote Configuration n’est pas prise en charge. Utilisez Workflows pour bloquer les adresses IP dans votre WAF.

Démarrez

Installez manuellement le traceur Ruby avant de déployer votre application. Consultez l’exemple d’application.

Ajoutez les instructions et arguments suivants à votre fichier Docker.

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"]

Explication

  1. Copiez le Datadog serverless-init dans votre image Docker.

    COPY --from=datadog/serverless-init:1 /datadog-init /app/datadog-init
    
  2. (Facultatif) ajoutez des tags Datadog

    ENV DD_SERVICE=datadog-demo-run-ruby
    ENV DD_ENV=datadog-demo
    ENV DD_APPSEC_ENABLED=1
    ENV DD_VERSION=1
    
  3. Cette variable d’environnement est nécessaire pour que la propagation des traces fonctionne correctement dans Cloud Run. Assurez-vous de définir cette variable pour tous les services en aval instrumentés par Datadog.

    ENV DD_TRACE_PROPAGATION_STYLE=datadog
    
  4. Modifiez le point d’entrée pour encapsuler votre application dans le processus Datadog serverless-init. Remarque : si vous avez déjà défini un point d’entrée dans votre Dockerfile, consultez la configuration alternative.

    ENTRYPOINT ["/app/datadog-init"]
    
  5. Exécutez votre application binaire encapsulée dans le point d’entrée. Adaptez cette ligne à vos besoins.

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

Configuration alternative

Si vous avez déjà défini un point d’entrée dans votre fichier Docker, vous pouvez choisir de modifier lʼargument CMD.

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 vous avez également besoin que votre point d’entrée soit instrumenté, vous pouvez inverser votre point d’entrée et vos arguments CMD. Pour plus d’informations, consultez Comment fonctionne 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"]

Tant que votre commande à exécuter est transmise en tant qu’argument à datadog-init, vous bénéficierez d’une instrumentation complète.

Pour aller plus loin