L’équipe Windows Azure Storage a récemment annoncé la disponibilité d’une fonctionnalité très attendue: les Windows Azure Storage Analytics, qui permettent de suivre, d’analyser et de mesurer l’utilisation de votre stockage (Blobs, Tables et Queues). Voici quelques ressources décrivant en détail ces fonctionnalités:

Pour pouvoir jouer un petit peu avec ces nouvelles fonctionnalités, encore faut-il pouvoir les activer; or, il n’existe pour l’instant pas d’interface graphique permettant de configurer les différentes options. La seule possibilité est d’utiliser l’API REST pour accéder aux propriétés de configuration. L’interface Web de Steve vous permet d’éditer votre configuration en ligne, mais je voulais créer un utilitaire en ligne de commande pouvant être lancé directement depuis votre machine.

Utilisation:

Téléchargez l’installeur MSI puis lancez-le sur votre machine. Il devrait aller s’installer dans un endroit comme C:\Program Files (x86)\Microsoft\Storage Analytics command-line tool\. Vous pouvez alors ouvrir une ligne de commande et vous déplacer dans ce répertoire.

La première chose que vous pouvez faire est de récupérer la configuration de votre Storage Analytics:

StorageAnalytics.exe -a <account> -k <key> -t blob -get

Vous pouvez remplacer “-t blob” par “-t table” pour travailler sur le Table Storage plutôt que le Blob Storage.

Cela va vous afficher votre configuration en format XML, comme ceci:

<StorageServiceProperties>
  <Logging>
    <Version>1.0</Version>
    <Read>true</Read>
    <Write>true</Write>
    <Delete>false</Delete>
    <RetentionPolicy>
      <Enabled>false</Enabled>
    </RetentionPolicy>
  </Logging>
  <Metrics>
    <Version>1.0</Version>
    <Enabled>true</Enabled>
    <IncludeAPIs>true</IncludeAPIs>
    <RetentionPolicy>
      <Enabled>false</Enabled>
    </RetentionPolicy>
  </Metrics>
</StorageServiceProperties>

Vous pouvez rediriger cet affichage dans un fichier en ajoutant “> blob.xml” à la fin de la ligne de commande:

StorageAnalytics.exe -a <account> -k <key> -t blob –get > C:\temp\blob.xml

Vous pouvez alors éditer le fichier pour modifier la configuration.

Pour renvoyer le fichier modifié, voici la syntaxe:

StorageAnalytics.exe -a <account> -k <key> -t blob -set C:\temp\blob.xml

Faites attention à la structure du fichier XML (lisez la documentation!) Windows Azure vous retournera un code d’erreur explicite si vote XML est incorrect.

Finalement, j’ai ajouté une option vous permettant de lister les logs disponibles (il faut attendre un petit moment avant qu’ils apparaissent).

StorageAnalytics.exe -a <account> -k <key> -t blob –list

Cela devrait vous afficher quelque chose comme:

<EnumerationResults ContainerName="http://tcontepub.blob.core.windows.net/$logs/">
  <Blobs>
    <Blob>
      <Name>blob/2011/08/10/1600/000000.log</Name>
      <Url>http://tcontepub.blob.core.windows.net/$logs/blob/2011/08/10/1600/000000.log</Url>
      <Properties>
        <Last-Modified>Wed, 10 Aug 2011 16:21:01 GMT</Last-Modified>
        <Etag>0x8CE2590A11EE39A</Etag>
        <Content-Length>586</Content-Length>
        <Content-Type>application/octet-stream</Content-Type>
        <Content-Encoding />
        <Content-Language />
        <Content-MD5 />
        <Cache-Control />
        <BlobType>BlockBlob</BlobType>
        <LeaseStatus>unlocked</LeaseStatus>
      </Properties>
    </Blob>
    <Blob>
      <Name>blob/2011/08/10/1600/000001.log</Name>
      <Url>http://tcontepub.blob.core.windows.net/$logs/blob/2011/08/10/1600/000001.log</Url>
      <Properties>
        <Last-Modified>Wed, 10 Aug 2011 16:29:47 GMT</Last-Modified>
        <Etag>0x8CE2591DADFAEDF</Etag>
        <Content-Length>294</Content-Length>
        <Content-Type>application/octet-stream</Content-Type>
        <Content-Encoding />
        <Content-Language />
        <Content-MD5 />
        <Cache-Control />
        <BlobType>BlockBlob</BlobType>
        <LeaseStatus>unlocked</LeaseStatus>
      </Properties>
    </Blob>

… etc.

J’espère que vous trouverez cet utilitaire intéressant en l’état, mais je suis sûr que vous voudrez surtout l’adapter à vos propres besoins!

Voici le code source pour l’utilitaire, c’est un unique fichier source C#, Program.cs. Il utilise la librairie StorageClient de Windows Azure pour signer les requêtes HTTP sortantes, et l’excellente librairie NDesk.Options pour interpréter les paramètres (disponible via NuGet).

Vous pouvez télécharger une archive ZIP complète de la solution Visual Studio 2010 SP1. Ne vous inquiétez pas si un assistant de conversion se déclenche, c’est peut-être simplement du à une différence de version du SDK Windows Azure. Vous aurez peut-être besoin d’ajuster l’emplacement de la librairie StorageClient en C:\Program Files\Windows Azure SDK\v1.4\ref\Microsoft.WindowsAzure.StorageClient.dll.

Vous pouvez aussi consulter le source directement sur GitHub, et le voici inclus ci-dessous.