2013-01-07 52 views
4

收集Azure诊断数据时,分段插槽是否也会将诊断数据发送到WadPerformanceCounters表?Azure诊断程序是否在Azure分段插槽中运行?

如果是这样,我该如何解决这个问题?或者在阅读诊断时如何区分分期/生产。

我不想显示有关我们网站的数据,假设它是全部生产,而实际上它的一部分是临时插槽。

回答

3

是 - Windows Azure诊断程序在Production和Staging插槽中运行。这两个插槽之间唯一真正的区别是DNS名称。

至于启用诊断,有一个很好的起点http://msdn.microsoft.com/en-us/library/gg433048.aspx。这提供了许多有关Windows Azure诊断信息的链接。

我不认为在诊断表数据(例如WadPerformanceCountersTable)中有一种方法可以区分生产和分段插槽。您可能可以根据RowKey值进行筛选,我相信这些值包含部署ID,并且在Production和Staging之间会有所不同。

您还可以为生产和临时插槽使用不同的存储帐户。这将是运行时可以完成的.cscfg的快速更新。

+0

这就是我会想到的。舞台==生产,否则舞台没什么价值。使用DeploymentId是整个事情的关键,尽管我的印象是每次部署时部署ID都会发生变化。但是,正如您在我的答案中所看到的,我可以使用我的临时插槽部署ID来查询WadPerformanceCountersTable。绝对不存储Staging数据。至于为什么它不是,我不知道。 –

+0

我要确保我的舞台和制作插槽是相同的版本。由于这种疏忽,我以前的评论可能不正确。我会尽快回复。 –

+0

已验证。我的分期版本已过时。此外,它看起来像部署ID是恒定的,所以我可以使用它。谢谢。 –

3

收集Azure诊断数据时,分段插槽是否也会将 诊断数据发送到WadPerformanceCounters表?

是的,他们最终在同一张桌子上。

每个部署获得可在仪表板上用于特定实例(生产性或分期)

DeploymentId Dashboard

样品WadPerformanceCountersTable表中找到其独特部署标识符

DeploymentId Table


为了查找与特定部署(分段或生产)相关的日志,可以通过部署标识符来过滤表,例如,

DeploymentId eq '1a2c09bea1234bc1b5e6edb99993ab21' 

如果你有一个部署标识符太多的条目,可以通过添加,比如,时间属性例如(与DeploymentId“1a2c09bea1234bc1b5e6edb99993ab21”午夜后5登录2013年1月所有条目)减少参赛人数

DeploymentId eq '1a2c09bea1234bc1b5e6edb99993ab21' and Timestamp gt datetime'2013-01-05T00:00:00Z' 

请注意,这不是过滤Azure Table中存储的非常优化的方式(如猕猴桃和拉夫指出。

任何查询,这将不包括PartitionKey将导致全表扫描。由于WAD表格中的PartitionKey代表日期/时间值,因此我会建议使用该值代替Timestamp。你可能会发现Effective way of fetching diagnostics data后非常有用。

这应该可以帮助您找到每个环境(分段对生产)和特定部署的条目。

+1

+1因为这也是一个有用的答案,由于图像。快速注意,只有PartitionKey和RowKey被索引,所以查询时没有指定其中的一个会非常昂贵。 (特别是使用与WadPerformanceCountersTable一样快的表格)。 –

+1

汤姆评论(并添加到Kiwi的评论)的一个小心词:任何不包含PartitionKey的查询将导致全表扫描。由于WAD表中的PartitionKey表示日期/时间值,因此我建议使用该值代替Timestamp。您可能会发现这篇文章很有用:http://gauravmantri.com/2012/02/17/effective-way-of-fetching-diagnostics-data-from-windows-azure-diagnostics-table-hint-use-partitionkey/ –

+1

非常好的家伙!我不想偏离分段和生产条目之间的区别。但绝对会澄清我的答案,并纳入您的意见。 – Tom

相关问题