Analyser les journaux et les indicateurs de performance avec les paramètres de diagnostic

Remarque

Azure Spring Apps est le nouveau nom du service Azure Spring Cloud. Bien que le service ait un nouveau nom, vous verrez l’ancien nom à divers endroits pendant un certain temps, car nous travaillons à mettre à jour les ressources telles que les captures d’écran, les vidéos et les diagrammes.

Cet article s’applique à : ✔️ Java ✔️ C#

Cet article s’applique au : Niveau ✔️ De base/Standard ✔️ Entreprise

Cet article explique comment analyser les données de diagnostic dans Azure Spring Apps.

La fonctionnalité de diagnostic d’Azure Spring Apps vous permet d’analyser les journaux et les métriques avec l’un des services suivants :

  • Utiliser Azure Log Analytics. Il existe un délai lors de l’exportation des journaux vers Log Analytics.
  • Enregistrez les journaux dans un compte de stockage pour les auditer ou les inspecter manuellement. Spécifiez la durée de conservation (en jours).
  • Envoyez les journaux par flux de données à votre Event Hub pour ingestion par un service tiers ou une solution d’analyse personnalisée.

Choisissez la catégorie de journal et de métrique que vous souhaitez analyser.

Conseil

Si vous souhaitez simplement diffuser vos journaux d’activité, vous pouvez utiliser la commande Azure CLI az spring app logs.

Journaux d’activité

Journal Description
ApplicationConsole Journal de la console de toutes les applications clientes.
SystemLogs Les valeurs disponibles LogType sont ConfigServer(De base/Standard uniquement), ServiceRegistry(tous les plans), ApiPortal(Plan Entreprise uniquement), (Plan Entreprise uniquement), ApplicationConfigurationService(Plan Entreprise uniquement) SpringCloudGateway et SpringCloudGatewayOperator (Plan Entreprise uniquement)
IngressLogs Journaux d’entrée de toutes les applications du client, accès uniquement aux journaux.
BuildLogs Journaux de génération de toutes les applications du client pour chaque étape de génération.

Métriques

Pour obtenir la liste complète des métriques, consultez la section Options de métriques utilisateur dans Métriques pour Azure Spring Apps.

Pour commencer, activez l’un de ces services pour recevoir les données. Pour en savoir plus sur la configuration de Log Analytics, consultez Prise en main de Log Analytics dans Azure Monitor.

Configurer les paramètres de diagnostic

  1. Dans le portail Azure, accédez à votre instance Azure Spring Apps.

  2. Sélectionnez l’option Paramètres de diagnostic, puis Ajouter un paramètre de diagnostic.

  3. Entrez un nom pour le paramètre, puis choisissez l’emplacement où vous souhaitez envoyer les journaux. Vous pouvez sélectionner n’importe quelle combinaison des trois options suivantes :

    • Archiver dans un compte de stockage
    • Diffuser vers un hub d’événements
    • Envoyer à Log Analytics
    • Envoyer à une solution de partenaire
  4. Choisissez la catégorie de journal et la catégorie de métrique à superviser, puis spécifiez la durée de conservation (en jours). La durée de conservation s’applique uniquement au compte de stockage.

  5. Sélectionnez Enregistrer.

Remarque

Il peut s’écouler jusqu’à 15 minutes entre le moment où les journaux ou les métriques sont émis et le moment où ils apparaissent dans votre compte de stockage, votre hub d’événements ou Log Analytics. Si l’instance Azure Spring Apps est supprimée ou déplacée, l’opération ne s’exécute pas en cascade vers les ressources Paramètres de diagnostic. Les ressources Paramètres de diagnostic doivent être supprimées manuellement avant l’opération sur le parent, l’instance Azure Spring Apps. Dans le cas contraire, si une nouvelle instance Azure Spring Apps est configurée avec le même ID de ressource que celle qui a été supprimée, ou si l’instance Azure Spring Apps est redéplacée dans son emplacement d’origine, les ressources Paramètres de diagnostic précédentes continuent de l’étendre.

Afficher les journaux et les métriques

Il existe plusieurs méthodes pour afficher les journaux et les métriques, comme décrit dans les titres suivants.

Utiliser le panneau Journaux

  1. Dans le portail Azure, accédez à votre instance Azure Spring Apps.

  2. Pour ouvrir le volet Recherche dans les journaux, sélectionnez Journaux.

  3. Dans la zone de recherche Tables

    • Pour afficher les journaux, saisissez une requête simple telle que :
    AppPlatformLogsforSpring
    | limit 50
    
    • Pour afficher les métriques, saisissez une requête simple telle que :
    AzureMetrics
    | limit 50
    
  4. Pour afficher le résultat de la recherche, sélectionnez Exécuter.

Utiliser Log Analytics

  1. Dans le Portail Azure, dans le volet de gauche, sélectionnez Log Analytics.

  2. Sélectionnez l’espace de travail Log Analytics que vous avez choisi quand vous avez ajouté vos paramètres de diagnostic.

  3. Pour ouvrir le volet Recherche dans les journaux, sélectionnez Journaux.

  4. Dans la zone de recherche Tables,

    • pour afficher les journaux, saisissez une requête simple telle que :
    AppPlatformLogsforSpring
    | limit 50
    
    • pour afficher les métriques, saisissez une requête simple telle que :
    AzureMetrics
    | limit 50
    
  5. Pour afficher le résultat de la recherche, sélectionnez Exécuter.

  6. Vous pouvez rechercher les journaux de l’application ou de l’instance spécifique en définissant une condition de filtre :

    AppPlatformLogsforSpring
    | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName"
    | limit 50
    

    Remarque

    == respecte la casse, mais pas =~.

Pour en savoir plus sur le langage de requête qui est utilisé dans Log Analytics, consultez Requêtes de journal Azure Monitor. Pour interroger tous vos journaux Log Analytics à partir d’un client centralisé, consultez Explorateur de données Azure.

Utiliser votre compte de stockage

  1. Sur le Portail Azure, recherchez Comptes de stockage dans le volet de navigation gauche ou dans la zone de recherche.
  2. Sélectionnez le compte de stockage que vous avez choisi quand vous avez ajouté vos paramètres de diagnostic.
  3. Pour ouvrir le volet Conteneur d’objets blob, sélectionnez Objets blob.
  4. Pour consulter les journaux d’application, recherchez un conteneur appelé insights-logs-applicationconsole.
  5. Pour consulter les métriques des applications, recherchez un conteneur appelé insights-metrics-pt1m.

Pour en savoir plus sur l’envoi d’informations de diagnostic à un compte de stockage, consultez Stocker et afficher des données de diagnostic dans le stockage Azure.

Utiliser votre hub d’événements

  1. Sur le Portail Azure, recherchez Event Hubs dans le volet de navigation gauche ou dans la zone de recherche.

  2. Recherchez et sélectionnez le hub d’événements que vous avez choisi quand vous avez ajouté vos paramètres de diagnostic.

  3. Pour ouvrir le volet Liste des hubs d’événements, sélectionnez Hubs d’événements.

  4. Pour consulter les journaux d’application, recherchez un hub d’événements appelé insights-logs-applicationconsole.

  5. Pour consulter les métriques des applications, recherchez un hub d’événements appelé insights-metrics-pt1m.

Pour en savoir plus sur l’envoi d’informations de diagnostic à un hub d’événements, consultez Diffusion des données de Diagnostics Azure dans le chemin réactif à l’aide d’Event Hubs.

Analyser les journaux

Azure Log Analytics s’exécute avec un moteur Kusto afin que vous puissiez interroger vos journaux à des fins d’analyse. Pour obtenir une présentation rapide de l’interrogation des journaux à l’aide de Kusto, passez en revue le tutoriel sur Log Analytics.

Les journaux d’application fournissent des informations critiques et des journaux d’activité détaillés sur l’intégrité de votre application, ses performances, et bien plus encore. Les sections suivantes présentent quelques requêtes simples pour vous aider à comprendre les états actuels et passés de votre application.

Afficher les journaux d’application à partir d’Azure Spring Apps

Pour consulter la liste des journaux d’application à partir d’Azure Spring Apps, triés par heure avec les journaux les plus récents affichés en premier, exécutez la requête suivante :

AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| sort by TimeGenerated desc

Afficher les entrées de journaux contenant des erreurs ou des exceptions

Pour examiner les entrées de journal non triées qui mentionnent une erreur ou une exception, exécutez la requête suivante :

AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| where Log contains "error" or Log contains "exception"

Utilisez cette requête pour rechercher des erreurs, ou modifiez les termes de la requête afin de rechercher des codes d’erreur ou des exceptions spécifiques.

Afficher le nombre d’erreurs et d’exceptions signalées par votre application au cours de la dernière heure

Pour créer un graphique à secteurs indiquant le nombre d’erreurs et d’exceptions journalisées par votre application au cours de la dernière heure, exécutez la requête suivante :

AppPlatformLogsforSpring
| where TimeGenerated > ago(1h)
| where Log contains "error" or Log contains "exception"
| summarize count_per_app = count() by AppName
| sort by count_per_app desc
| render piechart

Afficher les entrées du journal d’entrée contenant un hôte spécifique

Pour consulter les entrées de journal générées par un hôte spécifique, exécutez la requête suivante :

AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and Host == "ingress-asc.test.azuremicroservices.io" 
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated

Utilisez cette requête pour trouver la valeur Status de la réponse, RequestTime et d’autres propriétés des journaux d’entrée de cet hôte spécifique.

Afficher les entrées du journal d’entrée pour une valeur requestId spécifique

Pour consulter les entrées de journal d’une valeur requestId<request_ID> spécifique, exécutez la requête suivante :

AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and ReqId == "<request_ID>" 
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated

Afficher les entrées du journal de génération pour une application spécifique

Pour consulter les entrées de journal d’une application spécifique pendant le processus de génération, exécutez la requête suivante :

AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>"
| sort by TimeGenerated

Afficher les entrées du journal de génération pour une application spécifique dans une étape de génération spécifique

Pour consulter les entrées de journal d’une application spécifique dans une étape de génération spécifique, exécutez la requête suivante. Remplacez l’espace réservé <app-name> par le nom de votre application. Remplacez l’espace réservé <build-stage> par l’une des valeurs suivantes, qui représentent les étapes du processus de génération : prepare, detect, restore, analyze, build, export ou completion.

AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>" and ContainerName == "<build-stage>"
| sort by TimeGenerated

Afficher les journaux VMware Spring Cloud Gateway dans le plan Entreprise

Pour passer en revue les entrées de journal pour les journaux VMware Spring Cloud Gateway dans le plan Entreprise, exécutez la requête suivante :

AppPlatformSystemLogs 
| where LogType == "SpringCloudGateway"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Un autre composant, nommé Spring Cloud Gateway Operator, contrôle le cycle de vie de Spring Cloud Gateway et des itinéraires. Si vous rencontrez des problèmes avec l’itinéraire qui ne prend pas effet, case activée les journaux de ce composant. Pour passer en revue les entrées de journal pour l’opérateur VMware Spring Cloud Gateway dans le plan Entreprise, exécutez la requête suivante :

AppPlatformSystemLogs 
| where LogType == "SpringCloudGatewayOperator"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Afficher le service de configuration d’application pour les journaux Tanzu dans le plan Entreprise

Pour passer en revue les entrées de journal pour le service de configuration d’application pour les journaux Tanzu dans le plan Entreprise, exécutez la requête suivante :

AppPlatformSystemLogs 
| where LogType == "ApplicationConfigurationService"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Afficher les journaux du Registre des services Tanzu dans le plan Entreprise

Pour passer en revue les entrées de journal pour les journaux du Registre des services Tanzu dans le plan Entreprise, exécutez la requête suivante :

AppPlatformSystemLogs 
| where LogType == "ServiceRegistry"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Afficher le portail d’API pour les journaux VMware Tanzu dans le plan Entreprise

Pour passer en revue les entrées de journal pour le portail API pour les journaux VMware Tanzu dans le plan Entreprise, exécutez la requête suivante :

AppPlatformSystemLogs 
| where LogType == "ApiPortal"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

En savoir plus sur l’interrogation des journaux d’application

Azure Monitor fournit une prise en charge étendue de l’interrogation des journaux d’application à l’aide de Log Analytics. Pour plus d’informations sur ce service, consultez Bien démarrer avec les requêtes de journal dans Azure Monitor. Pour plus d’informations sur la création de requêtes pour analyser vos journaux d’application, consultez Vue d’ensemble des requêtes de journal dans Azure Monitor.

Forum aux questions (FAQ)

Comment convertir des traces de pile Java à plusieurs lignes en une ligne unique ?

Il existe une solution de contournement pour convertir les traces de pile à plusieurs lignes en une ligne unique. Vous pouvez modifier la sortie du journal Java pour remettre en forme les messages de trace de pile, en remplaçant les caractères de saut de ligne par un jeton. Si vous utilisez la bibliothèque Logback Java, vous pouvez remettre en forme les messages de trace de pile en ajoutant %replace(%ex){'[\r\n]+', '\\n'}%nopex comme suit :

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                level: %level, message: "%logger{36}: %msg", exceptions: "%replace(%ex){'[\r\n]+', '\\n'}%nopex"%n
            </pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

Vous pouvez ensuite remplacer le jeton par des caractères de nouvelle ligne dans Log Analytics comme indiqué ci-dessous :

AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')

Vous pourrez peut-être appliquer la même stratégie pour d’autres bibliothèques de journaux Java.

Étapes suivantes