Tracer des fonctions sans serveur
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Tracer des fonctions sans serveur

Dans une architecture hybride, les fonctions sans serveur sont des éléments clés de votre application. Inclure ces fonctions dans vos traces distribuées peut s’avérer indispensable pour détecter les goulots d’étranglement et les pannes dans vos systèmes distribués.

Choisir votre bibliothèque de tracing

En fonction de votre langage et de votre configuration, choisissez d’installer l’APM Datadog ou AWS X-Ray pour vos traces. Cliquez sur le lien dans le titre de colonne approprié pour afficher les instructions d’installation de la solution qui vous convient le mieux :

APM DatadogAWS X-Ray
Utilise les bibliothèques d’intégration de l’APM Datadog pour un tracing de bout en bout.Récupère les traces depuis AWS X-Ray.
Configuration à l’aide de vos outils de développement sans modifier votre code avec les intégrations Serverless Framework et AWS SAM.Installation de la bibliothèque client AWS X-Ray pour votre runtime Lambda.
Prise en charge de Python, Node.js, Ruby.Prise en charge des runtimes Lambda.

Enrichir le tracing AWS X-Ray avec l’APM Datadog

Vous pouvez également configurer à la fois le tracing AWS X-Ray et l’APM Datadog, mais notez que cela peut entraîner une augmentation de votre facture. Dans ce cas, utilisez les instructions de configuration ci-dessous :

Configurer le tracing dans un environnement principalement sans serveur

AWS X-Ray propose à la fois un service AWS backend et un ensemble de bibliothèques client. Activé seul, le service AWS backend vous offre une span d’appel pour vos fonctions AWS Lambda ainsi que des traces pour vos API Gateways et files d’attente de messages Amazon.

Les bibliothèques client AWS X-Ray et APM Datadog tracent toutes les deux les intégrations dans votre code. Si vous utilisez la bibliothèque client de l’APM Datadog au lieu de la bibliothèque client AWS X-Ray pour tracer et visualiser les traces, suivez les deux étapes ci-dessous :

  1. Activez l’intégration AWS X-Ray pour commencer à tracer vos fonctions Lambda.
  2. Configurez l’APM Datadog sur vos fonctions Lambda.
  3. Fusionnez les traces générées par l’intégration AWS X-Ray et l’APM Datadog.
module.exports.hello = datadog(
    (event, context, callback) => {
        longCalculation();

        callback(null, {
            statusCode: 200,
            body: 'Hello from serverless!'
        });
    },
    { mergeDatadogXrayTraces: true }
);

Définissez la variable d’environnement DD_MERGE_XRAY_TRACES sur True sur votre fonction Lambda.

Définissez la variable d’environnement DD_MERGE_DATADOG_XRAY_TRACES sur True sur votre fonction Lambda.

Configurer le tracing de fonctions AWS Lambda et de hosts

Lorsque cela est approprié, Datadog associe les traces AWS X-Ray aux traces de l’APM Datadog natives. Vos traces peuvent ainsi dresser un tableau complet des requêtes qui franchissent les limites de votre infrastructure, qu’il s’agisse de fonctions Lambda AWS, de hosts sur site ou de services gérés.

  1. Activez l’intégration AWS X-Ray pour commencer à tracer vos fonctions Lambda.
  2. Configurez l’APM Datadog sur vos hosts et votre infrastructure à base de conteneurs.

Remarque : le tracing distribué est pris en charge pour tout runtime d’applications basé sur un host ou un conteneur.

Remarque : pour que les traces X-Ray apparaissent sur le même flamegraph que celles de l’APM de Datadog, tous les services doivent posséder le même tag env.

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles: