VENDITE: 1-800-867-1389

Modifiche di rilievo in Diagnostica Azure (SDK 2.0)

Aggiornamento: dicembre 2014

La libreria di Diagnostica di Microsoft Azure (Microsoft.WindowsAzure.Diagnostics.dll) in Microsoft Azure SDK per .NET versione 2.0 include modifiche di rilievo rispetto alla versione 1.8. La libreria client di Diagnostica di Microsoft Azure è stata aggiornata in modo da non presentare più una dipendenza dalla libreria client di archiviazione versione 1.7, pertanto possono essere necessarie modifiche nel codice in uso. Grazie a questa modifica risulta più semplice per l'applicazione usare le versioni più recenti della libreria client di archiviazione. Questo argomento fornisce informazioni sulle novità della versione 2.0 rispetto alla 1.8 e suggerimenti per la migrazione delle applicazioni esistenti alla versione 2.0.

Le dipendenze dalla libreria client di archiviazione sono state rimosse dalle API Microsoft.WindowsAzure.Diagnostics e Microsoft.WindowsAzure.Diagnostics.Management. Diversi metodi accettavano un oggetto CloudStorageAccount come parametro di input per specificare l'account di archiviazione di Microsoft Azure associato all'applicazione (l'account di archiviazione dove viene archiviata la configurazione di Diagnostica applicazioni). Questi metodi sono stati sostituiti da nuovi metodi che ora accettano una stringa di connessione anziché un oggetto CloudStorageAccount per specificate l'account di archiviazione.

La tabella seguente illustra il mapping tra metodi deprecati e nuovi nello spazio dei nomi Microsoft.WindowsAzure.Diagnostics.Management:

 

Versione 1.8 (deprecata) Versione 2.0 (nuova)

CloudAccountDiagnosticMonitorExtensions.CreateDeploymentDiagnosticManager(this CloudStorageAccount storageAccount,string deploymentId)

CreateDeploymentDiagnosticManager

CloudAccountDiagnosticMonitorExtensions.CreateRoleInstanceDiagnosticManager(this CloudStorageAccount storageAccount, string deploymentId, string roleName, string roleInstanceId)

CreateRoleInstanceDiagnosticManager

OnDemandTransferInfo.FromQueueMessage(CloudQueueMessage queueMessage)

FromQueueMessage

DeploymentDiagnosticManager.DeploymentDiagnosticManager(CloudStorageAccount storageAccount, string deploymentId)

DeploymentDiagnosticManager

RoleInstanceDiagnosticManager(CloudStorageAccount storageAccount, string deploymentId, string roleName, string roleInstanceId)

RoleInstanceDiagnosticManager

La tabella seguente illustra il mapping tra metodi deprecati e nuovi nello spazio dei nomi Microsoft.WindowsAzure.Diagnostics :

Microsoft.WindowsAzure.Diagnostics

Versione 1.8 (deprecata) Versione 2.0 (nuova)

DiagnosticMonitor.Start(CloudStorageAccount storageAccount, DiagnosticMonitorConfiguration initialConfiguration)

StartWithConnectionString

DiagnosticMonitor.UpdateStorageAccount(CloudStorageAccount storageAccount)

UpdateStorageAccount

L'esempio seguente illustra la modifica remota della configurazione di diagnostica di tutte le istanze in un ruolo specifico usando un oggetto DeploymentDiagnosticManager. Due contatori delle prestazioni vengono abilitati per la raccolta e le modifiche di configurazione vengono salvate. L'esempio usa la versione 1.8 dell'assembly Microsoft.WindowsAzure.Diagnostics.dll e il costruttore DeploymentDiagnosticManager accetta un oggetto CloudStorageAccount come parametro di input. L'oggetto CloudStorageAccount viene usato per specificare l'account di archiviazione in cui viene archiviata la configurazione di diagnostica dell'applicazione.

// 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 = "2f10410d4a194b0fa8863365674828ba";
string roleName = "WebRole1";

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);

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

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

// Add a performance counter for processor time.
PerformanceCounterConfiguration pccCPU = new PerformanceCounterConfiguration();
pccCPU.CounterSpecifier = @"\Processor(_Total)\% Processor Time";
pccCPU.SampleRate = perfSampleRate;

// Add a performance counter for available memory.
PerformanceCounterConfiguration pccMemory = new PerformanceCounterConfiguration();
pccMemory.CounterSpecifier = @"\Memory\Available Mbytes";
pccMemory.SampleRate = perfSampleRate;

// 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);

   //Update the configuration
   roleInstance.SetCurrentConfiguration(currentConfiguration);
}

Di seguito è illustrato l'esempio precedente riscritto in modo da usare la versione 2.0 dell'assembly Microsoft.WindowsAzure.Diagnostics.dll. Il costruttore DeploymentDiagnosticManager accetta ora una stringa di connessione all'account di archiviazione anziché un oggetto CloudStorageAccount.

// 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 = "e2ab8b6667644666ba627bdf6f5e4daa";
string roleName = "WebRole1";

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

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

// Use 45 seconds for the performance counter sample rate.
TimeSpan perfSampleRate = TimeSpan.FromSeconds(45.0);

// Add a performance counter for processor time.
PerformanceCounterConfiguration pccCPU = new PerformanceCounterConfiguration();
pccCPU.CounterSpecifier = @"\Processor(_Total)\% Processor Time";
pccCPU.SampleRate = perfSampleRate;

// Add a performance counter for available memory.
PerformanceCounterConfiguration pccMemory = new PerformanceCounterConfiguration();
pccMemory.CounterSpecifier = @"\Memory\Available Mbytes";
pccMemory.SampleRate = perfSampleRate;

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

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

   roleInstance.SetCurrentConfiguration(currentConfiguration);
}

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.
Mostra:
© 2015 Microsoft