Service de surveillance d' Azure Functions
Pour consulter les indicateurs liés au service « Azure Functions » dans l'interface utilisateur d' Instana, vous devez installer l'agent hôte Instana, puis activer le capteur Azure comme décrit dans la section «Configuration du capteur». Le capteur « Azure Functions » est automatiquement activé après l'installation de l'agent hôte « Instana ».
Pour plus d'informations, consultez les sections « Agent hôte » et « Configuration du capteur ».
Pour visualiser les traces d' Azure Functions s dans l'interface utilisateur d' Instana, vous devez ajouter un traceur Instana Azure Functions à vos applications Azure Functions, comme décrit dans la section « Installation des traceurs Instana Azure Functions ».
Configuration
Configuration du détecteur
Vous devez activer le détecteur Azure dans le fichier configuration.yaml de l'agent < agentinstall_dir>/etc/instana/configuration.yaml`. Une configuration de détecteur minimale se présente comme suit:
com.instana.plugin.azure:
enabled: true
subscription: "[Your-Subscription-Id]"
tenant: "[Your-Tenant-Id]"
principals:
- id: "[Your-Service-Principal-Account-Id]"
secret: "[Your-Service-Principal-Secret]"
Le capteur du service « Azure Functions » est activé par défaut.
Configuration facultative
Le capteur « Azure Functions » peut être désactivé et filtré par balises et groupes de ressources. Vous pouvez configurer le capteur « Azure Functions » à l'aide de la configuration de l'agent en <agentinstall_dir>/etc/instana/configuration.yaml :
com.instana.plugin.azure.functionapp:
# Valid values: true, false
enabled: false # enabled (true) by default
# Comma separated list of tags in key:value format
include_tags:
# Comma separated list of tags in key:value format
exclude_tags:
# Comma separated list of resource groups
include_resource_groups:
# Comma separated list of resource groups
exclude_resource_groups:
Pour désactiver la surveillance des services Azure Functions, utilisez la configuration suivante :
com.instana.plugin.azure.functionapp:
enabled: false
Plusieurs balises et groupes de ressources peuvent être définis, séparés par une virgule. Les balises doivent être fournies sous la forme d'une paire clé-valeur, séparée par deux points (:). Pour faciliter la configuration, vous pouvez définir les balises et les groupes de ressources que vous souhaitez inclure dans la découverte ou exclure de la découverte. Lorsque vous définissez une balise ou un groupe de ressources dans les deux listes (inclusion et exclusion), la liste d'exclusion a une priorité plus élevée. Si le filtrage des services n'est pas nécessaire, il n'est pas nécessaire de définir la configuration. Il n'est pas obligatoire de définir toutes les valeurs pour activer le filtrage.
Pour inclure des services par balises dans la reconnaissance, utilisez la configuration suivante:
com.instana.plugin.azure.functionapp:
include_tags: # Comma separated list of tags in key:value format (e.g. env:prod,env:staging)
Pour exclure des services par balises de la reconnaissance, utilisez la configuration suivante:
com.instana.plugin.azure.functionapp:
exclude_tags: # Comma separated list of tags in key:value format (e.g. env:dev,env:test)
Pour inclure des services par groupes de ressources dans la reconnaissance, utilisez la configuration suivante:
com.instana.plugin.azure.functionapp:
include_resource_groups: # Comma separated list of resource groups (e.g. rg_prod,rg_staging)
Pour exclure des services par reconnaissance de groupes de ressources, utilisez la configuration suivante:
com.instana.plugin.azure.functionapp:
exclude_resource_groups: # Comma separated list of resource groups (e.g. rg_dev,rg_test)
Le filtrage de reconnaissance peut être configuré globalement pour tous les services Azure. Lorsque vous définissez des filtres pour le service « Azure Functions », les filtres globaux sont remplacés. Pour plus d'informations sur le filtrage global de la découverte des services, voir Azure configuration.
Installation des traceurs « Instana » et « Azure Functions »
Vous pouvez activer l'instrumentation d' Azure Functions, déployé sous la forme d' AppService, s'exécutant sur des conteneurs Windows ou Docker. Pour activer l'instrumentation pour.NET Framework,.NET Core et.NET, assurez-vous que l'agent d' Instana ation est en cours d'exécution dans l'environnement où vous souhaitez surveiller Azure Functions. Pour configurer l'agent d' Instana s en vue de la surveillance d' Azure, consultez la section Surveillance et instrumentation d' Microsoft Azure.
Installation des traceurs Instana Azure Functions sur Windows
Azure Functions est tiré de App Service. La procédure d'installation et de configuration est identique pour Azure Functions et Azure App Services.
Pour installer les traceurs Instana Azure Functions sur Windows, procédez comme suit :
Connectez-vous au portailMicrosoft Azure.
Localisez la fonction Azure que vous souhaitez instrumenter.
- Cliquez sur « Extensions » dans le panneau « Outils de développement ».
Figure 1. Menu « Extensions » dans le portail Azure pour une fonction Azure donnée 
Sur la page Extensions, ajoutez l 'extension « Instana Tracing AppService ». Une fois l'extension « Tracing AppService » d' Instana installée, configurez-la pour pouvoir l'utiliser.
- Go Accédez à la page « Extensions », puis cliquez sur « URL » (Gérer) pour l'extension « Instana Tracing AppService ». La boîte de dialogue « Tracing for App Services » (Suivi des services d'application) de l' Instana s s'affiche.
Figure 2. Configuration de l'instrumentation de la fonction Azure Instana 
Dans la fenêtre « Tracing » (Suivi) de l' Instana, sous « AppServices » (Suivi de l'), activez l'option « Enable Tracing » (Activer le suivi).
Facultatif: définissez Enable 64 bit sur on.
Dans le champ « Clé de l'agent », saisissez la clé de licence de votre agent hôte d' Instana.
Dans le champ « URL s du terminal », procédez de l'une des manières suivantes :
- SaaS: Saisissez l'adresse de l'endpoint URL pour la surveillance sans serveur.
- Auto-hébergé : Entrez le point de terminaison dans le format
https://<IP address of the Instana backend>/serverlesset définissez le paramètreINSTANA_DISABLE_CA_CHECKsurtrueou1.
Dans la zone Niveau de journalisation , entrez l'un des niveaux de journalisation suivants que vous souhaitez utiliser:
- AUCUN
- DÉBOGAGE
- INFOS
- WARN
- ERROR
Les informations de journal sont générées dans le dossier racine de l'application Azure Function.
Cliquez sur Mettre à jour la configuration. Les informations sont sauvegardées pour la fonction Azure .
Redémarrez la fonction Azure en cliquant sur Redémarrer. Lorsque vous exécutez votre fonction Azure, un module de réécriture Instana est associé à l'application, et Instana commence à collecter les traces.
Pour consulter les traces dans l'interface utilisateur d' Instana, ouvrez le tableau de bord de votre entité « Azure Function » et cliquez sur « Upstream/Downstream ». Ensuite, vous pouvez voir les traces qui sont collectées pour cette entité. Pour plus d'informations sur la consultation des traces, consultez la section « Analyse des traces et des appels ».
Installation des traceurs Instana Azure Functions sur Docker
Pour que l' Instana e fonctionne dans votre application de fonctions Azure, ajoutez les lignes suivantes à votre Dockerfile:
DOTNET_STARTUP_HOOKS="[AzureWebJobsScriptRoot]/bin/Instana.Tracing.Core.dll" \
CORECLR_ENABLE_PROFILING=1 \
CORECLR_PROFILER="{cf0d821e-299b-5307-a3d8-b283c03916dd}" \
CORECLR_PROFILER_PATH="[AzureWebJobsScriptRoot]/bin/instana_tracing/CoreProfiler.so" \
INSTANA_ENDPOINT_URL="[Serverless-ingress-URL-for-your-region]" \
INSTANA_AGENT_KEY="[Your-Instana-agent-key]"
La valeur INSTANA_ENDPOINT_URL dépend de votre région. Pour plus d'informations, consultez la documentation sur les points de terminaison pour la surveillance sans serveur.
Pour plus d'informations sur la configuration d' Instana dans .NET Core, consultez la documentation d'.NET Core.
Lorsque l'application de la fonction « Azure » est déployée sur Azure à l'aide de Docker Container l'option, il n'est pas nécessaire d'installer ni d'utiliser les paquets NuGet Instana. Vous devez plutôt copier tous les paquets NuGet de Instana dans le dossier « release » où l'application est déployée sur Azure.
Pour plus d'informations sur nos packages, consultez la documentation sur le traçage d'.NET.
Assurez-vous d'utiliser la dernière version en téléchargeant les derniers paquets Instana.Tracing.Core, Instana.Tracing.Core.Sdk et Instana.Tracing.Core.Rewriter.Linux.
Une fois le processus de téléchargement terminé, copiez les fichiers suivants dans certains dossiers de votre application Azure Function Application, qui est facilement accessible à partir de Dockerfile:
Instana.Tracing.Core.dllInstana.Tracing.Core.Common.dllInstana.Tracing.Core.Instrumentation.dllInstana.Tracing.Core.Transport.dllInstana.Tracing.Api.dllCoreProfiler.soinstrumentation.json
Copiez ensuite ces fichiers dans le dossier d'édition sur Azure comme suit:
COPY "/[path-to-your-patch-folder]/Instana.Tracing.Core.dll" "[AzureWebJobsScriptRoot]/bin/Instana.Tracing.Core.dll"
COPY "/[path-to-your-patch-folder]/Instana.Tracing.Core.Common.dll" "[AzureWebJobsScriptRoot]/bin/Instana.Tracing.Core.Common.dll"
COPY "/[path-to-your-patch-folder]/Instana.Tracing.Core.Instrumentation.dll" "[AzureWebJobsScriptRoot]/bin/Instana.Tracing.Core.Instrumentation.dll"
COPY "/[path-to-your-patch-folder]/Instana.Tracing.Core.Transport.dll" "[AzureWebJobsScriptRoot]/bin/Instana.Tracing.Core.Transport.dll"
COPY "/[path-to-your-patch-folder]/Instana.Tracing.Api.dll" "[AzureWebJobsScriptRoot]/bin/Instana.Tracing.Api.dll"
COPY "/[path-to-your-patch-folder]/CoreProfiler.so" "[AzureWebJobsScriptRoot]/bin/instana_tracing/CoreProfiler.so"
COPY "/[path-to-your-patch-folder]/instrumentation.json" "[AzureWebJobsScriptRoot]/bin/instana_tracing/instrumentation.json "
Instana.Tracing.Core paquets directement dans votre application fonctionnelle Azure. Le traçage ne fonctionnera pas si des fichiers de bibliothèque dupliqués existent après le déploiement de l'application.Ensuite, supprimez les paquets Instana.Tracing.Core et suivez les instructions déjà décrites dans cette rubrique pour copier les fichiers de la bibliothèque dans le dossier release à l'intérieur de votre Dockerfile.
Déclencheurs pris en charge
Vous trouverez ici la liste des déclencheurs d' Azure Functions s pris en charge par Instana. Certains d'entre eux sont testés jusqu'à présent et le comportement est connu. Pour le reste, l'instrumentation n'est pas encore testée. Le tableau suivant est mis à jour dès que l'état change.
Un comportement est observé lors du test, c'est-à-dire si la méthode Run de la fonction Azure est STATIC, certaines données manquantes se trouvent dans l'intervalle généré, comme Function name ou même Trigger name dans le cas d'un déclencheur de file d'attente. La raison en est que, si la méthode est de type STATIC, l'instrumentation d' Instana s ne peut pas collecter toutes les données nécessaires concernant votre méthode Run. Utiliser des méthodes NON-STATIQUES dans la mesure du possible.
| Nom du déclencheur | Testé | Données span visibles avec des méthodes STATIC | Données d'intervalle visibles avec des méthodes NON-STATIC |
|---|---|---|---|
| Blob | Non testé. | ||
| CosmosDB | Non testé. | ||
| Grille d'événements | Non testé. | ||
| Concentrateur d'événements | Non testé. | ||
| Kafka | Non testé. | ||
| HTTP | L'instrumentation fonctionne avec les méthodes STATIC et NON-STATIC. | Déclencheur, Nom de la méthode, Exécution | Déclencheur, Nom de la méthode, Environnement d'exécution, Nom de la fonction |
| File d'attente | L'instrumentation fonctionne uniquement avec des méthodes NON-STATIC. | Nom de la méthode, Exécution | Déclencheur, Nom de la méthode, Environnement d'exécution, Nom de la fonction |
| RabbitMQ | Non testé. | ||
| Service Bus | Non testé. | ||
| SignalR | Non testé. | ||
| Tableau | Non testé. | ||
| Temporisateur | L'instrumentation fonctionne avec les méthodes STATIC et NON-STATIC. | Déclencheur, Nom de la méthode, Exécution | Déclencheur, Nom de la méthode, Environnement d'exécution, Nom de la fonction |
Affichage des mesures
Pour afficher les métriques, procédez comme suit:
- Dans la barre latérale de l'interface utilisateur d' Instana, sélectionnez « Infrastructure ».
- Cliquez sur un hôte surveillé spécifique.
Vous pouvez ensuite voir un tableau de bord hôte avec toutes les métriques collectées et les processus surveillés.
Métriques
| Nom d'indicateur | Description |
|---|---|
| Demandes | Le nombre total de requêtes, quel que soit le code d'état de l' HTTP. Pour WebApps et FunctionApps. |
| Octets reçus | Nombre d'octets reçus par Azure Spring Cloud des clients. |
| Octets envoyés | Nombre d'octets envoyés par Azure Spring Cloud aux clients. |
| Http101 | Nombre de requêtes ayant donné lieu à un code d'état 101 « HTTP ». |
| Http2xx | Le nombre de requêtes ayant abouti à un code d'état « HTTP » est compris entre 200 et 300. |
| Http3xx | Le nombre de requêtes ayant abouti à un code d'état « HTTP » est compris entre 300 et 400. |
| Http4xx | Le nombre de requêtes ayant abouti à un code d'état « HTTP » est compris entre 400 et 500. |
| Http5xx | Le nombre de requêtes ayant donné lieu à un code d'état « HTTP » est compris entre 500 et 600. |
| Jeu de travail mémoire | Quantité actuelle de mémoire utilisée par l'application, en MiB. Pour WebApps et FunctionApps. |
| Jeu de travail mémoire moyen | Quantité moyenne de mémoire utilisée par l'application, en mégaoctets (MiB). Pour WebApps et FunctionApps. |
| Temps de réponse HTTP | Temps nécessaire à l'application pour traiter les demandes, en secondes. Pour WebApps et FunctionApps. |
| IoReadBytesPerSecond | Fréquence à laquelle le processus d'application lit les octets des opérations d'E-S. Pour WebApps et FunctionApps. |
| IoWriteBytesPerSecond | Fréquence à laquelle le processus d'application écrit des octets dans les opérations d'E-S. Pour WebApps et FunctionApps. |
| IoReadOperationsPerSecond | Le taux auquel le processus de l'application émet des opérations d'E/S en lecture. Pour WebApps et FunctionApps. |
| IoWriteOperationsPerSecond | Le taux auquel le processus d'application émet des opérations d'E/S en écriture. Pour WebApps et FunctionApps. |
| RequestsInApplicationQueue | Nombre de demandes dans la file d'attente des demandes de l'application. Pour WebApps et FunctionApps. |
| HealthCheckStatus | Etat du diagnostic d'intégrité. Pour WebApps et FunctionApps. |
| FileSystemUsage | Pourcentage du quota de système de fichiers consommé par l'application. Pour WebApps et FunctionApps. |
Données de configuration
FunctionApps
| FunctionApp Détails du service | Description |
|---|---|
| Id | ID unique de l'application de fonction. |
| Nom | Nom de l'instance FunctionApp . |
| Type | Type FunctionApp . |
| Emplacement | Région de l'instance |
| Catégorie | Indique le type de compte FunctionApp . |
| Abonnement | ID d'abonnement de l'instance de service FunctionApp . |
| Groupe de ressources | Groupe de ressources de l'instance de service FunctionApp . |
| Etat | Etat de déploiement actuel de l'instance. |
Fonctions
| Détails du service Fonctions | Description |
|---|---|
| Id | ID unique de la fonction. |
| Nom | Nom de l'instance de service Functions. |
| Type | Type de service de fonctions. |
| Emplacement | Région de l'instance |
| Abonnement | ID d'abonnement de l'instance de service Functions. |
| Groupe de ressources | Groupe de ressources de l'instance de service Functions. |