Installez Serverless Monitoring pour Azure Functions
Présentation
Cette page explique comment collecter des traces, des métriques de trace, des métriques d’exécution, des métriques améliorées et des métriques personnalisées à partir d’Azure Functions. Les métriques améliorées se distinguent par l’espace de noms azure.functions.enhanced.*. Pour collecter des métriques supplémentaires, installez l’intégration Datadog Azure.
Voici la liste des runtimes, systèmes d’exploitation (OS) et plans d’hébergement pris en charge pour le monitoring d’Azure Functions :
- Runtimes : .NET, Node.js, Python, Java
- Systèmes d’exploitation (OS) : Windows, Linux
- Plans d’hébergement : Dedicated (App Service) Plan, Premium Plan, Consumption Plan, Flex Consumption Plan
La méthode d’installation recommandée dépend de la configuration de votre fonction Azure :
- Pour les fonctions Azure .NET sous Windows exécutées sur des plans dédiés/App Service ou Premium : utilisez l’extension APM .NET Datadog.
- Pour toutes les autres configurations (y compris les différents runtimes, systèmes d’exploitation ou plans d’hébergement) : suivez les instructions ci-dessous pour installer la couche de compatibilité serverless.
Configuration
Si ce n’est pas déjà fait, installez l’intégration Datadog-Azure pour collecter les métriques et les logs. Ensuite, instrumentez votre application en suivant les étapes ci-dessous :
Installez les dépendances. Exécutez les commandes suivantes :
npm install @datadog/serverless-compat
npm install dd-trace
Datadog recommande de fixer les versions des packages et de mettre régulièrement à jour vers les dernières versions de @datadog/serverless-compat et dd-trace pour vous assurer d’avoir accès aux améliorations et aux corrections de bugs.
Démarrez la couche de compatibilité serverless de Datadog et initialisez le SDK Node.js Datadog.
Utilisez l’option --require pour charger et initialiser la couche de compatibilité Serverless et le SDK Node.js Datadog en une seule étape. Les options Node dans Azure Functions peuvent être configurées avec la variable d’environnement languageWorkers__node__arguments.
languageWorkers__node__arguments='--require @datadog/serverless-compat/init --require dd-trace/init'
Configurer le SDK Node.js de Datadog
Configuration du SDK Node.js
Installez les dépendances. Exécutez les commandes suivantes :
pip install datadog-serverless-compat
pip install ddtrace
Datadog recommande d’utiliser les dernières versions de datadog-serverless-compat et ddtrace pour vous assurer d’avoir accès aux améliorations et aux corrections de bugs.
Démarrez la couche de compatibilité serverless de Datadog et initialisez le SDK Python de Datadog. Ajoutez les lignes suivantes à votre fichier de point d’entrée d’application principal :
from datadog_serverless_compat import start
start()
import ddtrace.auto # noqa: E402, F401
Configurer le SDK Python de Datadog
Configuration du SDK Python
Installez les dépendances. Téléchargez les JAR Datadog et déployez-les avec votre fonction :
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'
Consultez le dépôt Maven de Datadog pour toute version spécifique de la couche de compatibilité Serverless de Datadog.
Datadog recommande de mettre régulièrement à niveau vers les dernières versions de dd-serverless-compat-java-agent et dd-java-agent pour vous assurer d’avoir accès aux améliorations et aux corrections de bugs.
Démarrez la couche de compatibilité Serverless de Datadog et initialisez le SDK Java de Datadog. Ajoutez les arguments -javaagent suivants aux options de la JVM :
-javaagent:/path/to/dd-serverless-compat-java-agent.jar -javaagent:/path/to/dd-java-agent.jar
Remarque : la variable d’environnement pour définir les options de la JVM dépend du plan d’hébergement (par exemple, Consumption, Elastic Premium, Dedicated). Consultez le guide du développeur Java pour Azure Functions pour plus de détails sur la variable d’environnement appropriée pour votre plan d’hébergement.
Configurer le SDK Java de Datadog
Configuration du SDK Java
Installez les dépendances. Exécutez les commandes suivantes :
dotnet package add Datadog.AzureFunctions
Datadog recommande de mettre régulièrement à niveau vers la dernière version de Datadog.AzureFunctions pour vous assurer d’avoir accès aux améliorations et aux corrections de bugs.
Démarrez la couche de compatibilité Serverless de Datadog.
Si votre application Azure Function utilise le modèle Isolated Worker, ajoutez les lignes suivantes au fichier de point d’entrée principal de votre application :
Datadog.Serverless.CompatibilityLayer.Start();
Si votre application Azure Function utilise le modèle in-process hérité, ajoutez une référence de package NuGet à Microsoft.Azure.Functions.Extensions :
dotnet package add Microsoft.Azure.Functions.Extensions
Et ajoutez le fichier .cs suivant à votre application :
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();
}
}
}
Configurez l’instrumentation automatique
Si votre application Azure Function s’exécute sur Windows, ajoutez les variables d’environnement suivantes à votre application 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 votre application Azure Function s’exécute sur Linux, ajoutez les variables d’environnement suivantes à votre application 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
Configurez le SDK .NET Datadog
Déployez votre fonction.
Configurez l’ingestion Datadog. Ajoutez les variables d’environnement suivantes aux paramètres d’application de votre fonction :
Do not set the following environment variables in your serverless environment. They should only be set in non-serverless environments.
DD_AGENT_HOSTDD_TRACE_AGENT_URL
Configurez le Unified Service Tagging. Vous pouvez collecter des métriques à partir de vos Azure Functions en installant l’intégration Datadog Azure. Pour corréler ces métriques avec vos traces, définissez d’abord les tags env, service et version sur votre ressource dans Azure. Ensuite, configurez les variables d’environnement suivantes.
Quelle est la prochaine étape ?
Profiling
Continuous Profiler de Datadog est disponible en préversion pour Python et Node.js sur Azure Functions.
Pour activer le Continuous Profiler, définissez la variable d’environnement DD_PROFILING_ENABLED=true.
Dépannage
Activer les journaux de débogage
Vous pouvez collecter des journaux de débogage pour le dépannage. Pour configurer les journaux de débogage, utilisez les variables d’environnement suivantes :
DD_TRACE_DEBUG- Active (
true) ou désactive (false) la journalisation de débogage pour le SDK Datadog. Par défaut : false.Valeurs: true, false
DD_LOG_LEVEL- Définit le niveau de journalisation pour la couche de compatibilité serverless de Datadog. La valeur par défaut est
info.Valeurs : trace, debug, info, warn, error, critical, off
Pour aller plus loin
Documentation, liens et articles supplémentaires utiles: