Azure 診断における重大な変更 (SDK 2.0)

Azure 診断における重大な変更 (SDK 2.0)

更新日: 2015年11月

Microsoft Azure SDK for .NET バージョン 2.0 の Microsoft Azure 診断ライブラリ (Microsoft.WindowsAzure.Diagnostics.dll) には、バージョン 1.8 のライブラリからの重大な変更が含まれます。Microsoft Azure 診断クライアント ライブラリが更新されたため、ストレージ クライアント ライブラリ バージョン 1.7 への依存関係がなくなり、コードの変更が必要になる場合があります。この変更によって、アプリケーションで新しいバージョンのストレージ クライアント ライブラリが使いやすくなります。このトピックでは、バージョン 1.8 と 2.0 の間で行われた変更内容、既存のアプリケーションをバージョン 2.0 のリリースに移行する際に役立つヒントについて説明します。

ストレージ クライアント ライブラリへの依存関係は、Microsoft.WindowsAzure.Diagnostics および Microsoft.WindowsAzure.Diagnostics.Management API から削除されました。いくつかのメソッドでは、アプリケーションに関連付けられている Microsoft Azure ストレージ アカウント (アプリケーション診断構成が格納されているストレージ アカウント) を指定するために入力パラメーターとして CloudStorageAccount オブジェクトを受け入れていました。これらのメソッドは、ストレージ アカウントを指定するために、CloudStorageAccount の代わりに接続文字列を受け入れるようになった新しいメソッドに置き換えられました。

次の表に、Microsoft.WindowsAzure.Diagnostics.Management 名前空間における非推奨メソッドと新しいメソッドとのマッピングを示します。

 

バージョン 1.8 (非推奨) バージョン 2.0 (新規)

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

次の表に、Microsoft.WindowsAzure.Diagnostics 名前空間における非推奨メソッドと新しいメソッドとのマッピングを示します。

Microsoft.WindowsAzure.Diagnostics

バージョン 1.8 (非推奨) バージョン 2.0 (新規)

DiagnosticMonitor.Start(CloudStorageAccount storageAccount, DiagnosticMonitorConfiguration initialConfiguration)

StartWithConnectionString

DiagnosticMonitor.UpdateStorageAccount(CloudStorageAccount storageAccount)

UpdateStorageAccount

次の例では、DeploymentDiagnosticManager オブジェクトを使用して、特定のロールのすべてのインスタンスの診断構成をリモートで変更します。2 つのパフォーマンス カウンターが収集に対して有効になっており、構成変更が保存されています。この例ではバージョン 1.8 の Microsoft.WindowsAzure.Diagnostics.dll アセンブリが使用されており、DeploymentDiagnosticManager コンストラクターは入力パラメーターとして CloudStorageAccount オブジェクトを受け入れています。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 = "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);
}

以下は、前の例がバージョン 2.0 の Microsoft.WindowsAzure.Diagnostics.dll アセンブリを使用するように書き直されたものです。これで、DeploymentDiagnosticManager コンストラクターは、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);
}

表示:
© 2016 Microsoft