Exporter (0) Imprimer
Développer tout

Modifier à distance la configuration du moniteur de diagnostic

Mis à jour: décembre 2013

Après avoir déployé un service cloud, modifiez à distance la configuration du moniteur de diagnostic à partir du code exécuté dans une application en dehors de Windows Azure à l'aide de la classe DeploymentDiagnosticManager. À partir de cette classe, modifiez les moniteurs de diagnostic pour une ou plusieurs instances de rôles. Vous pouvez également modifier la configuration du moniteur de diagnostic pour une seule instance de rôle à l'aide de la classe RoleInstanceDiagnosticManager.

Modifier à distance la configuration du moniteur de diagnostic

L'exemple ci-dessous met à jour à distance la collection de deux compteurs de performances dans un service cloud. Ajoutez une référence de projet à Microsoft.WindowsAzure.Diagnostics.dll, qui est installé dans le répertoire %Program Files%\Microsoft SDKs\Windows Azure.NET SDK\<num_version>\ref\.

using Microsoft.WindowsAzure.Diagnostics; 
using Microsoft.WindowsAzure.Diagnostics.Management;

...

// Get the connection string. It's recommended that you store the connection string in your web.config or app.config file.
// Use the ConfigurationManager type to retrieve your storage connection string.  You can find the account name and key in
// the Windows Azure Management Portal (http://manage.windowsazure.com).
//string connectionString = "DefaultEndpointsProtocol=https;AccountName=<AccountName>;AccountKey=<AccountKey>";
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString;

// The deployment ID and role name for your application can be obtained from the Windows Azure Management Portal (http://manage.windowsazure.com).  
// See your application dashboard under Cloud Services.
string deploymentID = "28267ed8caf3424eab3f0b01acdd7281";
string roleName = "WebRole1";

// Get the DeploymentDiagnosticManager object for your deployment.
DeploymentDiagnosticManager diagManager = new DeploymentDiagnosticManager(connectionString, deploymentID);

// Get the RoleInstanceDiagnosticManager objects for each instance of your role.
IEnumerable<RoleInstanceDiagnosticManager> instanceManagers = diagManager.GetRoleInstanceDiagnosticManagersForRole(roleName);

// Update the sample rate for some performance counters.
PerformanceCounterConfiguration pccCPU = new PerformanceCounterConfiguration();
pccCPU.CounterSpecifier = @"\Processor(_Total)\% Processor Time";
pccCPU.SampleRate = TimeSpan.FromSeconds(20);

PerformanceCounterConfiguration pccMemory = new PerformanceCounterConfiguration();
pccMemory.CounterSpecifier = @"\Memory\Available Mbytes";
pccMemory.SampleRate = TimeSpan.FromSeconds(20);

// Iterate through the role instances and update the configuration.
foreach (var roleInstance in instanceManagers)
{
   DiagnosticMonitorConfiguration currentConfiguration = roleInstance.GetCurrentConfiguration();

   currentConfiguration.PerformanceCounters.DataSources.Add(pccCPU);
   currentConfiguration.PerformanceCounters.DataSources.Add(pccMemory);

   roleInstance.SetCurrentConfiguration(currentConfiguration);
}

Afficher:
© 2014 Microsoft