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 ».

Remarque : pour connaître les autres services pris en charge par l' Azure, consultez la documentation disponible à l'adresse Azure.

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 :

  1. Connectez-vous au portailMicrosoft Azure.

  2. Localisez la fonction Azure que vous souhaitez instrumenter.

  3. Cliquez sur « Extensions » dans le panneau « Outils de développement ».
    Figure 1. Menu « Extensions » dans le portail Azure pour une fonction Azure donnée
    Menu Extensions
  4. 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.

  5. 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
    Configuration de l'instrumentation
    1. Dans la fenêtre « Tracing » (Suivi) de l' Instana, sous « AppServices » (Suivi de l'), activez l'option « Enable Tracing » (Activer le suivi).

    2. Facultatif: définissez Enable 64 bit sur on.

    3. Dans le champ « Clé de l'agent », saisissez la clé de licence de votre agent hôte d' Instana.

    4. 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>/serverless et définissez le paramètre INSTANA_DISABLE_CA_CHECK sur true ou 1.
    5. 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.

    6. Cliquez sur Mettre à jour la configuration. Les informations sont sauvegardées pour la fonction Azure .

  6. 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.dll
  • Instana.Tracing.Core.Common.dll
  • Instana.Tracing.Core.Instrumentation.dll
  • Instana.Tracing.Core.Transport.dll
  • Instana.Tracing.Api.dll
  • CoreProfiler.so
  • instrumentation.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 "
Remarque : n'installez pas les 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:

  1. Dans la barre latérale de l'interface utilisateur d' Instana, sélectionnez « Infrastructure ».
  2. 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

Remarque : les métriques du service Functions sont récupérées toutes les minutes, ce qui correspond à la fréquence de mise à jour proposée par Azure pour la surveillance de ces services.
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.