Azure诊断程序是否在Azure临时插槽中运行?

时间:2013-01-07 19:01:50

标签: azure azure-diagnostics

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

如果是这样,我该怎么办呢?或者如何在读取诊断时区分分段/生产。

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

2 个答案:

答案 0 :(得分:3)

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

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

我不相信诊断表数据(例如WadPerformanceCountersTable)中有一种方法可以区分生产和暂存插槽。您可以根据RowKey值进行过滤,我认为该值包含deploymentID,并且在生产和暂存之间会有所不同。

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

答案 1 :(得分:3)

  

收集Azure诊断数据时,登台槽也会发送   诊断数据到WadPerformanceCounters表?

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

每个部署都会获得唯一部署标识符,该标识符可以在仪表板上找到特定实例(生产或登台)

DeploymentId Dashboard

示例WadPerformanceCountersTable

DeploymentId Table


为了查找与特定部署(登台或生产)相关的日志,您可以按部署标识符过滤表格,例如。

DeploymentId eq '1a2c09bea1234bc1b5e6edb99993ab21' 

如果单个部署标识符的条目太多,则可以通过添加时间属性(在2013年1月5日午夜之后记录 DeploymentId'1a2c09bea1234bc1b5e6edb99993ab21'的所有条目来减少条目数),例如

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

请注意,这不是过滤Azure表存储的最佳方式(正如Kiwi和Gaurav所指出的那样。

任何不包含PartitionKey的查询都会导致全表扫描。由于WAD表中的PartitionKey代表日期/时间值,我建议使用它而不是Timestamp。您可能会发现Effective way of fetching diagnostics data帖子非常有用。

这应该可以帮助您找出每个环境(登台与生产)和特定部署的条目。