Nouvelles Chroniques d'Amethyste

Penser au Sens, pas au Verbe

Diagnostic des Azure Web Site

Poster un commentaire

Windows Azure met à disposition un service de diagnostic des Web Site prêt à l’emploi. L’objectif de cet article est d’explorer leur mise en œuvre pratique. Azure fournit la plomberie pour instrumenter aussi bien votre application que les informations loguées par le serveur ou le déploiement.

Ces services s’appellent respectivement Diagnostics d’Application (Application Diagnostics) et Diagnostics de site (Site Diagnostics).

Les diagnostics de site vous donnent accès à:

  • Logs d’erreur détaillés
    Les statuts Http > 400 notamment
  • Requêtes en échec
  • Logs du serveur Web
    Toutes les transactions Http vers le Web Site au format W3C étendu.
  • Logs de déploiement
    Contrairement aux autres logs, les logs de dépliement sont toujours actifs

Les diagnostics d’application capturent les informations fournies par ASP.NET via System.Diagnostics.Trace.

Nous en savons assez pour passer aux démonstrations.

Notez un point important: les copies d’écran ont été faites avec Visual Studio 2013 et les Azure Tools installés.

diagnostics de site

 

Commencez par créer et déployer un Web Site quelconque. Si vous ne savez pas comment faire:

2014-06-10_21-58-32

L’activation se fait avec l’option Web Server logging où vous choisissez Storage ou File System.

Concrètement Storage sauvegarde les logs dans un blob, sinon dans un fichier.

Avec File System:

2014-06-10_22-03-13

 

On sauvegarde jusqu’à 35 Mo de données sur une période maximale de 14 jours. Par défaut l n’y a pas de période de rétention, mais le quota est toujours là et ne peut dépasser 100 Mo.

Si vous choisissez Storage:

2014-06-10_22-58-43

Cliquer sur Manage storage pour choisir un storage existant ou bien en créer un:

2014-06-10_23-00-13 Vous n’aurez qu’à recliquer sur ce menu pour afficher votre sélection par la suite.

 

Nous allons également mettre à ON les options: DETAILED ERROR MESSAGE et FAILED REQUEST TRACING. Il ne reste plus qu’à sauvegarder en cliquant sur SAVE:

2014-06-10_22-08-33

Et pour tester, il suffit de provoquer quelques erreurs de requêtes, le plus facile étant une erreur 404. Allez y, lâchez vous!

 

La suite dépend de l’option de stockage sélectionnée.

  • Si le stockage se fait sur le FILE SYSTEM:

On télécharge les logs en FTP ou bien sous la forme d’archives zip via le SDK Windows Azure. Pour trouver les informations de log, il faut se rendre dans le Dashboard sur la partie Quick Glance:

2014-06-10_22-20-01

Il n’y a plus qu’à lancer un client Ftp. Deployment/FTP user est le logon que vous devrez utiliser.

Note: Si vous ne vous souvenez plus du mot de passe ou si cette information ne s’affiche pas, cliquez sur Reset deployment credential.

Le résultat peut ressembler à celui-ci:

2014-06-10_22-27-10

On trouve les logs de diagnostics application et site dans ces répertoires selon la nomenclature:

  • Logs d’application:
    \LogFiles\application
  • Requêtes en échec:
    \LogFiles\W3SVC#######
  • Erreurs détaillées:
    \FileLogs\DetailedErrors
  • Logs du serveur:
    \LogFiles\http\RawLogs
  • Logs de déploiement:
    \LogFiles\Git

 

Allez dans DetailedErrors. Vous trouverez autant de fichier html que de logs générés. Vous devriez retrouver vos erreurs 404.

2014-06-10_22-35-18

Explorez ensuite http\RawLogs et W3SVC1371902314.

Imprégnez vous de leur contenu pour être capable d’en parler à des collègues ou des clients. Vous devez avoir une idée claire du type d’informations que l’on peut trouver dans ces logs, même si vous n’avez pas en tête tous les détails.

 

Outre un client FTP, on peut également télécharger les fichiers de logs en ligne de commande.

Avec Azure Powershell:

Save-AzureWebSiteLog -Name NOMDUSITE

 

Note: si Azure PowerShell n’est pas installé ou bien s’il n’est pas configuré pour votre abonnement (subscription), rendez vous ici:

http://azure.microsoft.com/en-us/documentation/articles/install-configure-powershell

 

Avec Azure command line

azure site log download NOMDUSITE

 

Note: si vous n’avez pas installé ou configuré Azure Command Line:

http://azure.microsoft.com/en-us/documentation/articles/xplat-cli/

 

  • L’autre possibilité est d’utiliser un storage blob

Rendez vous dans le dashboard de votre blob

Cliquez sur Manage Access Keys pour retrouver les informations de connexion

2014-06-11_00-01-33

 

Connectez vous avec un client adapté, par exemple Visual Studio, CloudBerry…

Vous pouvez télécharger les logs de connexion au site.

2014-06-11_09-09-39

C’est le FILE SYSTEM qui fournit les logs les plus complets.

 

Depuis Visual Studio

 

  •  Lancez VS puis l’explorateur de serveur
  • Dépliez Windows Azure puis Web Site
    VS vous demandera de vous loguer avec votre abonnement Windows Azure si ce n’est déjà fait
  • Sélectionnez votre Web Site

2014-06-18_23-12-29

 

Vous pouvez déjà constater qu’il est possible de récupérer les logs dans le FILE SYSTEM également depuis VS.

  • Faites click droit sur le Web Site

2014-06-18_23-14-22

  • Sélectionnez View Settings
    L’onglet de configuration apparaît

2014-06-18_23-25-21

 

Le formulaire donne accès à divers paramétrages. Notez bien que ceux-ci sont immédiatement actifs après avoir fait Save.

  • Cliquez sur Logs

2014-06-18_23-27-10

 

Le message indique juste que les logs d’application ne sont pas actifs. Nous nous en occuperons dans le prochain chapitre.

Downlog Logs permet de télécharger les logs. Stream Logs concerne les logs d’application, nous en reparlerons plus loin.

 

Diagnostics d’application

Tout comme pour les diagnostics de site, on dispose d’un formulaire de paramétrage dans le portail:

2014-06-19_13-04-08

On clique sur ON pour activer les logs, puis on choisit le niveau de seuil (ici information). On doit ensuite paramétrer le stockage des logs. On n’a pas SYSTEM FILE, mais:

2014-06-19_13-08-04

Choisissons par exemple TABLE (mais on peut sélectionner les deux):

2014-06-19_13-09-57Comme on le voit chaque stockage peut être associé à un seuil particulier, à vous de voir comment vous gérez les choses. Manage table storage permet de sélectionner une table de logs existante ou d’en créer une.

L’option Blob Storage est absolument identique, on ne passera donc pas plus de temps la dessus.

Cliquez juste sur le bouton SAVE pour enregistrer ces paramètres.

 

Pour voir apparaître des logs, il va nous falloir modifier l’application puisque c’est elle qui se charge de les alimenter. Reprenons donc le source.

Il s’agit d’un test, l’intérêt profond a peu d’importance. Ajoutons cette ligne sur la page d’accueil:

<pre style="background: white; color: black; font-family: Consolas; font-size: 13px;">System.Diagnostics.Trace.TraceError("Chef, j'ai glissé");

Vérifiez que ça marche localement en faisant F5. La console de sortie de VS devrait afficher ceci:

2014-06-19_23-09-13

Note: n’oubliez pas de sélectionner la sortie Debug

Vous avez plus qu’à déployer et lancer le site.

Une façon de regarder ce qui a été logué dans les Table est d’utiliser Visual Studio:

  • Ouvrez l’explorateur de serveur dans Visual Studio
  • Sélectionnez Windows Azure (un login sera peut-être demandé)
  • Allez dans Storage et sélectionnez le compte de stockage utilisé
  • Sélectionnez la Table concernée

2014-06-19_23-34-59

Dans notre exemple les deux dernières lignes représente un log. Si on se déclare vers la droite nous en avons la confirmation:

2014-06-19_23-36-36

Vous pouvez obtenir plus d’information sur ces logs ici:

http://azure.microsoft.com/en-us/documentation/articles/web-sites-enable-diagnostic-log/

 

On peut aussi afficher ces logs directement dans la console de sortie de Visual Studio.

  • Faire clic droit sur le Web Site dans l’explorateur de serveur
  • Choisir View Streaming Log

2014-06-19_23-40-07

 

Il n’y a plus qu’à relancer l’application. Dès qu’un message est émit on le voit apparaître dans la fenêtre de sortie VS.

On arrête le mode interactif avec la commande Stop viewing logs:

2014-06-19_23-44-32

La console de sortie contient différentes commandes qui peuvent être utiles:

2014-06-19_23-49-18

 

 

On peut lancer ou arrêter le streaming et également sélectionner le type de logs que l’on voit s’afficher. Les logs peuvent également être téléchargés dans un fichier.

Tout est résumé dans le graphe ci-dessus.

Le lien suivant vous donnera plus de détails:

http://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-troubleshoot-visual-studio/

 

 Utilisation de trace.axd

On n’est pas obligé de faire le suivit dans les stockages Windows Azure. Trace.axd offre une alternative pour suivre les logs applicatifs.

  • Ajoutez cette déclaration au fichier de configuration:
<system.diagnostics>
    <trace>
        <listeners>
            <add name="WebPageTraceListener"
            type="System.Web.WebPageTraceListener,
            System.Web,
            Version=4.0.0.0,
            Culture=neutral,
            PublicKeyToken=b03f5f7f11d50a3a" />
       </listeners>
    </trace>
</system.diagnostics>
  •  Déployez le site
  • Lancez l’application
  • Lancez l’url ~/Trace.axd ensuite

Normalement vous devriez voir ceci apparaître:

2014-06-20_23-51-24

 

J’ai fais exprès d’oublier quelque chose dans le fichier de configuration afin de montrer une fonctionnalité bien pratique de l’explorateur de serveur Windows Azure de Visual Studio.

  • Sélectionnez le fichier de configuration dans l’explorateur et repérez le fichier de configuration

2014-06-20_23-54-24

 

  • Double cliquez sur le fichier
    Vous observez que Visual Studio le télécharge directement
  • Complétez le fichier comme indiqué dans le message d’erreur, mais en fait ajoutez plutôt ceci:
     <trace enabled="true" localOnly="false"/>
    
  • Sauvegardez le fichier comme un fichier normal

2014-06-20_23-56-37

 

Il est directement redescendu vers Windows Azure!

  • Relancez votre site
  • allez sur ~/Trace.axd
  • Vous devriez voir apparaître:

2014-06-21_00-02-58

  • Cliquez sur View Détails

Une série d’informations que je vous laisse découvrir s’ouvre, mais vérifiez que s’y trouve au moins:

2014-06-21_00-04-15

 

 

 

 

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s