2

阅读 MSDN我得到一个印象,用于存储 Azure 诊断的帐户配置如下:

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

(设置名称是固定的“Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString”字符串)。但后来我还找到了用于设置 DiagnosticMonitor 的代码片段(来自用户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);

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

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

存储帐户在哪里指定,为什么上面提到的两个片段似乎用于同一任务?

4

4 回答 4

4

当 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 中编码,而且我有可以观察和维护它的工具。

于 2011-07-12T16:30:25.747 回答
1

我也为此苦苦挣扎,所以当我终于开始工作时,将以下博客文章放在一起

适用于 WebRoles 的带有 SDK 1.6 的 Windows Azure 诊断

于 2011-12-08T20:34:49.763 回答
1

我相信这是随着 Azure 的发展而发生的事情......在早期,默认情况下没有启动诊断 - 这样就解释了旧的问题和答案。

在最新的 API(1.4)中,我认为你应该使用第一种方法并使用GetDefaultInitialConfiguration ... SetCurrentConfiguration来指定你想要监控的东西。

于 2011-07-12T12:31:20.120 回答
0

有关 Azure 诊断的详细演练,您可以查看 PDC09 上的 Matthew Kerners 演示文稿“Windows Azure 监控、日志记录和管理 API”

http://www.microsoftpdc.com/2009/SVC15

于 2012-07-11T16:51:41.820 回答