Partager via


Surveiller l’exécution des fonctions Azure

Cet article aborde les points suivants :

  • Types de données de monitoring que vous pouvez collecter pour ce service.
  • Méthodes d’analyse de ces données.

Remarque

Si vous connaissez déjà ce service et/ou Azure Monitor et que vous voulez simplement savoir comment analyser les données de monitoring, consultez la section Analyser vers la fin de cet article.

Quand vous avez des applications critiques et des processus métier qui s’appuient sur des ressources Azure, vous devez monitorer votre système et obtenir des alertes. Le service Azure Monitor collecte et agrège les métriques et les journaux de chaque composant de votre système. Azure Monitor vous fournit une vue de la disponibilité, des performances et de la résilience, et vous avertit des problèmes. Vous pouvez utiliser le portail Azure, PowerShell, Azure CLI, l’API REST ou des bibliothèques de client pour configurer et visualiser les données de monitoring.

Insights

Dans Azure, certains services ont un tableau de bord de monitoring intégré dans le portail Azure, qui constitue un point de départ pour le monitoring de votre service. Ces tableaux de bord sont appelés insights et vous pouvez les trouver dans le Hub d’insights d’Azure Monitor dans le portail Azure.

Application Insights

Azure Functions a une intégration intégrée à Application Insights pour surveiller les exécutions de fonctions. Pour plus d’informations sur l’intégration, la configuration et l’utilisation d’Application Insights pour monitorer Azure Functions, consultez les articles suivants :

Types de ressources

Azure utilise le concept des types de ressources et des ID pour identifier chaque chose dans un abonnement. Les types de ressource font également partie des ID de ressource pour chaque ressource exécutée dans Azure. Par exemple, le type de ressource pour une machine virtuelle peut être Microsoft.Compute/virtualMachines. Pour obtenir la liste des services et leurs types de ressource associés, consultez Fournisseurs de ressources.

Azure Monitor organise de façon similaire les données de surveillance de base en métriques et en journaux en fonction des types de ressources, également appelés espaces de noms. Différentes métriques et journaux sont disponibles pour les différents types de ressource. Votre service peut être associé à plusieurs types de ressource.

Pour plus d’informations sur les types de ressources pour Azure Functions, consultez Informations de référence sur les données de surveillance Azure Functions.

Stockage des données

Pour Azure Monitor :

  • Les données de métriques sont stockées dans la base de données des métriques Azure Monitor.
  • Les données de journal sont stockées dans le magasin de journaux Azure Monitor. Log Analytics est un outil du portail Azure qui peut interroger ce magasin.
  • Le journal d’activité Azure est un magasin distinct avec sa propre interface dans le portail Azure.

Vous pouvez choisir d’acheminer les données des métriques et des journaux d’activité vers le magasin des journaux d’activité Azure Monitor. Vous pouvez ensuite utiliser Log Analytics pour interroger les données et les mettre en corrélation avec d’autres données de journal.

De nombreux services peuvent utiliser les paramètres de diagnostic pour envoyer les données des métriques et des journaux vers d’autres emplacements de stockage en dehors d’Azure Monitor. Par exemple, le Stockage Azure, les systèmes partenaires hébergés et les systèmes partenaires non-Azure, en utilisant Event Hubs.

Pour plus d’informations sur la façon dont Azure Monitor stocke les données, consultez Plateforme de données Azure Monitor.

Métriques de plateforme Azure Monitor

Azure Monitor fournit des métriques de plateforme pour la plupart des services. Ces mesures sont :

  • Définies individuellement pour chaque espace de noms.
  • Stockées dans la base de données de métriques de série chronologique Azure Monitor.
  • Légères et capables de prendre en charge les alertes en quasi-temps réel.
  • Utilisées pour suivre les performances d’une ressource au fil du temps.

Collecte : Azure Monitor collecte automatiquement les métriques de plateforme. Aucune configuration n'est requise.

Routage : vous pouvez également acheminer certaines mesures de plateforme vers Azure Monitor Logs/Log Analytics afin de pouvoir les interroger avec d’autres données de journal. Vérifiez le paramètre d’exportation DS pour chaque métrique pour voir si vous pouvez utiliser un paramètre de diagnostic pour router la métrique vers les journaux Azure Monitor / Log Analytics.

Pour obtenir la liste de toutes les métriques qu’il est possible de collecter pour toutes les ressources dans Azure Monitor, consultez Métriques prises en charge dans Azure Monitor.

Pour obtenir la liste des métriques disponibles pour Azure Functions, consultez Informations de référence sur les données de surveillance Azure Functions.

Remarque

Les métriques App Service (Microsoft.Web/sites) ne sont pas disponibles lorsque votre application de fonction s’exécute sur Linux dans un Plan de consommation.

Journaux d’activité de ressources Azure Monitor

Les journaux de ressource fournissent des insights sur les opérations effectuées par une ressource Azure. Les journaux sont générés automatiquement, mais vous devez les router vers les journaux Azure Monitor pour les enregistrer ou les interroger. Les journaux sont organisés en catégories. Un espace de noms donné peut avoir plusieurs catégories de journal de ressource.

Collecte : les journaux d’activité de ressources ne sont pas collectés ni stockés tant que vous n’avez pas créé de paramètre de diagnostic et routé les journaux d'activité vers un ou plusieurs emplacements. Lorsque vous créez un paramètre de diagnostic, vous spécifiez les catégories de journaux à collecter. Il existe plusieurs façons de créer et gérer des paramètres de diagnostic, notamment le portail Azure, programmatiquement et avec Azure Policy.

Routage : la valeur par défaut suggérée est le routage des journaux de ressource vers les journaux Azure Monitor afin de pouvoir les interroger avec d’autres données de journal. D’autres emplacements comme le Stockage Azure, Azure Event Hubs et certains partenaires de monitoring de Microsoft sont également disponibles. Pour plus d’informations, consultez Journaux de ressource Azure et Destinations des journaux de ressource.

Pour plus d’informations sur la collecte, le stockage et le routage des journaux de ressource, consultez Paramètres de diagnostic dans Azure Monitor.

Pour obtenir la liste de toutes les catégories de journal de ressource disponibles dans Azure Monitor, consultez Journaux de ressource pris en charge dans Azure Monitor.

Tous les journaux de ressource dans Azure Monitor ont les mêmes champs d’en-tête, suivis de champs propres au service. Le schéma commun est décrit dans Schéma des journaux des ressources Azure Monitor.

Azure Functions s’intègre à Azure Monitor Logs pour monitorer les fonctions. Pour obtenir des instructions détaillées sur la configuration de paramètres de diagnostic afin de configurer et d’acheminer des journaux de ressources, consultez Créer des paramètres de diagnostic dans Azure Monitor.

Capture d’écran de l’ajout d’un paramètre de diagnostic pour Azure Functions.

Pour connaître les catégories de journaux de ressources disponibles, leurs tables Log Analytics associées et les schémas de journaux pour Azure Functions, consultez Informations de référence sur les données de surveillance Azure Functions.

Journal des activités Azure

Le journal d’activité contient des événements au niveau de l’abonnement qui suivent les opérations sur chaque ressource Azure qui sont vues comme extérieures à cette ressource, par exemple la création d’une ressource ou le démarrage d’une machine virtuelle.

Collection : les événements du journal d’activité sont automatiquement générés et collectés dans un magasin distinct pour être affichés dans le Portail Azure.

Routage : vous pouvez envoyer les données de journal d’activité aux journaux Azure Monitor afin de pouvoir les analyser en même temps que d’autres données de journal. D’autres emplacements comme le Stockage Azure, Azure Event Hubs et certains partenaires de monitoring de Microsoft sont également disponibles. Pour plus d’informations sur le routage du journal d’activité, consultez Vue d’ensemble du journal d’activité Azure.

Autres journaux

Azure Functions permet également de collecter des informations supplémentaires en plus des journaux de ressources Azure Monitor. Pour afficher un flux en quasi-temps réel des fichiers journaux d’application générés par votre fonction s’exécutant dans Azure, vous pouvez vous connecter à Application Insights et utiliser Flux de métriques temps réel. Vous pouvez également utiliser le streaming de journaux intégré à la plateforme App Service pour afficher un flux de fichiers journaux d’application. Pour plus d’informations, consultez Activer les journaux d’exécution de streaming dans Azure Functions.

Analyser les données de surveillance

Il existe de nombreux outils pour analyser les données de surveillance.

Outils Azure Monitor

Azure Monitor prend en charge les outils de base suivants :

Les outils qui permettent une visualisation plus complexe sont notamment :

  • Les tableaux de bord, qui vous permettent de combiner différentes sortes de données dans un même volet du portail Azure.
  • Classeurs, rapports personnalisables que vous pouvez créer dans le portail Azure. Les workbooks peuvent inclure du texte, des métriques et des requêtes de journal.
  • Grafana, un outil de plateforme ouvert, parfait pour les tableaux de bord opérationnels. Vous pouvez utiliser Grafana pour créer des tableaux de bord à partir de données de plusieurs sources autres qu’Azure Monitor.
  • Power BI, un service d’analyse métier qui fournit des visualisations interactives pour diverses sources de données. Vous pouvez configurer Power BI pour importer automatiquement les données de journal à partir d’Azure Monitor afin de tirer parti de ces visualisations supplémentaires.

Outils d’exportation Azure Monitor

Vous pouvez extraire des données d’Azure Monitor dans d’autres outils en utilisant les méthodes suivantes :

Pour bien démarrer avec l’API REST pour Azure Monitor, consultez Procédure pas à pas de l’API REST d’analyse Azure.

Analyser les métriques pour Azure Functions

Functions fournit ces deux plans d’échelle dynamique qui prennent en charge l’hébergement serverless :

Fournit une mise à l’échelle horizontale rapide, avec des options de calcul flexibles, l’intégration de réseau virtuel et une prise en charge complète des connexions à l’aide de l’authentification Microsoft Entra ID. Dans ce plan, les instances effectuent un scale-out dynamique en fonction de la concurrence configurée par instance, des événements entrants et des charges de travail par fonction pour optimiser l’efficacité. Flex Consumption est le plan recommandé pour l’hébergement serverless. Pour plus d’informations, consultez l’hébergement du plan de consommation Flex d’Azure Functions.

Les métriques au niveau de l’application disponibles pour votre application dépendent du type de plan de consommation que vous utilisez.

Ces métriques Azure Monitor sont liées à la facturation du plan Flex Consumption :

Métrique Description Calcul du compteur
Nombre d’exécutions de fonction à la demande Nombre total d’exécutions de fonction dans les instances à la demande. OnDemandFunctionExecutionCount est lié au compteur Exécutions totales à la demande.
Nombre d’exécutions de fonction Always Ready Nombre total d’exécutions de fonction dans des instances toujours prêtes. AlwaysReadyFunctionExecutionCount est lié au compteur du nombre total d’exécutions toujours prêtes.
Unités d’exécution de fonction à la demande Nombre total de mo-millisecondes provenant d’instances à la demande lors de l’exécution active de fonctions. OnDemandFunctionExecutionUnits / 1,024,000 est le compteur temps d’exécution à la demande, en Go-secondes.
Unités d’exécution de fonction Always Ready Nombre total de mo-millisecondes provenant d’instances toujours prêtes lors de l’exécution active des fonctions. AlwaysReadyFunctionExecutionUnits / 1,024,000 est le compteur de Temps d'exécution Toujours Disponible, en Go-secondes.
Unités toujours prêtes Total en Mo-millisecondes des instances toujours prêtes affectées à l’application, que les fonctions soient activement exécutées ou non. AlwaysReadyUnits / 1,024,000 est le compteur Ligne de base des instances toujours prêtes, en Go-secondes.

Pour plus d’informations, consultez la référence des données de surveillance Azure Functions.

Pour mieux comprendre les coûts de vos fonctions, utilisez Azure Monitor pour afficher les métriques liées aux coûts générées par vos applications de fonction. Vous pouvez afficher les métriques Monitor à l’aide de l’un des outils suivants :

Utilisez l’Explorateur de métriques Azure Monitor pour afficher les données relatives aux coûts pour vos applications de fonction de plan Flex Consumption dans un format graphique.

  1. Dans le portail Azure, accédez à votre application de fonction.

  2. Dans le volet gauche, faites défiler jusqu’à Surveillance et sélectionnez Métriques.

  3. Dans Métrique, sélectionnez Nombre d’exécutions de fonction à la demande et Somme pour l’agrégation. Cette sélection ajoute la somme des nombres d’exécutions pendant la période choisie au graphique.

  4. Sélectionnez Ajouter une métrique et ajoutez des unités d’exécution de fonction à la demande, le compteur d'exécution de fonction toujours prête, les unités d'exécution de fonction toujours prêtes, et les unités toujours prêtes au graphique.

Le graphique obtenu contient les totaux pour toutes les métriques d’exécution Flex Consumption dans l’intervalle de temps choisi, qui dans cet exemple est un intervalle de temps personnalisé.

Graphique des nombres d’exécutions de fonction à la demande et des unités d’exécution de fonction à la demande.

Étant donné que le nombre d’unités d’exécution de fonction à la demande est supérieur au nombre d’exécutions de fonction à la demande et qu’il n’y avait pas toujours d’instances prêtes sur l’application, le graphique affiche simplement les unités d’exécution de fonction à la demande.

Ce graphique montre un total de 3,54 milliards On Demand Function Execution Units consommés dans une période de 16 minutes, mesurée en millisecondes mo. Pour convertir en go-secondes, divisez-les de 1 024 000. Dans cet exemple, l’application de fonction a consommé 3,540,000,000 / 1,024,000 = 3,457.03 Go-secondes. Vous pouvez prendre cette valeur et la multiplier par le prix actuel du temps d’exécution à la demande sur la page de tarification Functions, ce qui vous donne le coût de ces 16 minutes, en supposant que vous avez déjà utilisé n’importe quelle allocation gratuite de temps d’exécution. Vous pouvez appliquer ce même calcul avec la métrique Unités d’exécution de fonctions toujours prêtes et le coût du compteur de facturation Temps d’exécution toujours prêt, ainsi qu’avec la métrique Unités toujours prêtes et le coût du compteur de facturation Base de référence toujours prête, afin de déterminer les coûts en Go-secondes des instances toujours prêtes.

Pour calculer le coût total des exécutions à la demande, prenez la somme du nombre d’exécutions de fonction à la demande pour la même période, convertissez en millions, puis multipliez par le prix total des exécutions à la demande dans la page de tarification Functions. Par exemple, 2 100 exécutions dans l’exemple ci-dessus sont converties en 0.0021 millions d’exécutions. Vous pouvez utiliser ce même calcul avec la métrique Always Ready Function Execution Count et le compteur de facturation Always Ready Total Executions pour déterminer le coût des exécutions gérées par une instance toujours prête.

Pour en savoir plus sur l’estimation des coûts de ces plans, consultez Estimation des coûts du plan de consommation.

Analyser les journaux pour Azure Functions

Azure Functions écrit tous les journaux dans la table FunctionAppLogs sous LogManagement dans l’espace de travail Log Analytics où vous envoyez les données. Vous pouvez utiliser des requêtes Kusto pour interroger les données.

Capture d’écran de la fenêtre Requête pour Azure Functions dans un espace de travail Log Analytics.

Requêtes Kusto

Vous pouvez analyser les données de surveillance dans les journaux d'activité Azure Monitor ou le magasin Log Analytics en utilisant le langage de requête Kusto (KQL).

Important

Quand vous sélectionnez Journaux d’activité dans le menu du service dans le portail, Log Analytics s’ouvre avec l’étendue de requête définie sur le service actuel. Cette étendue signifie que les requêtes de journal ont seulement des données de ce type de ressource. Si vous voulez exécuter une requête qui comprend des données d’autres services Azure, sélectionnez Journaux dans le menu Azure Monitor. Pour plus d’informations, consultez Étendue de requête de journal et intervalle de temps dans la fonctionnalité Log Analytics d’Azure Monitor.

Pour obtenir la liste des requêtes courantes pour n’importe quel service, consultez l’Interface de requêtes Log Analytics.

Les exemples de requêtes suivants peuvent vous aider à monitorer tous les journaux de vos applications de fonction :


FunctionAppLogs
| order by TimeGenerated desc

FunctionAppLogs
| project TimeGenerated, HostInstanceId, Message, _ResourceId
| order by TimeGenerated desc

L’exemple de requête suivant peut vous aider à surveiller les journaux d’activité d’une application de fonction spécifique :

FunctionAppLogs
| where FunctionName == "<Function name>" 
| order by TimeGenerated desc

L’exemple de requête suivant peut vous aider à monitorer les exceptions dans tous les journaux de vos applications de fonction :


FunctionAppLogs
| where ExceptionDetails != ""  
| order by TimeGenerated asc

L’exemple de requête suivant peut vous aider à surveiller les exceptions sur les journaux d’activité d’une application de fonction spécifique :

FunctionAppLogs
| where ExceptionDetails != ""  
| where FunctionName == "<Function name>" 
| order by TimeGenerated desc

Alertes

Azure Monitor vous alerte de façon proactive quand des conditions spécifiques sont détectées dans vos données de monitoring. Les alertes permettent d’identifier et de résoudre les problèmes affectant votre système avant que vos clients ne les remarquent. Pour plus d’informations, consultez Alertes Azure Monitor.

Il existe de nombreuses sources d’alertes courantes pour les ressources Azure. Pour obtenir des exemples d’alertes courantes pour les ressources Azure, consultez Exemples de requêtes d’alerte de journal. Le site Azure Monitor Baseline Alerts (AMBA) fournit une méthode semi-automatisée de mise en œuvre des alertes, des tableaux de bord et des recommandations concernant les métriques de plateforme. Le site s’applique à un sous-ensemble des services Azure en constante expansion, y compris tous les services qui font partie de la zone d’atterrissage Azure (ALZ).

Le schéma d’alerte commun standardise la consommation de notifications d'alerte pour Azure Monitor. Pour plus d’informations, consultez Schéma d’alerte courant.

Types d'alertes

Vous pouvez définir une alerte sur n’importe quelle source de données de métrique ou de journal dans la plateforme de données Azure Monitor. Il existe de nombreux types d’alertes différents en fonction des services que vous monitorez et des données de monitoring que vous collectez. Les différents types d’alertes ont divers avantages et inconvénients. Pour plus d’informations, consultez Choisir le bon type d’alerte de monitoring.

La liste suivante décrit les types d’alertes Azure Monitor que vous pouvez créer :

  • Les alertes de métrique évaluent les métriques de ressource à intervalles réguliers. Les métriques peuvent être des métriques de plateforme, des métriques personnalisées, des journaux provenant d’Azure Monitor convertis en métriques ou des métriques Application Insights. Les alertes de métriques peuvent également appliquer plusieurs conditions et seuils dynamiques.
  • Les alertes de journal permettent aux utilisateurs d’utiliser une requête Log Analytics pour évaluer les journaux de ressource à une fréquence prédéfinie.
  • Les alertes de journal d’activité sont déclenchées quand un nouvel événement de journal d’activité correspond à des conditions définies. Les alertes Resource Health et les alertes Service Health sont des alertes de journal d’activité qui concernent l’intégrité de votre service et de vos ressources.

Certains services Azure prennent également en charge les alertes de détection intelligente, les alertes Prometheus ou les règles d’alerte recommandées.

Pour certains services, vous pouvez opérer une surveillance à grande échelle en appliquant la même règle d’alerte de métrique à plusieurs ressources du même type qui existent dans la même région Azure. Les notifications individuelles sont envoyées pour chaque ressource supervisée. Pour connaître les services et clouds Azure pris en charge, consultez Monitorer plusieurs ressources avec une seule règle d’alerte.

Remarque

Si vous créez ou exécutez une application qui s’exécute sur votre service, il est possible qu’Azure Monitor Application Insights vous propose d’autres types d’alertes.

Règles d’alerte Azure Functions

Le tableau suivant répertorie les règles d’alerte courantes et recommandées pour Azure Functions. Ces alertes sont simplement des recommandations. Vous pouvez définir des alertes pour n’importe quelle métrique, entrée de journal ou entrée de journal d’activité répertoriée dans Informations de référence sur les données de surveillance Azure Functions.

Type d’alerte Condition Description
Métrique Connexions moyennes Lorsque le nombre de connexions dépasse une valeur définie
Métrique HTTP 404 Lorsque les réponses HTTP 404 dépassent une valeur définie
Métrique Erreurs de serveur HTTP Lorsque les erreurs HTTP 5xx dépassent une valeur définie
Journal d’activité Créer ou mettre à jour une application de fonction Lorsqu'un l’application est créée ou mise à jour
Journal d’activité Supprimer une application de fonction Lorsque l’application est supprimée
Journal d’activité Redémarrer l’application de fonction Lorsque l’application est redémarrée
Journal d’activité Arrêter l’application de fonction Lorsque l’application est arrêtée

Recommandations d’Advisor

Pour certains services, si des conditions critiques ou des changements imminents se produisent durant les opérations relatives aux ressources, une alerte s’affiche dans la page Vue d’ensemble du service au sein du portail. Vous trouverez plus d’informations ainsi que les correctifs recommandés pour l’alerte dans Recommandations Advisor, sous Supervision dans le menu de gauche. Pendant les opérations normales, aucune recommandation Advisor ne s’affiche.

Pour plus d’informations sur Azure Advisor, consultez Vue d’ensemble d’Azure Advisor.

Pour plus d’informations sur la surveillance d’Azure Functions, consultez les articles suivants :