Do you want to change the diagnostic level or other diagnostic configuration settings in Azure at runtime? Doing this is very easy thanks to the DeploymentDiagnosticManager class .(See http://msdn.microsoft.com/en-us/library/ee830424.aspx )
To remotely change the configuration
Create a small console application.
Add a referenceMicrosoft.WindowsAzure.Diagnostics.dll file .
Create a CloudStorageAccount instance.
var storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=AccountName;AccountKey=AccountKey");
Create an instance of the DeploymentDiagnosticManager. :
var diagManager = new DeploymentDiagnosticManager(storageAccount, "<DeploymentID>");
The<DeploymentID> can be found on the Azure Management Portal.
Create a role instance diagnostic manager.
var instanceManagers = diagManager.GetRoleInstanceDiagnosticManagersForRole("<RoleName>");
The <RoleName> can be found on the Azure Management Portal.
Specify the configuration information that you want to change. The following code example shows how to set performance counter information:
PerformanceCounterConfiguration pccCPU = new PerformanceCounterConfiguration(); pccCPU.CounterSpecifier = @"\Processor(_Total)\% Processor Time"; pccCPU.SampleRate = TimeSpan.FromSeconds(5); PerformanceCounterConfiguration pccMemory = new PerformanceCounterConfiguration(); pccMemory.CounterSpecifier = @"\Memory\Available Mbytes"; pccMemory.SampleRate = TimeSpan.FromSeconds(5);
Change the configuration for each instance of the role. The following code example shows how to iterate through the role instances and change the configuration:
foreach (var roleInstance in instanceManagers) { DiagnosticMonitorConfiguration currentConfiguration = roleInstance.GetCurrentConfiguration(); currentConfiguration.PerformanceCounters.DataSources.Add(pccCPU); currentConfiguration.PerformanceCounters.DataSources.Add(pccMemory); //Update the configuration roleInstance.SetCurrentConfiguration(currentConfiguration); }
Save and build the project.