我在理解和启用 Windows Azure 中的诊断模块以获取性能数据以及该模块提供的所有功能时遇到了很多困难。当我在互联网上的各种帖子中多次迷路时,我想发布一个清晰的指南来表达我的做法。
第 1 步:根据此处的说明安装 Windows Azure PowerShell 工具
第 2 步:以管理员身份运行 Windows Azure PowerShell。
第 3 步:获取当前的 Azure 发布设置
Get-AzurePublishSettingsFile
第 4 步:将文件保存在 know 文件夹中并删除名称中的所有空格。(例如 .publishsettings )
第五步:导入上面下载的发布设置文件。
Import-AzurePublishSettingsFile <path_to_downloaded>\<publishsettings_file_name>
第 6 步:创建 Windows Azure 项目。(这将创建一个包含许多配置文件的文件夹)
New-AzureServiceProject <myAzureProject>
第 6 步:添加 Windows Azure 角色
Add-AzurePHPWebRole <myWebRole>
第六步:进入项目文件夹,编辑ServiceDefinition.csdef,导入诊断模块。
<WebRole name="myWebRole" vmsize="ExtraSmall">
<Imports>
<Import moduleName="Diagnostics" />
</Imports>
..
第 7 步:编辑 ServiceConfiguration.Cloud.cscfg、ServiceConfiguration.Cloud.cscfg 和 ServiceConfiguration.cscfg(复制 ServiceConfiguration.Cloud.cscfg 并在此文件中重命名,如果不存在)和三个文件的存储连接字符串.
<Role name="myWebRole">
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<storage_name>;AccountKey=<storage_key>" />
</ConfigurationSettings>
..
第 6 步:将 diagnostics.wadcfg 文件添加到 azure 项目文件夹中的文件夹。它可以如下开始,但需要更改为您的确切规格以收集诊断信息。
<DiagnosticMonitorConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration" configurationChangePollInterval="PT1M" overallQuotaInMB="4096">
<DiagnosticInfrastructureLogs bufferQuotaInMB="10"
scheduledTransferLogLevelFilter="Error"
scheduledTransferPeriod="PT1M" />
<Logs bufferQuotaInMB="0"
scheduledTransferLogLevelFilter="Verbose"
scheduledTransferPeriod="PT1M" />
<Directories bufferQuotaInMB="0"
scheduledTransferPeriod="PT5M">
<!-- These three elements specify the special directories
that are set up for the log types -->
<CrashDumps container="wad-crash-dumps" directoryQuotaInMB="256" />
<FailedRequestLogs container="wad-frq" directoryQuotaInMB="256" />
<IISLogs container="wad-iis" directoryQuotaInMB="256" />
</Directories>
<PerformanceCounters bufferQuotaInMB="0" scheduledTransferPeriod="PT1M">
<!-- The counter specifier is in the same format as the imperative
diagnostics configuration API -->
<PerformanceCounterConfiguration
counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT5M" />
<PerformanceCounterConfiguration
counterSpecifier="\Memory\Available Mbytes" sampleRate="PT5M" />
</PerformanceCounters>
<WindowsEventLog bufferQuotaInMB="0"
scheduledTransferLogLevelFilter="Verbose"
scheduledTransferPeriod="PT5M">
<!-- The event log name is in the same format as the imperative
diagnostics configuration API -->
<DataSource name="System!*" />
</WindowsEventLog>
</DiagnosticMonitorConfiguration>
第 6 步:现在添加了配置更改,需要将新设置发布到 Windows Azure 云。
Publish-AzureServiceProject
或者
Publish-AzureServiceProject –ServiceName <myNewServiceName>
此过程将需要一些时间,并且您已启用 Windows Azure 服务的诊断功能。
重要说明:这是基本诊断设置的简要指南,更多自定义可以参考各种 Microsoft Silver lining 博客文章,例如