2010-10-02 6 views
0

Je suis en train de saisir les PerformanceCounters suivantes sur l'azur WebRole:Impossible de capturer les compteurs de performance pour un rôle Web Azure

private string[] perfCounters = { @"\Processor(_Total)\% Processor Time", 
           @"\ASP.NET Applications(__Total__)\Requests/Sec", 
           @"\Memory\Available Bytes", 
           @"\ASP.NET\Request Execution Time", 
           @"\ASP.NET\Requests Queued"}; 

J'ai dans mes WebRole.cs le code suivant pour permettre la capture de ces compteurs perf comme ceci:

DiagnosticMonitorConfiguration config = DiagnosticMonitor.GetDefaultInitialConfiguration(); 

    int loggingInterval = Int32.Parse(RoleEnvironment.GetConfigurationSettingValue("loggingInterval")); 
    config.Logs.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(loggingInterval); 

    foreach (String s in perCounters) 
    { 
     PerformanceCounterConfiguration procTimeConfig = new PerformanceCounterConfiguration(); 
     procTimeConfig.CounterSpecifier = s; 
     procTimeConfig.SampleRate = System.TimeSpan.FromMinutes(1.0); 
     config.PerformanceCounters.DataSources.Add(procTimeConfig); 
    } 
    config.PerformanceCounters.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(1.0); 
    DiagnosticMonitor.Start("DiagnosticsConnectionString", config); 

comme vous le voyez, je suis en train de la période prévue xfer des compteurs de perf à 1 min.

Maintenant, je suis capable d'obtenir ces compteurs dans la table WADPerformanceCounters sur ma structure de développement, mais je ne suis pas capable de les obtenir sur le nuage azur? Quelqu'un peut-il indiquer ce que je pourrais faire de mal ici?

Kapil

Répondre

1

Le problème n'était apparemment pas aux endroits que je regardais. Le correctif pour cela était assez simple, j'ai supprimé le déploiement préexistant et téléchargé mon fichier cspkg comme un nouveau déploiement. Il semble que les compteurs de perf sont ramassés sur la base d'un fichier xml sous le blob wad-control-container. Ce fichier xml est créé pour chaque déploiement. J'ai réalisé que le fichier xml n'était pas mis à jour dans mon cas, et quand j'ai supprimé le déploiement et créé un nouveau déploiement, il prenait la nouvelle valeur.

Merci Kapil

+1

Faire un déploiement VIP-swap a fait l'affaire pour moi. – camflint

0

Puisque vous obtenez des compteurs dans Dev Fabric, mais pas dans Azure Fabric, laissez-moi demander à l'évidence: Avez-vous changé votre DiagnosticsConnectionString paramètre pour référencer votre chaîne de connexion Azure Storage?

+0

Oui J'ai fait tout cela. En fait, je suis en mesure d'obtenir dans ma table WADLogs (Trace logs de par application cloud) dans mon espace de stockage azur, mais pas dans mon WADPerformanceCountersTable – Kapil

1

Toute modification des paramètres de diagnostic mis à jour que lorsqu'un déploiement complet est effectué et non sur une mise à jour. Pour effectuer un déploiement complet, accédez au profil de publication, aux paramètres et aux paramètres avancés, puis décochez la case Mise à jour de déploiement. Lorsque vous publiez cela, il s'agira d'un déploiement complet.

Il est également possible de mettre à jour vos paramètres sans effectuer de déploiement. Dans l'Explorateur de serveurs, accédez à Windows Azure => Services cloud => => Production => Votre rôle de travail et cliquez dessus avec le bouton droit de la souris, puis cliquez sur Mettre à jour les paramètres de diagnostic. Cela récupérera les paramètres de diagnostic actuels réellement déployés, et vous pouvez les mettre à jour ici sans effectuer de déploiement. Bien sûr, si vous voulez vérifier que votre code est correctement paramétré, alors vous devrez effectuer un déploiement complet tel que mentionné ci-dessus pour exercer votre code et ensuite vérifier.

http://msdn.microsoft.com/library/azure/dn186185.aspx

Questions connexes