debugging - 如何配置 Azure 诊断存储帐户?

标签 debugging azure cloud azure-diagnostics azure-configuration

Reading MSDN我的印象是用于存储 Azure 诊断的帐户配置如下:

<ConfigurationSettings>
   <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"
       value="DefaultEndpointsProtocol=https;AccountName=AccountName;AccountKey=AccountKey"/>
</ConfigurationSettings>

(设置名称是固定的“Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString”字符串)。但后来我还找到了用于设置 DiagnosticMonitor 的代码片段(来自 this question by user Søren Randrup :

<ConfigurationSettings>
     <Setting name="DiagnosticsConnectionString"
        value="DefaultEndpointsProtocol=https;AccountName=AccountName;AccountKey=AccountKey" />
</ConfigurationSettings>
var dm = DiagnosticMonitor.GetDefaultInitialConfiguration();
dm.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5);
dm.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
DiagnosticMonitor.Start("DiagnosticsConnectionString", dm);

(设置名称是开发者选择的字符串)。

这看起来令人困惑 - 我的印象是它是相同的设置,但无论出于何种原因,不同的人对其进行不同的配置。

存储帐户在哪里指定?为什么上述两个代码段似乎用于同一任务?

最佳答案

当DiagnosticsMonitor首次发布时(1.1或1.2 SDK,IIRC),它是从RoleEntryPoint(用户代码)启动的。这有一些缺点,即,如果您的 RoleEntryPoint 崩溃,DM 也会随之崩溃。 1.3 SDK发布时,改变了设计,将DM作为后台启动任务启动。这允许 DM 在与您的代码不同的进程中运行,因此它不再容易被用户代码崩溃。 “Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString”是诊断角色插件中定义的设置(查看 bin/plugins 目录)。

如果您除了导入诊断插件并设置此连接字符串之外什么都不做,您将为某些默认事物启用诊断,但实际上不会传输到您的存储帐户进行分析。

因此,更完整的解决方案是:

  1. 启用 DM 插件并为 Windows Azure 中的存储帐户设置有效的连接字符串。
  2. 远程(使用脚本、ManageAxis、Windows Azure MMC、Cerebrata 或其他工具)设置您想要的监控配置*
  3. 或者,在运行时,在 RoleEntryPoint 中,通过代码强制配置监视器。

这会将您的计数器、日志等实际转移到您的存储帐户中。此时,由您来解释它。有一些产品(例如 ManageAxis 等)可以为您进行分析(图表、自动缩放等),但您主要需要自己查询 DM 生成的数据。

* 我更喜欢这种方法,因为我不喜欢在 RoleEntryPoint 中对此进行编码,并且我有可以监视和维护它的工具。

关于debugging - 如何配置 Azure 诊断存储帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6663720/

相关文章:

android - 如何将电脑加入安卓USB调试白名单

java - 调试webapp需要在 Debug模式下运行tomcat/tc server吗?

cloud - jclouds 支持更新的 vCloud API

hadoop - 作业的数据拆分如何分配给节点?

azure - 有关 Azure 虚拟网络上转发流量的问题

amazon-web-services - 创建具有云形成的堆栈时出现问题 ("Property Type cannot be empty.")

python - 检查在 Python 中打开了哪些文件

c++ - 为什么指针访问比 vector::iterator 访问慢? (编译器代码生成)

azure - 尝试创建 Azure SQL 逻辑服务器时 UpsertLogicalServerRequestAlreadyInProgress

azure - 如何从 Azure 区 block 链即服务中提取仲裁日志文件