내보내기(0) 인쇄
모두 확장

진단 모니터 구성 원격 변경

업데이트 날짜: 2013년 12월

클라우드 서비스를 배포한 후에는 DeploymentDiagnosticManager 클래스를 사용하여 Windows Azure 외부의 응용 프로그램에서 실행 중인 코드에서 진단 모니터의 구성을 원격으로 변경할 수 있습니다. 이 클래스에서 하나 이상의 역할 인스턴스에 대해 진단 모니터를 수정할 수 있습니다. 또한 RoleInstanceDiagnosticManager 클래스를 사용하여 단일 역할 인스턴스에 대해 진단 모니터의 구성을 변경할 수도 있습니다.

진단 모니터 구성 원격 변경

다음 예제에서는 클라우드 서비스에서 두 개의 성능 카운터 컬렉션을 원격으로 업데이트합니다. %Program Files%\Microsoft SDKs\Windows Azure.NET SDK\<version-num>\ref\ 디렉터리에 설치된 Microsoft.WindowsAzure.Diagnostics.dll에 프로젝트 참조를 추가합니다.

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

Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft